View previous topic :: View next topic |
Author |
Message |
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Fri Oct 04, 2002 7:27 pm Post subject: iptables, wer kennt sich aus? |
|
|
hallo zusammen, ich habe mal versucht, mir eine firewall für meinen einzelplatzrechner (kein heimnetzwerk, router usw.) zu bauen. alle module sind im kernel richtig konfiguriert, denn gshield hat wunderbar funktioniert. nun, ich bin so vorgegangen, daß ich großteils aus vorhandenen scripten einzelne abschnitte zusammenkopiert und neue regeln hinzugefügt habe.
das script sieht nun so aus:
Quote: | IPTABLES="/sbin/iptables"
modprobe ip_conntrack_ftp 1> /dev/null
modprobe ip_nat_ftp 1> /dev/null
EXT='eth0'
#dynamische Kernelparameter setzen
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1" > /proc/sys/net/ipv4/conf/$EXT/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/$EXT/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/$EXT/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/$EXT/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$EXT/log_martians
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#Standardregel: alles verbieten
$IPTABLES -P INPUT REJECT
$IPTABLES -P FORWARD REJECT
$IPTABLES -P OUTPUT REJECT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
#lokale Prozesse erlauben
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#Regel für sasacct => down- und uploadstatistik
$iptables -N SASACCT
$iptables -I INPUT -j SASACCT
$iptables -I OUTPUT -j SASACCT
$iptables -I FORWARD -j SASACCT
$iptables -I SASACCT -s IP -d 0/0 -j ACCEPT
$iptables -I SASACCT -s 0/0 -d IP -j ACCEPT
#Eigene Regel => Reject und loggen
$IPTABLES -N Blockieren
$IPTABLES -A Blockieren -p ICMP -j LOG --log-prefix "ICMP-Blockiert"
$IPTABLES -A Blockieren -p UDP -j LOG --log-prefix "UDP-Blockiert"
$IPTABLES -A Blockieren -p TCP -j LOG --log-prefix "TCP-Blockiert"
$IPTABLES -A Blockieren -j REJECT
#Portscaner abfangen und loggen
$IPTABLES -N check-flags
$IPTABLES -F check-flags
$IPTABLES -A check-flags -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 5/minute -j LOG --log-level alert --log-prefix "NMAP-XMAS:"
$IPTABLES -A check-flags -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT
$IPTABLES -A check-flags -p tcp --tcp-flags ALL ALL -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "XMAS:"
$IPTABLES -A check-flags -p tcp --tcp-flags ALL ALL -j REJECT
$IPTABLES -A check-flags -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "XMAS-PSH:"
$IPTABLES -A check-flags -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j REJECT
$IPTABLES -A check-flags -p tcp --tcp-flags ALL NONE -m limit --limit 5/minute -j LOG --log-level 1 --log-prefix "NULL_SCAN:"
$IPTABLES -A check-flags -p tcp --tcp-flags ALL NONE -j REJECT
$IPTABLES -A check-flags -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit 5/minute -j LOG --log-level 5 --log-prefix "SYN/RST:"
$IPTABLES -A check-flags -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
$IPTABLES -A check-flags -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/minute -j LOG --log-level 5 --log-prefix "SYN/FIN:"
$IPTABLES -A check-flags -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
#Floodprotection
$IPTABLES -N delay-flags
$IPTABLES -F delay-flags
$IPTABLES -A delay-flags -m limit --limit 1/second -p tcp --tcp-flags ALL RST -j ACCEPT
$IPTABLES -A delay-flags -m limit --limit 1/second -p tcp --tcp-flags ALL FIN -j ACCEPT
$IPTABLES -A delay-flags -m limit --limit 1/second -p tcp --tcp-flags ALL SYN -j ACCEPT
#Bestehende Verbindungen nach innen werden erlaubt
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#alle ausgehenden Verbindungen erlauben
$IPTABLES -A OUTPUT -m state --state NEW -j ACCEPT
#eingehende Verbindungen mldonkey
$IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4666 -j ACCEPT
#icq
$IPTABLES -A INPUT -p tcp --dport 4000:4100 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 5190 -j ACCEPT
#Rest verbieten
$IPTABLES -A INPUT -j Blockieren |
wenn ich es nun ausführbar mache und als root starte, bekomme ich allerdings folgende fehlermeldungen:
Quote: | heisl zbled # ./firewall
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
./firewall: -N: command not found
./firewall: -I: command not found
./firewall: -I: command not found
./firewall: -I: command not found
./firewall: -I: command not found
./firewall: -I: command not found |
könnt ihr mir vielleicht sagen, was ich falsch gemacht habe und ob sie überhaupt so funktionieren kann? bitte entschuldige meine naivität, aber ich beschäftige mich erst seit ein paar tagen mit iptables :)
danke im voraus |
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Fri Oct 04, 2002 9:19 pm Post subject: |
|
|
okay, den ersten fehler habe ich gefunden.. ich hatte für sasacct iptables klein geschrieben - und es muß scheinbar groß sein.
Quote: | #Regel für sasacct => down- und uploadstatistik
$IPTABLES -N SASACCT
$IPTABLES -I INPUT -j SASACCT
$IPTABLES -I OUTPUT -j SASACCT
$IPTABLES -I FORWARD -j SASACCT
$IPTABLES -I SASACCT -s IP -d 0/0 -j ACCEPT
$IPTABLES -I SASACCT -s 0/0 -d IP -j ACCEPT |
jetzt bekomme ich allerdings diese fehlermeldung:
Quote: | heisl zbled # ./firewall
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
iptables v1.2.6a: host/network `IP' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.2.6a: host/network `IP' not found
Try `iptables -h' or 'iptables --help' for more information. |
|
|
Back to top |
|
|
mathiasg n00b
Joined: 04 Oct 2002 Posts: 17 Location: Switzerland
|
Posted: Sat Oct 05, 2002 3:03 am Post subject: |
|
|
Zum SASACCT kann ich nicht viel sagen, hab zwar schon davon gehört aber mich nie genauer damit befasst.
Aber zu deinen Host/Network IP not found.
Was möchstest du denn genau machen?
-d IP würde ja heissen destination IP. Und IP ist wohl kein gültiger Hostname.
Was du wohl suchst ist -p IP oder -p 4, wie's dir besser gefällt. |
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Sat Oct 05, 2002 7:38 am Post subject: |
|
|
danke für deine hilfe, ich habe jetzt bei ip meine ip eingetragen - und die ip fehlermeldung ist nun weg ;)
aber irgendwas stimmt noch mit meinen regeln nicht, denn ich bekomme nach wie vor eine fehlermeldung :(
Quote: | heisl zbled # ./firewall
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name |
|
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Sat Oct 05, 2002 7:48 am Post subject: |
|
|
okay, das problem hatte er mit dem REJECT bei der standardregel.
Quote: | #Standardregel: alles verbieten
$IPTABLES -P INPUT REJECT
$IPTABLES -P FORWARD REJECT
$IPTABLES -P OUTPUT REJECT |
ich habe es durch DROP ersetzt - und nun bekomme ich keien Fehlermeldung mehr.
weiss jemand, warum ich packete nicht einfach standardmässig ablehnen kann sondern mich verstecken muss?
danke |
|
Back to top |
|
|
Anotherone n00b
Joined: 19 Sep 2002 Posts: 26
|
Posted: Sun Oct 06, 2002 9:49 am Post subject: |
|
|
Reject muss explizit im Kernel aktiviert werden und gehört nicht automatisch zu iptables dazu. Daher kennt er diese Regel nicht und verwirft sie.
Anotherone _________________ Notebook
Celeron 700
Gentoo 1.4
Kernel 2.4.20 mit XFS
Gnome 2 + XFCE 4 |
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Sun Oct 06, 2002 10:25 am Post subject: |
|
|
ich habe "Reject target support" als modul kompiliert. das bedeutet, wenn ich es zuvor lade, kann ich es als default verwenden? |
|
Back to top |
|
|
aardvark Guru
Joined: 30 Jun 2002 Posts: 576
|
Posted: Sun Oct 06, 2002 11:06 am Post subject: |
|
|
Hier:
https://www6.software.ibm.com/reg/devworks/dw-linuxfw-i
kannst du ein sehr gute beschreibung bekommen um ein iptables firewall zu shreiben. Es funktionier sehr gut bei mir zu hause und ich wuerde nicht wissen wass dran schiff ist. Ist auch nicht kompliziert
Auch noch geschrieben von unsere "Gentoo Meister" drobbins!
Wenn ihr es noch nicht kennt, vielleicht nutzt's was. Es ist leider nicht in euere muttersprache, aber manchmal a bisserl English ist auch nicht slecht fuer ihr Deutscher
Hoi |
|
Back to top |
|
|
zbled Apprentice
Joined: 18 Jun 2002 Posts: 216 Location: Bukowski's Piano Bar
|
Posted: Sun Oct 06, 2002 11:26 am Post subject: |
|
|
danke schön - ich werd mich da mal durchbeissen ;) |
|
Back to top |
|
|
bernd Tux's lil' helper
Joined: 16 Aug 2002 Posts: 126 Location: Wilhelmshaven/Germany
|
|
Back to top |
|
|
|