iptables zum verzweifeln
iptables zum verzweifeln
hi ihrs
ich weis ich weis - iptables is ne lange unendliche geschichte.. aber dennoch auch ich will sie verstehen und endlich einmal zu ende bringen.
ich habe ein LAN mit linuxrouter / gateway auf debian3.0 basis dazu kommt noch ein linux server und 2 win2k clients. der dsl zugang ist auch wunderbar am laufen und das
masquerading läuft ebenfalls. auch mit apache, samba und mysql hab ich nicht die megaprobleme nur dieses verdammte "einfache" einrichten einer firewall will nicht.
dazu muss ich sagen, das ich linux nur für server einsetze ohne kde oder gnome, also alles per putty oder webmin.
router: debian3.0
eth0 LAN 192.168.123.254
eth1 DSL -
server1: debian3.0
eth0 LAN 192.168.123.1
arbeit1: win2k
eth0 LAN 192.168.123.11
arbeit2: win2k
eth0 LAN 192.168.123.12
zu meinem problem:
ich hab keine ahung in welche datei die iptables gefehle getippt werden sollen, oder ob sie in eine extradatei gehören und dann nur per dsl_on_boot scrpit mit aufgerufen werden soll.
die filterregeln sollten so gebaut sein, das volgendes passiert:
lokales LAN -> Internet
alles erlauben
Internet -> lokales LAN
port 20 durchlassen und auf IP 192.168.123.1 routen
port 21 durchlassen und auf IP 192.168.123.1 routen
port 80 durchlassen und auf IP 192.168.123.1 routen
port 12413 durchlassen und auf IP 192.168.123.1 routen
port 12412 durchlassen (nicht routen)
alle anderen ports blocken, oder zumindestens so sicher wie möglich behandeln
es geht mehr oder weniger halt darum ein anfang zu bekommen, wenn ich dann weitere sachen hinzufügen möchte kann ich das ja selber anhand der bestehenden regeln machen.
vielen dank im voraus
apt-get
ich weis ich weis - iptables is ne lange unendliche geschichte.. aber dennoch auch ich will sie verstehen und endlich einmal zu ende bringen.
ich habe ein LAN mit linuxrouter / gateway auf debian3.0 basis dazu kommt noch ein linux server und 2 win2k clients. der dsl zugang ist auch wunderbar am laufen und das
masquerading läuft ebenfalls. auch mit apache, samba und mysql hab ich nicht die megaprobleme nur dieses verdammte "einfache" einrichten einer firewall will nicht.
dazu muss ich sagen, das ich linux nur für server einsetze ohne kde oder gnome, also alles per putty oder webmin.
router: debian3.0
eth0 LAN 192.168.123.254
eth1 DSL -
server1: debian3.0
eth0 LAN 192.168.123.1
arbeit1: win2k
eth0 LAN 192.168.123.11
arbeit2: win2k
eth0 LAN 192.168.123.12
zu meinem problem:
ich hab keine ahung in welche datei die iptables gefehle getippt werden sollen, oder ob sie in eine extradatei gehören und dann nur per dsl_on_boot scrpit mit aufgerufen werden soll.
die filterregeln sollten so gebaut sein, das volgendes passiert:
lokales LAN -> Internet
alles erlauben
Internet -> lokales LAN
port 20 durchlassen und auf IP 192.168.123.1 routen
port 21 durchlassen und auf IP 192.168.123.1 routen
port 80 durchlassen und auf IP 192.168.123.1 routen
port 12413 durchlassen und auf IP 192.168.123.1 routen
port 12412 durchlassen (nicht routen)
alle anderen ports blocken, oder zumindestens so sicher wie möglich behandeln
es geht mehr oder weniger halt darum ein anfang zu bekommen, wenn ich dann weitere sachen hinzufügen möchte kann ich das ja selber anhand der bestehenden regeln machen.
vielen dank im voraus
apt-get
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Du kannst die Befehle (wenn es eine kleine einfache Firewall ist) einfach am Ende von /etc/init.d/bootmisc.sh eintragen. Das ist zwar keine Standardlocation, aber für Kleinigkeiten reichts.
Wenn Du es besser machen willst, oder Deine FW grösser wird, würde ich ein Shellskript unter /etc/ppp/ip-up.d anlegen. Alle Skripte in diesem Verzeichnis werden ausgeführt, wenn die IP Verbindung aufgebaut ist. In /etc/ppp/ip-down.d musst Du dann allerdings ein zusätzliches Skript einbauen, dass alle FW Regeln löscht, weil ansonsten nach dem Wiederaufbau der Verbindung alle FW Regeln doppelt vorhanden sind, was in 99,9% aller Fälle nicht korrekt funktioniert.
Patrick
Wenn Du es besser machen willst, oder Deine FW grösser wird, würde ich ein Shellskript unter /etc/ppp/ip-up.d anlegen. Alle Skripte in diesem Verzeichnis werden ausgeführt, wenn die IP Verbindung aufgebaut ist. In /etc/ppp/ip-down.d musst Du dann allerdings ein zusätzliches Skript einbauen, dass alle FW Regeln löscht, weil ansonsten nach dem Wiederaufbau der Verbindung alle FW Regeln doppelt vorhanden sind, was in 99,9% aller Fälle nicht korrekt funktioniert.
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
In http://www.debianforum.de/forum/viewtopic.php?t=151 hat glatzor ein Start-Stop-Script und eine Grundkonfiguration veröffentlicht. Ich nutze das Script für all meine Firewalls.
hi ihrs,..
aha aha.. na das hört sich ja schonmal bissel verständlicher an.
Also das eigentliche FW-script kommt dann in /etc/ppp/ip-up.d und ein script um die regeln wieder zu löschen in /etc/ppp/ip-down.d hört sich logisch an ja.
Aber kann man die FW-regeln nicht dauerhaft in denn kernel einbinden, ich hab da sowas gelesen. Aber okay haubtsache ich bekomm das überaubt hin.
so nun zu denn regeln an sich.
ja denn beitrag von glatzor und auch sein script hab ich gelesen. Eine gute sache aber mich verwirren die ganzen regeln zu doll, ich find einfach kein anfang.
Ich denk ich muss es einfach versuchen, und bissel zeit woher zaubern.
okay ich dank erstemal für diesen kleinen anstoss
apt-get
aha aha.. na das hört sich ja schonmal bissel verständlicher an.
Also das eigentliche FW-script kommt dann in /etc/ppp/ip-up.d und ein script um die regeln wieder zu löschen in /etc/ppp/ip-down.d hört sich logisch an ja.
Aber kann man die FW-regeln nicht dauerhaft in denn kernel einbinden, ich hab da sowas gelesen. Aber okay haubtsache ich bekomm das überaubt hin.
so nun zu denn regeln an sich.
ja denn beitrag von glatzor und auch sein script hab ich gelesen. Eine gute sache aber mich verwirren die ganzen regeln zu doll, ich find einfach kein anfang.
Ich denk ich muss es einfach versuchen, und bissel zeit woher zaubern.
okay ich dank erstemal für diesen kleinen anstoss
apt-get
OK. Dann halt Schritt für Schritt:
Zuerst definieren wir die Devices:
Dann löschen wir alle vorhandenen Regeln, setzen die Standardaktion auf DROP (nichts durchlassen) und aktivieren das NAT:
Wir erlauben alles auf dem Firewallrechner (loopback) selber:
Nun öffnen wir Port 80 und 443 von intern nach extern:
Ich hoffe, Dir wird es jetzt klar, wie das Erstellen eines solchen Scripts läuft. Wenn Du das hier verstanden hast, dann schau Dir noch mal das Script von glatzor an.
Zuerst definieren wir die Devices:
Code: Alles auswählen
IF_INT=eth0
IF_EXT=eth1
IF_LO=lo
Code: Alles auswählen
iptables -F
iptables -X
# drop everything
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# activate masquerading
iptables -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE
Code: Alles auswählen
iptables -A INPUT -i $IF_LO -j ACCEPT
iptables -A OUTPUT -o $IF_LO -j ACCEPT
Code: Alles auswählen
iptables -A FORWARD -i $IF_INT -o $IF_EXT -p TCP -m multiport --dport 80,443 -j ACCEPT
iptables -A FORWARD -i $IF_INT -o $IF_EXT -p UDP -m multiport --dport 80,443 -j ACCEPT
iptables -A FORWARD -i $IF_EXT -o $IF_INT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $IF_EXT -o $IF_INT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT
hi ihrs,.. naja danke erstemal für die mühe, aber dennoch ich glaub ich raffs.net
also hab mir ein script getippt, und es in /etc/ppp/ip-up.d abgelegt, die rechte auf 755 gesetzt und ein reboot gemacht. Aber es passiert nichts, wenn ich iptables -L -v in der konsole eingebe, dann steht da nix,.. also die chain´s sind lehr.
ich weis echt net wo da der fehler sein kann, mein script sieht so aus, es ist ein zusammensatz aus glatzor und k-pl ihren ideen
ich wollte erstmal nur die FW zum laufen bekommen. Alles von aussen her blocken und von intern her normal surfen.
kann mir wer sagen was ich falsch mach
bis denn apt-get
also hab mir ein script getippt, und es in /etc/ppp/ip-up.d abgelegt, die rechte auf 755 gesetzt und ein reboot gemacht. Aber es passiert nichts, wenn ich iptables -L -v in der konsole eingebe, dann steht da nix,.. also die chain´s sind lehr.
ich weis echt net wo da der fehler sein kann, mein script sieht so aus, es ist ein zusammensatz aus glatzor und k-pl ihren ideen
Code: Alles auswählen
# Firewallscript
# Schnittstellen Bestimmen
# Schnittstellen zum lokalen Netz (LAN)
IFACE_INT=eth0
# Schnittstelle zum Internet (DSL Modem)
IFACE_EXT=ppp0
# Rechnerinterne Schnittstelle (loopback)
IFACE_LO=lo
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Einschalten von ip-Forwarding (MASQUERADE)
echo "1" > /proc/sys/net(ipv4/ip_forward
# INCOMING
# Soll nicht sein
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
# Vom internen Netz alles erlauben
iptables -A INPUT -i $IFACE_INT -j ACCEPT
# Vom Loopback Alles erlauben
iptables -A INPUT -i $IFACE_LO -j ACCEPT
# Vom Internet Erlauben von bereits initialisierten Verbindungen
iptables -A INPUT -i $IFACE_EXT -m state \ --state ESTABLISHED,RELATED -j ACCEPT
# FORWARDING
# Lokal -> Internet: Alles erlauben
iptables -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT
# Internet -> Lokales: Nur Verkehr über bereits bestehende Verbindungen erlauben
iptables -A FORWARD -i $IFACE_EXT -o $IFACE_INT -m state \ --state ESTABLISHED,RELATED -j ACCEPT
# Ins lokale Netzwerk: Alles erlauben
iptables -A OUTPUT -o $IFACE_INT -j ACCEPT
# Ans Loopback: Alles erlauben
iptables -A OUTPUT -o $IFACE_LO -j ACCEPT
# Ins Internet: Alles erlauben
iptables -A OUTPUT -o $IFACE_EXT -j ACCEPT
# Masquerading
iptables -A POSTROUTING -o $IFACE_EXT -t nat -j MASQUERADE
#Ende
kann mir wer sagen was ich falsch mach
bis denn apt-get
IPtables
gibt nur eine site die gut ist und das ist http://www.iptables.de oder com
hi ihrs...
sorry das ich mich erst jetzt melde, war ein paar tage in sinne der kunst unterwechs
so nun wieder linux-user-denken
ich hatte mir ja mein script gebaut, okay noch die einträge hinzufügen die ich vergass.
werde das alles mal testen, ich hoff das mein router bald hinter ner firewall sitzt, denn so langsam wird mir angst und bang bei dem gedanken, das da rein und raus kann wer will.
also bis denne und danke schonmal für die hilfe....
bye apt-get
sorry das ich mich erst jetzt melde, war ein paar tage in sinne der kunst unterwechs
so nun wieder linux-user-denken
ich hatte mir ja mein script gebaut, okay noch die einträge hinzufügen die ich vergass.
werde das alles mal testen, ich hoff das mein router bald hinter ner firewall sitzt, denn so langsam wird mir angst und bang bei dem gedanken, das da rein und raus kann wer will.
also bis denne und danke schonmal für die hilfe....
bye apt-get
hi leute..
also hab nun endlich mal ein fwscript in die finger bekommen, besser gesagt unter
http://www.harry.homelinux.org gibt es einen guten generator. dann hab ich das script noch studiert um zu verstehen was ich da mache. Nur ich bekomme das script nicht zum starten.
script: /etc/init.d/firewall.sh (chmod755)
symlink: /etc/rc3.d/S99firewall.sh
so nichts passiert. wenn ich nach einem reboot iptables -L -vn eingebe, stehen dort keine regeln. was mich auch etwas verwundert, ist das es unter /etc/init.d/ ein script namens iptables gibt. dazu noch ein symlink aus /etc/rc2.d diesen zusammenhang verstehe ich nicht ganz.
also wo könnte da der fehler liegen, oder soll ich mal das fw script posten ?
bye apt-get
also hab nun endlich mal ein fwscript in die finger bekommen, besser gesagt unter
http://www.harry.homelinux.org gibt es einen guten generator. dann hab ich das script noch studiert um zu verstehen was ich da mache. Nur ich bekomme das script nicht zum starten.
script: /etc/init.d/firewall.sh (chmod755)
symlink: /etc/rc3.d/S99firewall.sh
so nichts passiert. wenn ich nach einem reboot iptables -L -vn eingebe, stehen dort keine regeln. was mich auch etwas verwundert, ist das es unter /etc/init.d/ ein script namens iptables gibt. dazu noch ein symlink aus /etc/rc2.d diesen zusammenhang verstehe ich nicht ganz.
also wo könnte da der fehler liegen, oder soll ich mal das fw script posten ?
bye apt-get
Debian startet standardmäßig in denn runlevel 2. Darum wird Dein Script auch nicht aufgerufen..
Lege doch einfach noch einen Symlink in /etc/rc.2d an.
Lege doch einfach noch einen Symlink in /etc/rc.2d an.
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de
xmpp:bert@debianforum.de
hi Bert..
cool danke jetzt wird mein script gestarte, aber dennoch es macht nicht das was ich will. naja muss man sich mal vorstellen ich kenn mich mit php und mysql aus, kann photoshop von vorne bis hinten. aber ein firewallscript auf iptables basis killt mir denn verstand.
naja ich werd sehen, wenn was ist meld ich mich
bye apt-get
cool danke jetzt wird mein script gestarte, aber dennoch es macht nicht das was ich will. naja muss man sich mal vorstellen ich kenn mich mit php und mysql aus, kann photoshop von vorne bis hinten. aber ein firewallscript auf iptables basis killt mir denn verstand.
naja ich werd sehen, wenn was ist meld ich mich
bye apt-get