![]() |
Firewall
Ich mach mir eine Firewall mit iptables.
Nun eine Frage: Hab ADSL mit dem speed touch home und ich habs momentan so konfiguriert (die Firewall mein ich), daß ich alle ankommenden Pakete von 10.0.0.138 zulasse. Mit einer gefälschten IP wäre es also kein Problem in meinen Rechner einzudringen. Wie sichere ich mich da nun am besten ab? Das Modem verwendet ja das pptp Protokoll, mit den iptables steuere ich tcp, udp und icmp an, mit welchem Protokoll wird das Modem angesteuert? tcp ists nicht, hab ich schon probiert, oder verwendet es mehrere Protokolle? Hat jemand von euch iptables bzw. ipchains in Verwendung? |
IPT=/usr/local/sbin/iptables
EXTIF="eth1" # Netzwerkkarte für den Router INTIF="eth0" # Netzwerkkarte internes LAN # Anything coming from our internal network should have only our addresses! $IPT -A FORWARD -i $INTIF -s ! $INTERNALNET -j LOG $IPT -A FORWARD -i $INTIF -s ! $INTERNALNET -j DROP # Anything coming from the Internet should have a real Internet address $IPT -A FORWARD -i $EXTIF -s 192.168.0.0/16 -j DROP $IPT -A FORWARD -i $EXTIF -s 172.16.0.0/12 -j DROP $IPT -A FORWARD -i $EXTIF -s 10.0.0.0/8 -j DROP Statt eth1 nimmst halt die ppp0, dann sollte es funken. |
Hab da noch ein kleines Problem: irgendwie geht auf einmal überhaupt nix mehr, bei den ipchains hats aber funktioniert.
Ich hab die policy der INPUT chain auf DROP gesetzt und dann eine Regel hinzugefügt, um z.B. auf Port 80 Zugriff zu erlauben: iptables -A INPUT -p tcp --dport 80 -j ACCEPT Aber das geht nicht, http ist nicht möglich, auch wenn ich statt dport sport eingebe, bringts nichts! Und das selbe hab ich für udp und icmp gemacht. Kann mir da mal jemand weiterhelfen? Bei den ipchains war das irgendwie anders. |
OK - etwas ausführlicher:
UNIVERSE="0/0" IPT=/usr/local/sbin/iptables EXTIF="eth1" # Netzwerkkarte für den Router INTIF="eth0" # Netzwerkkarte internes LAN INTERNALNET="192.168.x.0/24" # initializing $IPT --flush $IPT --table nat --flush $IPT --delete-chain $IPT --table nat --delete-chain #Paranoid - alles droppen $IPT -P INPUT DROP $IPT -A INPUT -i lo -j ACCEPT # localhost is O.K. $IPT -A INPUT -i $INTIF -j ACCEPT # internes Netz is O.K. $IPT -A INPUT -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT # Existierende Sessions von aussen sind O.K. # Anything coming from our internal network should have only our addresses! $IPT -A FORWARD -i $INTIF -s ! $INTERNALNET -j LOG $IPT -A FORWARD -i $INTIF -s ! $INTERNALNET -j DROP # Anything coming from the Internet should have a real Internet address $IPT -A FORWARD -i $EXTIF -s 192.168.0.0/16 -j DROP $IPT -A FORWARD -i $EXTIF -s 172.16.0.0/12 -j DROP $IPT -A FORWARD -i $EXTIF -s 10.0.0.0/8 -j DROP # http von aussen erlauben $IPT -A INPUT -p tcp -m state --state NEW -s $UNIVERSE -d $MYIP1 --dport 80 -j LOG # erst loggen, dann erlauben $IPT -A INPUT -p tcp -m state --state NEW -s $UNIVERSE -d $MYIP1 --dport 80 -j ACCEPT # MASQUERADING $IPT --table nat --append POSTROUTING --out-interface $EXTIF -j MASQUERADE $IPT --append FORWARD --in-interface $INTIF -j ACCEPT Damit kannst Du nach aussen alles (auch pingen und ftp), von aussen ist aber nur Dein http port (80) sichtbar. Klarer? Sonstwer Kommentare, Verbesserungen? |
Ich wollte ja nur wissen, wie man Zugriff auf Port 80 erlaubt.
Aber es geht wieder nicht! $IPT -A INPUT -p tcp -m state --state NEW -s $UNIVERSE -d $MYIP1 --dport 80 -j ACCEPT Wieso muß ich da eine Source angeben? Und als Ziel meine IP? Habs genau so gemacht aber es geht nicht!!! :heul: |
1. Bevor Du neue Regeln setzt, solltest Du IMMER die Alten loeschen. Siehe mein init-Bereich. Da gibt's sonst die seltsamsten Effekte.
2. Du musst der firewall sagen, woher jemand von aussen auf Deinen Port 80 (http) zugreifen will. Daher musst Du eine Source und die (externe!) IP Deines Rechners angeben. |
Die alten Reglen flushe ich immer vorher, genau wie Du.
Aber trotzdem gehts nicht, was hab ich da falsch gemacht??? Und auch wenn ich Zugriff auf alle Ports erlaube, gehts noch immer nicht! |
OK, noch mal von vorne: von wo willst Du nach wohin zugreifen?
Wir kriegen das schon hin ;) |
Nun, hab also die Verbindung mit
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT erlaubt. Ist irgendwie komisch daß ich nur mit dieser einen Regel die ges. Firewall konfiguriert habe, wo ist da der Haken? Und da gibts ja noch eine --syn Option, die nur Pakete herinkäßt, wenn sie angefordert wurden, wäre die Verwendung von --syn nicht auch angebracht? Aber irgendwie muß ich da ja doch mehr konfigurieren, sonst kann da irgendwer rein, so glaub ich zumindest ... |
Hi Flanders, _m3!
Bezüglich IPTABLES kann ich nur folgendes Buch empfehlen: http://www.susepress.de/de/katalog/3...0_8/index.html Auf der Seite des Autors sind alle angeführten Firewallscripts zum Downloaden: http://www.swobspace.de/linux/das-fi...wall-buch.html Für Dich interessant könnte dieses Script sein. Als brauchbare Grundausstattung; ergänzen um den INCOMING HTTP!! Aber ich schau mir's auch noch an, wenn sich's ausgeht :) , obwohl ja schon professionelle Hilfe geleistet wird. Grüße Manx |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 04:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag