PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IPTABLES meine erste Konfig könnte mal jemmand rüber kucken ???



HellTron
15.10.03, 21:57
Hi..

Hier ist meine Configuration für ne Firewall...

Mein PC dient auch als DSL Router, und ich weiss nicht ob ich alles richtig gemacht habe schau doch mal bitte jemmand drüber.... und bitte feedback geben :) DANKE schonmal :)

PS: Ich habe noch nicht alle Games eingetragen... bin noch die PORTS am rausfinden :)


---------------------------------------------------------------------------------------------

#!/bin/sh

# Variablen {
nameserver=194.25.2.129
lan0=192.168.0.0/24
lan1=192.168.100.0/24
lan2=10.0.0.0/24
# }

# Regeln löschen {
iptables -F
# }

# Kernelparameter {
echo 1 > /proc/sys/net/ipv4/ip_forward;
echo 1 > /proc/sys/net/ipv4/ip_dynaddr;
# }

# DROP all IN/FORWARD/OUT {
iptables -P INPUT DROP;
iptables -P FORWARD DROP;
iptables -P OUTPUT DROP;
# }

# ACCEPT OUT {
# iptables -A OUTPUT -o eth0 -p tcp --sport 1024: -d $lan0 --dport 1024: -j ACCEPT;
# iptables -A OUTPUT -o eth0 -p udp --sport 1024: -d $lan0 --dport 1024: -j ACCEPT;
# iptables -A OUTPUT -o eth0 -p tcp --sport 1024: -d $lan1 --dport 1024: -j ACCEPT;
# iptables -A OUTPUT -o eth0 -p udp --sport 1024: -d $lan1 --dport 1024: -j ACCEPT;
# iptables -A OUTPUT -o eth0 -p tcp --sport 1024: -d $lan2 --dport 1024: -j ACCEPT;
# iptables -A OUTPUT -o eth0 -p udp --sport 1024: -d $lan2 --dport 1024: -j ACCEPT;
# CLIENT
iptables -A OUTPUT -p tcp --sport 1024: --dport 20 -j ACCEPT; # to ftp-data (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 21 -j ACCEPT; # to ftp (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 22 -j ACCEPT; # to ssh (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 25 -j ACCEPT; # to smtp (tcp)
iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT; # to dns (udp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 53 -j ACCEPT; # to dns (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT; # to http (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 110 -j ACCEPT; # to pop3 (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 137 -j ACCEPT; # to net-bios-ns (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 138 -j ACCEPT; # to net-bios-dgm (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 139 -j ACCEPT; # to net-bios-ssn (tcp)
iptables -A OUTPUT -p udp --sport 1024: --dport 137 -j ACCEPT; # to net-bios-ns (udp)
iptables -A OUTPUT -p udp --sport 1024: --dport 138 -j ACCEPT; # to net-bios-dgm (udp)
iptables -A OUTPUT -p udp --sport 1024: --dport 139 -j ACCEPT; # to net-bios-ssn (udp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 443 -j ACCEPT; # to https (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 5190 -j ACCEPT; # to icq (tcp)
iptables -A OUTPUT -p tcp --sport 1024: --dport 6000 -j ACCEPT; # to X11 (tcp)
#SERVER
iptables -A OUTPUT -p tcp --sport 20 --dport 1024: -j ACCEPT; # from ftp-data (tcp)
iptables -A OUTPUT -p tcp --sport 21 --dport 1024: -j ACCEPT; # from ftp (tcp)
iptables -A OUTPUT -p tcp --sport 22 --dport 1024: -j ACCEPT; # from ssh (tcp)
iptables -A OUTPUT -p tcp --sport 25 --dport 1024: -j ACCEPT; # from smtp (tcp)
iptables -A OUTPUT -p tcp --sport 80 --dport 1024: -j ACCEPT; # from http (tcp)
iptables -A OUTPUT -p tcp --sport 110 --dport 1024: -j ACCEPT; # from pop3 (tcp)
iptables -A OUTPUT -p tcp --sport 137 --dport 1024: -j ACCEPT; # from netbios-ns (tcp)
iptables -A OUTPUT -p tcp --sport 138 --dport 1024: -j ACCEPT; # from netbios-dgm (tcp)
iptables -A OUTPUT -p tcp --sport 139 --dport 1024: -j ACCEPT; # from netbios-ssn (tcp)
iptables -A OUTPUT -p udp --sport 137 --dport 1024: -j ACCEPT; # from netbios-ns (udp)
iptables -A OUTPUT -p udp --sport 138 --dport 1024: -j ACCEPT; # from netbios-dgm (udp)
iptables -A OUTPUT -p udp --sport 139 --dport 1024: -j ACCEPT; # from netbios-ssn (udp)
iptables -A OUTPUT -p tcp --sport 6000 --dport 1024: -j ACCEPT; # from X11 (tcp)
# }

# ACCEPT IN {
# iptables -A INPUT -i eth0 -p tcp -s $lan0 --sport 1024: --dport 1024: -j ACCEPT;
# iptables -A INPUT -i eth0 -p udp -s $lan0 --sport 1024: --dport 1024: -j ACCEPT;
# iptables -A INPUT -i eth0 -p tcp -s $lan1 --sport 1024: --dport 1024: -j ACCEPT;
# iptables -A INPUT -i eth0 -p udp -s $lan1 --sport 1024: --dport 1024: -j ACCEPT;
# iptables -A INPUT -i eth0 -p tcp -s $lan2 --sport 1024: --dport 1024: -j ACCEPT;
# iptables -A INPUT -i eth0 -p udp -s $lan2 --sport 1024: --dport 1024: -j ACCEPT;
# CLIENT
iptables -A INPUT -p tcp --sport 20 --dport 1024: ! --syn -j ACCEPT; # from ftp-data (tcp)
iptables -A INPUT -p tcp --sport 21 --dport 1024: ! --syn -j ACCEPT; # from ftp (tcp)
iptables -A INPUT -p tcp --sport 22 --dport 1024: ! --syn -j ACCEPT; # from ssh (tcp)
iptables -A INPUT -p tcp --sport 25 --dport 1024: ! --syn -j ACCEPT; # from smtp (tcp)
iptables -A INPUT -p udp --sport 53 -j ACCEPT; # from dns (udp)
iptables -A INPUT -p tcp --sport 53 -j ACCEPT; # from dns (tcp)
iptables -A INPUT -p tcp --sport 80 --dport 1024: ! --syn -j ACCEPT; # from http (tcp)
iptables -A INPUT -p tcp --sport 110 --dport 1024: ! --syn -j ACCEPT; # from pop3 (tcp)
iptables -A INPUT -p tcp --sport 137 --dport 1024: ! --syn -j ACCEPT; # from netpios-ns (tcp)
iptables -A INPUT -p tcp --sport 138 --dport 1024: ! --syn -j ACCEPT; # from netpios-dgm (tcp)
iptables -A INPUT -p tcp --sport 139 --dport 1024: ! --syn -j ACCEPT; # from netpios-ssn (tcp)
iptables -A INPUT -p udp --sport 137 --dport 1024: -j ACCEPT; # from netpios-ns (udp)
iptables -A INPUT -p udp --sport 138 --dport 1024: -j ACCEPT; # from netpios-dgm (udp)
iptables -A INPUT -p udp --sport 139 --dport 1024: -j ACCEPT; # from netpios-ssn (udp)
iptables -A INPUT -p tcp --sport 443 --dport 1024: ! --syn -j ACCEPT; # from https (tcp)
iptables -A INPUT -p tcp --sport 5190 --dport 1024: ! --syn -j ACCEPT; # from icq (tcp)
iptables -A INPUT -p tcp --sport 6000 --dport 1024: ! --syn -j ACCEPT; # from X11 (tcp)
# SERVER
iptables -A INPUT -p tcp --sport 1024: --dport 20 -j ACCEPT; # to ftp-data (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 21 -j ACCEPT; # to ftp (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 22 -j ACCEPT; # to ssh (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 25 -j ACCEPT; # to smtp (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 80 -j ACCEPT; # to http (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 110 -j ACCEPT; # to pop3 (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 137 -j ACCEPT; # to netbios-ns (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 138 -j ACCEPT; # to netbios-dgm (tcp)
iptables -A INPUT -p tcp --sport 1024: --dport 139 -j ACCEPT; # to netbios-ssn (tcp)
iptables -A INPUT -p udp --sport 1024: --dport 137 -j ACCEPT; # to netbios-ns (udp)
iptables -A INPUT -p udp --sport 1024: --dport 138 -j ACCEPT; # to netbios-dgm (udp)
iptables -A INPUT -p udp --sport 138 --dport 138 -j ACCEPT; # to netbios-dgm <-> (udp)
iptables -A INPUT -p udp --sport 1024: --dport 139 -j ACCEPT; # to netbios-ssn (udp)
iptables -A INPUT -p tcp --sport 1024: --dport 6000 -j ACCEPT; # to X11 (tcp)
# }

# FORWARD {
# TO SERVICE
iptables -A FORWARD -p tcp --sport 1024: --dport 20 -j ACCEPT; # to ftp-data (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 21 -j ACCEPT; # to ftp (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 22 -j ACCEPT; # to ssh (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 25 -j ACCEPT; # to smtp (tcp)
iptables -A FORWARD -p udp --sport 1024: --dport 53 -j ACCEPT; # to dns (udp)
iptables -A FORWARD -p tcp --sport 1024: --dport 53 -j ACCEPT; # to dns (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 80 -j ACCEPT; # to http (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 110 -j ACCEPT; # to pop3 (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 443 -j ACCEPT; # to https (tcp)
iptables -A FORWARD -p tcp --sport 1024: --dport 5190 -j ACCEPT; # to icq (tcp)
# FROM SERVICE
iptables -A FORWARD -p tcp --sport 20 --dport 1024: -j ACCEPT; # from ftp-data (tcp)
iptables -A FORWARD -p tcp --sport 21 --dport 1024: -j ACCEPT; # from ftp (tcp)
iptables -A FORWARD -p tcp --sport 22 --dport 1024: -j ACCEPT; # from ssh (tcp)
iptables -A FORWARD -p tcp --sport 25 --dport 1024: -j ACCEPT; # from smtp (tcp)
iptables -A FORWARD -p udp --sport 53 --dport 1024: -j ACCEPT; # from dns (udp)
iptables -A FORWARD -p tcp --sport 53 --dport 1024: -j ACCEPT; # from dns (tcp)
iptables -A FORWARD -p tcp --sport 80 --dport 1024: -j ACCEPT; # from http (tcp)
iptables -A FORWARD -p tcp --sport 110 --dport 1024: -j ACCEPT; # from pop3 (tcp)
iptables -A FORWARD -p tcp --sport 443 --dport 1024: -j ACCEPT; # from https (tcp)
iptables -A FORWARD -p tcp --sport 5190 --dport 1024: -j ACCEPT; # from icq (tcp)
# }

# GAMES {
# GAMESPY
iptables -A OUTPUT -p tcp --sport 1024: --dport 28910 -j ACCEPT;
iptables -A INPUT -p tcp --sport 28910 --dport 1024: -j ACCEPT;
iptables -A OUTPUT -p tcp --sport 28910 --dport 1024: -j ACCEPT;
iptables -A INPUT -p tcp --sport 1024: --dport 28910 -j ACCEPT;
iptables -A FORWARD -p tcp --sport 28910 --dport 1024: -j ACCEPT;
# NWN
iptables -A OUTPUT -p udp --sport 1024: --dport 5121 -j ACCEPT;
iptables -A INPUT -p udp --sport 5121 --dport 1024: -j ACCEPT;
iptables -A OUTPUT -p udp --sport 5121 --dport 1024: -j ACCEPT;
iptables -A INPUT -p udp --sport 1024: --dport 5121 -j ACCEPT;
iptables -A FORWARD -p udp --sport 5121 --dport 1024: -j ACCEPT;
iptables -A OUTPUT -p tcp --sport 1024: --dport 6667 -j ACCEPT;
iptables -A INPUT -p tcp --sport 6667 --dport 1024: -j ACCEPT;
iptables -A OUTPUT -p tcp --sport 6667 --dport 1024: -j ACCEPT;
iptables -A INPUT -p tcp --sport 1024: --dport 6667 -j ACCEPT;
iptables -A FORWARD -p tcp --sport 6667 --dport 1024: -j ACCEPT;
# ET
iptables -A OUTPUT -p udp --sport 1024: --dport 27960 -j ACCEPT;
iptables -A INPUT -p udp --sport 27960 --dport 1024: -j ACCEPT;
iptables -A OUTPUT -p udp --sport 27960 --dport 1024: -j ACCEPT;
iptables -A INPUT -p udp --sport 1024: --dport 27960 -j ACCEPT;
iptables -A FORWARD -p udp --sport 27960 --dport 1024: -j ACCEPT;
# QIII
# QIII UT 3.0
# QIII NAVY SEALS
# HL - CS
# HL
# CIV CALL TO POWER
# MYTH II
# DIABLO II
# UT2003
# SSAM I
# SSAM II
# AMERICAN ARMY OP
# WAR III
# WAR III FT
# MOHAA
# RTCW
# SNES
# DOOM III
# }

# LOOPBACK DEVICE {
iptables -A INPUT -i lo -j ACCEPT;
iptables -A OUTPUT -o lo -j ACCEPT;
# }

# ICMP {
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT;
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT;
iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT;
iptables -A OUTPUT -p icmp --icmp-type source-quench -j ACCEPT;
iptables -A OUTPUT -p icmp --icmp-type time-exceeded -j ACCEPT;
iptables -A OUTPUT -p icmp --icmp-type parameter-problem -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT;
iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT;
# }

# MASQ - NAT {
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE;
# }

# LOG {
iptables -A INPUT -j LOG;
iptables -A OUTPUT -j LOG;
iptables -A FORWARD -j LOG;
# }

# DROP all other IN/OUT {
iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with tcp-reset;
iptables -A INPUT -j DROP;
#
iptables -A FORWARD -p tcp -j REJECT --reject-with tcp-reset;
iptables -A FORWARD -p udp -j REJECT;
iptables -A FORWARD -j DROP;
#
iptables -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset;
iptables -A OUTPUT -p udp -j REJECT;
iptables -A OUTPUT -j DROP;
# }

HellTron
15.10.03, 22:00
Noch etwas wie bekomme ich es hin das die FTP-Server auch funktionieren OHNE sofort alle PORTS oberhalb 1024 frei zugeben wie ich es in ner anderen Antwort gefunden habe ???

So will ich es nicht machen da kann ich auch die Firewall weglassen:

iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT

HellTron
15.10.03, 22:09
Da ich momentan noch nicht testen konnte

iptables -A FORWARD -p udp --sport 27960 --dport 1024: -j ACCEPT;

ist das so richtig damit alle PCs im LAN über meinen router mit allen PORTS von 1024:
auf 27960 zugreiffen können oder habe ich dport und sport falsch bzw.. gedanklich vertauscht ?

emba
15.10.03, 22:19
hab grad leider keine muse, um mir das obige script durchzulesen :sarcastic:

zum ftp: du brauchst für dein vorhaben das modul ip_conntrack_ftp
zum 3. post: du hast das gedanklich vertauscht, so wie du es beschrieben hast ;)

greez

HellTron
15.10.03, 22:25
Okay danke :) dann werde ich das schonmal Korregieren....

mhhh muss ich auch eine regel schreiben z.B.:

iptables -A FORWARD -p udp --sport 27960 --dport 1024: -j ACCEPT;
iptables -A FORWARD -p udp --sport 1024: --dport 27960 -j ACCEPT;

also für IN und OUT von 27960 nach 1024: und von 1024: nach 27960 ???

oder genügt nur

iptables -A FORWARD -p udp --sport 1024: --dport 27960 -j ACCEPT;

"Da bei FORWARD nicht zwichen IN und OUT unterschieden wird bin ich etwas verwirrt :)"

emba
15.10.03, 22:29
du musst beides schreiben, oder auch hier wieder auf ein conntrack-helper zurückgreifen (-m state established)
bei forward wird zwar nicht in und out unterschieden (bei einem int), aber sehr wohl from/to

greez

HellTron
15.10.03, 22:38
Danke ... das hilft mir sehr weiter... mhhh dann änder ich da mal ein bissel etwas und dann müsste meine Konfig eigentlich gebrauchbar stehen :) Danke dir vielmals :) :)