Firewallscripts
Hört sich vielleicht en bissl doof an, aber gibt es auch ein Tool, dass unter Windows läuft, man ein Script erstellen kann und dann per SSH z.B. in mein Linux-Script kopieren kann?
Hab grad das Problem, dass ich ein Script fürn Ethernet-Router benötige, die ganzen Beispiele aber immer für einen WAN Router sind und ich denke, dass hier das Netz schon vom fli4l abgesichert ist (hoffe ich mal)!
Was erstelle ich den hier für Regeln? Bisher kann ich ausschliesslich pingen, mehr geht nicht durch
Hab grad das Problem, dass ich ein Script fürn Ethernet-Router benötige, die ganzen Beispiele aber immer für einen WAN Router sind und ich denke, dass hier das Netz schon vom fli4l abgesichert ist (hoffe ich mal)!
Was erstelle ich den hier für Regeln? Bisher kann ich ausschliesslich pingen, mehr geht nicht durch
Hi,
Mti Hilf von dos2unix kannst du dos formatierte Dateien in Unix formatierte umwandeln.
Das ganze gibt es auch umgekehrt.
MfG
pierre
putty, ein Editor und dos2unix.fte213 hat geschrieben:Hört sich vielleicht en bissl doof an, aber gibt es auch ein Tool, dass unter Windows läuft, man ein Script erstellen kann und dann per SSH z.B. in mein Linux-Script kopieren kann?
Mti Hilf von dos2unix kannst du dos formatierte Dateien in Unix formatierte umwandeln.
Das ganze gibt es auch umgekehrt.
MfG
pierre
nabend zusammen,
die Geschichte mit den Grundlagen ist nicht unwichtig. Will es wirklich nicht runter machen.
Aber für die Praxis im home- oder im Small-Office Bereich gibt es für mich nur eines:
fwbilder
fwbilder vergisst keinen Rückweg zu öffnen.
fwbilder ist leicht per gtk zu konfigurieren
Für verschiedene spezielle FW habe ich mit awk und bash Scripte für Firewalling gebaut, bis ich
fwbilder entdeckte.
Es gibt bestimmt ähnliche gute Tools, die ich nicht kenne.
Gruß haga43
die Geschichte mit den Grundlagen ist nicht unwichtig. Will es wirklich nicht runter machen.
Aber für die Praxis im home- oder im Small-Office Bereich gibt es für mich nur eines:
fwbilder
fwbilder vergisst keinen Rückweg zu öffnen.
fwbilder ist leicht per gtk zu konfigurieren
Für verschiedene spezielle FW habe ich mit awk und bash Scripte für Firewalling gebaut, bis ich
fwbilder entdeckte.
Es gibt bestimmt ähnliche gute Tools, die ich nicht kenne.
Gruß haga43
-
- Beiträge: 7
- Registriert: 15.03.2004 10:33:41
- Wohnort: rosenheim
da gibts meiner meinung nach auch nen relativ guten iptables-generator unter http://www.harrry.homelinux.org
benutze den auch und bin damit soweit zufrieden. ok höheren anprüchen genügt es natürlich nicht aber ist mal ein anfang
benutze den auch und bin damit soweit zufrieden. ok höheren anprüchen genügt es natürlich nicht aber ist mal ein anfang
Wollts noch posten, weil mir gleich aufgefallen ist als er nicht getan hat:
http://www.harry.homelinux.org
Er hat ein "r" zuviel reingeschmuckelt
http://www.harry.homelinux.org
Er hat ein "r" zuviel reingeschmuckelt
-
- Beiträge: 7
- Registriert: 15.03.2004 10:33:41
- Wohnort: rosenheim
Iptables für router
Moin moin,
dieses Forum hat mir schon oft geholfen durch reines suchen, jedoch brauch ich bei den iptables nun doch noch bissel hilfe. Hab das Script für Router aus diesem Thread bissel für mich angepasst (thx k-pl). Läuft auch so wie gewünscht bis auf eine merkwürdige Sache:
Die erste Zeile erlaubt es mir vom Client ins Inetnet zu kommen.
Die zweite Zeiile erlaubt es generell inst internet zu kommen.
Wenn ich nun die zweite auf DROP setze, komme ich vom Router nicht mehr ins Internet vom Client aus kann ich aber immer noch ins Inernet, erst wenn ich die erste Zeile auch auf DROP setze wird der Client geblockt.
Die erste Zeile "FORWARD" soll nur weiterleiten wenn die zweite auf "ACCEPT" steht und nicht eigenstendig das Internet offen lassen..
bearbeite die Iptables grade mir dem Buch "Linux Wegweiser für Netzwerker" bin aber noch am Anfang mit den iptables.
Ich hoffe ich das die Infos reichen. Das Script ist so aufgebaut, wie das auf Seite 1 in diesem Thread.
dieses Forum hat mir schon oft geholfen durch reines suchen, jedoch brauch ich bei den iptables nun doch noch bissel hilfe. Hab das Script für Router aus diesem Thread bissel für mich angepasst (thx k-pl). Läuft auch so wie gewünscht bis auf eine merkwürdige Sache:
Code: Alles auswählen
# Lokal -> Internet: Alles erlauben
iptables -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT
# Ins Internet : Alles erlauben
iptables -A OUTPUT -o $IFACE_EXT -j ACCEPT
Die zweite Zeiile erlaubt es generell inst internet zu kommen.
Wenn ich nun die zweite auf DROP setze, komme ich vom Router nicht mehr ins Internet vom Client aus kann ich aber immer noch ins Inernet, erst wenn ich die erste Zeile auch auf DROP setze wird der Client geblockt.
Die erste Zeile "FORWARD" soll nur weiterleiten wenn die zweite auf "ACCEPT" steht und nicht eigenstendig das Internet offen lassen..
bearbeite die Iptables grade mir dem Buch "Linux Wegweiser für Netzwerker" bin aber noch am Anfang mit den iptables.
Ich hoffe ich das die Infos reichen. Das Script ist so aufgebaut, wie das auf Seite 1 in diesem Thread.
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Das geht nicht, weil FORWARD alle Pakete betrifft, die *durch* den Router gehen, und OUTPUT nur die Pakete betrifft, die wirklich *vom* Router sind.
Ergo: Für die Clients ist FORWARD zuständig, und für den Router selbst ist OUTPUT zuständig. Die beiden Regeln haben keinen gegenseitigen Einfluss.
Patrick
Ergo: Für die Clients ist FORWARD zuständig, und für den Router selbst ist OUTPUT zuständig. Die beiden Regeln haben keinen gegenseitigen Einfluss.
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
-
- Beiträge: 1
- Registriert: 12.05.2004 11:45:50
Nochmal zum Thema: Wie konfiguriere ich den Kernel zum Firewalling per IPTABLES ...
Da hätte ich hier einen Auszug aus "Das Firewall Buch" von Wolgang Barth, bezieht sich auf Kernel 2.4 ...
...Um von den Filterfähigkeiten des Kernel Gebrauch machen zu können, müssen die zum Firewalling gehörenden Teile einkompiliert sein. Mit
# make menuconfig
kann die Kernelkonfiguration verändert werden. Neben der generellen Netzwerkunterstützung unter General setup werden folgende Einstellungen aus dem Menü Networking options benötigt:
<*> Packet socket
[*] Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging
....
[*] TCP/IP networking
....
[*] IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration --->[/i]
Das Submenü Nefilter Configuration faßt alle für die Netfilter-Architektur möglichen Parameter zusammen.
<*> Connection tracking (required for masq/NAT)
<M> FTP protocol support
<*> IP tables support (required for filtering/masq/NAT)
<M> limit match support
<M> MAC adress match support
<M> netfilter MARK match support
<M> Multiple port match support
<M> TOS match support
<M> Connection state match support
<*> Packet filtering
<M> REJECT target support
<*> Full NAT
<M> MASQUERADE target support
<M> REDIRECT target support
<*> Packet mangling
<M> TOS target support
<M> MARK target support
<*> LOG target support
<M> TCPMSS target support
<M> ARP tables support
<M> ARP packet filtering
Die einzelnen Einstellungen werden in
/usr/src/linux/Documentation/Configure.help
näher beschrieben. Diese zu jedem Eintrag entsprechende Hilfe erhält man auch im Konfigurationsmenü über die Auswahl Help
Die wesentlichen Einstellungen daraus sind:
Network packet filtering
Schaltet grundsätzlich das Netfilter Framework ein. Ist nötig, sobald der Rechner als Paketfilter arbeiten soll oder NAT durchgeführt werden muss.
IP: TCP syncookie support
ist eine Abwehrmaßnahme gegen SYN flooding, eine Denial-of-Service-Attacke. Auf dem äußeren Router/Filter unbedingt anwenden. Allerdings muß der SYN-Cookie Support nach dem Booten aktiviert werden:
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
IP tables support (required for filtering/masq/NAT)
Der eigentliche Kern der Paket-Manipulation im Kernel 2.4. Darunter finden sich eine Reihe von Funktionalitäten als einzelne Module implementiert. Im Gegensatz zu früheren Kernels sind auch schon nichttriviale Targets wie REJECT, MASQUERADE und REDIRECT sowie Logging in eigene Module ausgelagert worden. Das hält den eigentlichen Kernelcode klein und übersichtlich und erleichtert die Erweiterung.
....
Connection tracking (required for masq/NAT)
In einer eigenen Tabelle werden ausgehende Pakete und Verbindungen gelistet, um eingehende Pakete besser einer bestehenden Verbindung zuordnen zu können. Das ermöglicht erst NAT, erlaubt aber auch eine dynamische Paketfilterung (Modul Connection state match support ).
cu Micha
PS: I like SuSE ...
Da hätte ich hier einen Auszug aus "Das Firewall Buch" von Wolgang Barth, bezieht sich auf Kernel 2.4 ...
...Um von den Filterfähigkeiten des Kernel Gebrauch machen zu können, müssen die zum Firewalling gehörenden Teile einkompiliert sein. Mit
# make menuconfig
kann die Kernelkonfiguration verändert werden. Neben der generellen Netzwerkunterstützung unter General setup werden folgende Einstellungen aus dem Menü Networking options benötigt:
<*> Packet socket
[*] Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging
....
[*] TCP/IP networking
....
[*] IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration --->[/i]
Das Submenü Nefilter Configuration faßt alle für die Netfilter-Architektur möglichen Parameter zusammen.
<*> Connection tracking (required for masq/NAT)
<M> FTP protocol support
<*> IP tables support (required for filtering/masq/NAT)
<M> limit match support
<M> MAC adress match support
<M> netfilter MARK match support
<M> Multiple port match support
<M> TOS match support
<M> Connection state match support
<*> Packet filtering
<M> REJECT target support
<*> Full NAT
<M> MASQUERADE target support
<M> REDIRECT target support
<*> Packet mangling
<M> TOS target support
<M> MARK target support
<*> LOG target support
<M> TCPMSS target support
<M> ARP tables support
<M> ARP packet filtering
Die einzelnen Einstellungen werden in
/usr/src/linux/Documentation/Configure.help
näher beschrieben. Diese zu jedem Eintrag entsprechende Hilfe erhält man auch im Konfigurationsmenü über die Auswahl Help
Die wesentlichen Einstellungen daraus sind:
Network packet filtering
Schaltet grundsätzlich das Netfilter Framework ein. Ist nötig, sobald der Rechner als Paketfilter arbeiten soll oder NAT durchgeführt werden muss.
IP: TCP syncookie support
ist eine Abwehrmaßnahme gegen SYN flooding, eine Denial-of-Service-Attacke. Auf dem äußeren Router/Filter unbedingt anwenden. Allerdings muß der SYN-Cookie Support nach dem Booten aktiviert werden:
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
IP tables support (required for filtering/masq/NAT)
Der eigentliche Kern der Paket-Manipulation im Kernel 2.4. Darunter finden sich eine Reihe von Funktionalitäten als einzelne Module implementiert. Im Gegensatz zu früheren Kernels sind auch schon nichttriviale Targets wie REJECT, MASQUERADE und REDIRECT sowie Logging in eigene Module ausgelagert worden. Das hält den eigentlichen Kernelcode klein und übersichtlich und erleichtert die Erweiterung.
....
Connection tracking (required for masq/NAT)
In einer eigenen Tabelle werden ausgehende Pakete und Verbindungen gelistet, um eingehende Pakete besser einer bestehenden Verbindung zuordnen zu können. Das ermöglicht erst NAT, erlaubt aber auch eine dynamische Paketfilterung (Modul Connection state match support ).
cu Micha
PS: I like SuSE ...
Re: Firewallscripts
Ich möchte einen Debian-PC als router verwenden, und habe dieses Script ausprobiert. Das einzige was auf meinem Clientrechner funktionierte war ICQ. Ansonsten ging nichts. Keine Webseite, und auch meine eMails konnte ich nicht aufrufen. Hatte zuvor noch auf mein internes Netzwerk angepasst, aber es funktionierte nicht! Was muss ich noch beachten?
k-pl hat geschrieben:Da immer wieder die Frage kommt, wo die iptables-Befehle eingetragen werden sollen, hier nochmal das Script von glatzor aus http://www.debianforum.de/forum/viewtopic.php?t=151 . Dieses Script lege man in /etc/init.d ab und erstelle Symlinks im Verzeichnis des benutzren Runlevels.
Achtung: Das Script ist ein Beispiel. Umbedingt die iptables-Eintrage anpassen.
Eine ausführlichere Anleitung befindet sich in der Tipp-Sektion.
Code: Alles auswählen
#!/bin/sh # Schnittstelle zum lokalen Netzwerk IFACE_INT=eth0 # Internetschnittstelle - "ippp+" für ISDN IFACE_EXT=ppp+ # Loopback device - bedraf keiner Anpassung IFACE_LO=lo # ************ # * POLICIES * # ************ # Zurücksetzen der Konfiguration iptables -F iptables -t nat -F iptables -X iptables -t nat -X # Default-Policies setzen - alles fliegt raus iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # Einschalten von ip-Forwarding echo "1" > /proc/sys/net/ipv4/ip_forward # ********* # * INPUT * # ********* # 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: Darf nicht sein iptables -A INPUT -i $IFACE_EXT -s 10.0.0.0/8 -j DROP iptables -A INPUT -i $IFACE_EXT -s 172.16.0.0/12 -j DROP iptables -A INPUT -i $IFACE_EXT -s 192.168.0.0/24 -j DROP # Vom Internet Erlauben von bereits initialisierten Verbindungen iptables -A INPUT -i $IFACE_EXT -m state \ --state ESTABLISHED,RELATED -j ACCEPT # *********** # * FORWARD * # *********** # Wegen der Telekom iptables -I FORWARD -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # 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 # ********** # * OUTPUT * # ********** # 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 # Den Rest mitprotokollieren iptables -A OUTPUT -j LOG --log-prefix "Nicht raus: " iptables -A FORWARD -j LOG --log-prefix "Nicht durch: " iptables -A INPUT -j LOG --log-prefix "Nicht rein: "
Changelog:
21.April 2003 - glatzor: Ich habe das Skript leicht modifiziert und einen Verweis auf eine HOWTO hinzugefügt
ich hab mein server neuinstalliert und bei der gelegenheit gleich meine firewall überarbeitet. nun wollt ich noch ein feedback haben, danke
Code: Alles auswählen
# sicherheitsstufe4b firewall script by mohameth@gmx.net
############################################################
# reset settings
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
############################################################
# definitions
# inet
A=eth1
# lan
B=eth0
############################################################
# INPUT:
# input drop
iptables -P INPUT DROP
# allow pakets from lo
iptables -A INPUT -i lo -j ACCEPT
# allow icmp echo-request till 5 per second. load modul ipt_limit!
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# allow icmp 3, 4, 11 and 12
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
# allow fragments
iptables -A INPUT -f -j ACCEPT
# allow reply pakets. modul ipt_state laden!
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# block ftp dos attack
iptables -A INPUT -m tcp -p tcp --dport ftp --syn -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport ftp --syn -j DROP
# allow ftp (ftp server)
#iptables -A INPUT -m tcp -p tcp --dport ftp -j ACCEPT
#iptables -A INPUT -m tcp -p tcp --dport ftp-data -j ACCEPT
# block ssh dos attack
iptables -A INPUT -m tcp -p tcp --dport ssh --syn -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport ssh --syn -j DROP
# allow ssh incoming
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
# allow arp requests from lan (nameserver)
#iptables -A INPUT -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
#iptables -A INPUT -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
# allow samba from lan
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 137 -j ACCEPT
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 138 -j ACCEPT
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 139 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 137 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 138 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 139 -j ACCEPT
# FORWARD:
# default drop
iptables -P FORWARD DROP
# allow icmp echo-request till 5 per second. load modul ipt_limit!
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
# allow icmp 3, 4, 11 and 12
iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 4 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT
# allow reply pakets. modul ipt_state laden!
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow fragments
iptables -A FORWARD -f -j ACCEPT
# allow dns requests from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
# allow http from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 80 -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 80 -j ACCEPT
# allow jabber from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 5222 -j ACCEPT
# allow jabber over ssl from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 5223 -j ACCEPT
# allow ftp from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport ftp -j ACCEPT
# allow pop3 from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3 -j ACCEPT
# allow pop3 over ssl from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3s -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3s -j ACCEPT
# allow smtp from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport smtp -j ACCEPT
# allow irc from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport ircd -j ACCEPT
# OUTPUT:
# default drop
iptables -P OUTPUT DROP
# allow pakets to lo
iptables -A OUTPUT -o lo -j ACCEPT
# allow reply pakets. modul ipt_state laden!
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow icmp till 5 per second. load modul ipt_limit!
iptables -A OUTPUT -p icmp -m limit --limit 5/s -j ACCEPT
iptables -A OUTPUT -p icmp -j DROP
# allow ssh to lan
iptables -A OUTPUT -m tcp -p tcp -d 192.168.0.0/255.255.255.0 -o $B --dport ssh -j ACCEPT
# allow ftp
iptables -A OUTPUT -m tcp -p tcp --dport ftp -j ACCEPT
# allow http
iptables -A OUTPUT -m tcp -p tcp --dport www -j ACCEPT
iptables -A OUTPUT -m udp -p udp --dport www -j ACCEPT
# allow dns requests
iptables -A OUTPUT -m tcp -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m udp -p udp --dport 53 -j ACCEPT
# allow samba to lan
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 137 -j ACCEPT
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 138 -j ACCEPT
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 139 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 137 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 138 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 139 -j ACCEPT
# PREROUTING:
# forward emule
#iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4660 -j DNAT --to-destination 192.168.0.2:4660
#iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 4672 -j DNAT --to-destination 192.168.0.2:4672
# POSTROUTING:
# aktivate masquerade
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
############################################################
# aktivate forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
-m tcp und -m udp sind ueberfluessig, wenn mit -p das Protokoll definiert wird.
siehe auch die manpage von iptables. Also wo '-m tcp -p tcp' steht reicht '-p tcp'
http und pop3s nutzen kein udp, die Erlaubnisse sind ueberfluessig.
Eine verwurmte Windose (zB Laptop eines Gastes) darf rausspammen, das ist schlecht.
Gibt die IP des erlaubten SMTP Servers als Destination an, damit duerfen Wuermer die mit einem eigenen SMTP direkt zustellen wollen nicht raus.
ist schlecht und ueberfluessig weil man damit Pakete reinlaesst die kein syn-flag haben und gleichzeitig zu keiner bekannten Verbindung gehoeren, denn die wurden ja schon weiter oben von --state ESTABLISHED,RELATED erlaubt.
# allow samba from lan geht kuerzer wenn man mit 137:139 die Portrange angibt
Und anstelle von /255.255.255.0 schreib ich persoenlich lieber /24
An manchen Stellen hast du den Port nummerisch angegeben und an andern Stellen den Dienst hingeschrieben. Das aendert nichts aber sieht aber inkonsistent aus.
Wenn man den Dienst hinschreibt ist's schoener zu lesen und man erkennt was 'gemeint ist'. Wenn man den Port hinschreibt sieht man was wirklich passiert. (Es kann jeder Dienst auf Port 80 laufen nicht nur http)
Wenn du die User wirklich auf Dienste festnageln willst, dann brauchst du ein Application-Gateway/Proxy.
Im Falle von http ist das sogar besser weil die User dann auch die Seiten von http Servern bekommen die nicht auf Port 80 laufen aber zB keinen SMTP auf Port 80 benutzen koennen.
https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.
Wenn du hoeflich sein moechtest dann haenge doch als letzte Regeln in der Input Chain noch das hier ran.
Wenn jemand eine Verbindung zu einem Port aufbauen moechte auf dem du kein Dienst anbietest bekommt er dann von dir gesagt das es nichts gibt, und er hoert auf.
Wenn du (bei tcp) den Syn bis zur DROP Policy laufen laesst, wird er es noch oefter Probieren weil er davon ausgeht das sein syn nicht bei dir angekommen ist. 5 mal ist Default
Meiner Erfahrung nach sind das meistens Syn die fuer denjenigen gedacht waren von dem man die Dynamische IP geerbt hat und eben die ueblichen WinWuermer.
Bei einem echten Portscann spielt es kaum eine Rolle ob man nun sofort dropt oder die ersten 60 noch rejectet.
BTW: Ich habe gute Erfahrungen mit dnsmasq gemacht.
Das ist ein kleiner Caching-dns den die LAN Clients benutzen koennen. Man muss die Clients nicht mehr auf Port 53 raus lassen und Namen die schon einmal aufgeloest wurden verursachen keinen Internet-traffic mehr, geht also schneller. Es gibt auch keine Probleme wenn man die Addressen der DNS Server dynamisch bei der Einwahl bekommt bzw wenn diese sich mal aendern, denn man gibt bei den Clients einfach die LAN IP des Rechners an der die Internetverbindung macht als DNS-Server an.
arzie
siehe auch die manpage von iptables. Also wo '-m tcp -p tcp' steht reicht '-p tcp'
http und pop3s nutzen kein udp, die Erlaubnisse sind ueberfluessig.
Eine verwurmte Windose (zB Laptop eines Gastes) darf rausspammen, das ist schlecht.
Gibt die IP des erlaubten SMTP Servers als Destination an, damit duerfen Wuermer die mit einem eigenen SMTP direkt zustellen wollen nicht raus.
Code: Alles auswählen
# allow ssh incoming
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
# allow samba from lan geht kuerzer wenn man mit 137:139 die Portrange angibt
Und anstelle von /255.255.255.0 schreib ich persoenlich lieber /24
An manchen Stellen hast du den Port nummerisch angegeben und an andern Stellen den Dienst hingeschrieben. Das aendert nichts aber sieht aber inkonsistent aus.
Wenn man den Dienst hinschreibt ist's schoener zu lesen und man erkennt was 'gemeint ist'. Wenn man den Port hinschreibt sieht man was wirklich passiert. (Es kann jeder Dienst auf Port 80 laufen nicht nur http)
Wenn du die User wirklich auf Dienste festnageln willst, dann brauchst du ein Application-Gateway/Proxy.
Im Falle von http ist das sogar besser weil die User dann auch die Seiten von http Servern bekommen die nicht auf Port 80 laufen aber zB keinen SMTP auf Port 80 benutzen koennen.
https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.
Wenn du hoeflich sein moechtest dann haenge doch als letzte Regeln in der Input Chain noch das hier ran.
Code: Alles auswählen
$IPTABLES -A INPUT -p tcp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p udp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with icmp-port-unreachable
Wenn du (bei tcp) den Syn bis zur DROP Policy laufen laesst, wird er es noch oefter Probieren weil er davon ausgeht das sein syn nicht bei dir angekommen ist. 5 mal ist Default
Meiner Erfahrung nach sind das meistens Syn die fuer denjenigen gedacht waren von dem man die Dynamische IP geerbt hat und eben die ueblichen WinWuermer.
Bei einem echten Portscann spielt es kaum eine Rolle ob man nun sofort dropt oder die ersten 60 noch rejectet.
BTW: Ich habe gute Erfahrungen mit dnsmasq gemacht.
Das ist ein kleiner Caching-dns den die LAN Clients benutzen koennen. Man muss die Clients nicht mehr auf Port 53 raus lassen und Namen die schon einmal aufgeloest wurden verursachen keinen Internet-traffic mehr, geht also schneller. Es gibt auch keine Probleme wenn man die Addressen der DNS Server dynamisch bei der Einwahl bekommt bzw wenn diese sich mal aendern, denn man gibt bei den Clients einfach die LAN IP des Rechners an der die Internetverbindung macht als DNS-Server an.
arzie
Jabber: arzie@amessage.de
das -m mach ich raus, aber bei den udp ports muss ich dir widersprechen.arzie hat geschrieben:-m tcp und -m udp sind ueberfluessig, wenn mit -p das Protokoll definiert wird.
siehe auch die manpage von iptables. Also wo '-m tcp -p tcp' steht reicht '-p tcp'
http und pop3s nutzen kein udp, die Erlaubnisse sind ueberfluessig.
1. steht in der /etc/services dass es für pop3 genau so wie für http udp gibt
2. hab ich früher kein udp für http gehabt, und dann konnte ich mich z.b. nicht per webinterface bei gmx anmelden.
aber ich will dass ich meinen server von außen erreichen kann!?arzie hat geschrieben:Eine verwurmte Windose (zB Laptop eines Gastes) darf rausspammen, das ist schlecht.
Gibt die IP des erlaubten SMTP Servers als Destination an, damit duerfen Wuermer die mit einem eigenen SMTP direkt zustellen wollen nicht raus.ist schlecht und ueberfluessig weil man damit Pakete reinlaesst die kein syn-flag haben und gleichzeitig zu keiner bekannten Verbindung gehoeren, denn die wurden ja schon weiter oben von --state ESTABLISHED,RELATED erlaubt.Code: Alles auswählen
# allow ssh incoming iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
ich werd es in portnummern ändern. proxyserver is aber etwas übertrieben in meinem kleinen lan.arzie hat geschrieben:# allow samba from lan geht kuerzer wenn man mit 137:139 die Portrange angibt
Und anstelle von /255.255.255.0 schreib ich persoenlich lieber /24
An manchen Stellen hast du den Port nummerisch angegeben und an andern Stellen den Dienst hingeschrieben. Das aendert nichts aber sieht aber inkonsistent aus.
Wenn man den Dienst hinschreibt ist's schoener zu lesen und man erkennt was 'gemeint ist'. Wenn man den Port hinschreibt sieht man was wirklich passiert. (Es kann jeder Dienst auf Port 80 laufen nicht nur http)
Wenn du die User wirklich auf Dienste festnageln willst, dann brauchst du ein Application-Gateway/Proxy.
Im Falle von http ist das sogar besser weil die User dann auch die Seiten von http Servern bekommen die nicht auf Port 80 laufen aber zB keinen SMTP auf Port 80 benutzen koennen.
mach ich reinarzie hat geschrieben:https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.
ich bin eigentlich ein höflicher mensch, aber es sollte nicht auf meine performance gehen.arzie hat geschrieben:Wenn du hoeflich sein moechtest dann haenge doch als letzte Regeln in der Input Chain noch das hier ran.
Wenn jemand eine Verbindung zu einem Port aufbauen moechte auf dem du kein Dienst anbietest bekommt er dann von dir gesagt das es nichts gibt, und er hoert auf.Code: Alles auswählen
$IPTABLES -A INPUT -p tcp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with tcp-reset $IPTABLES -A INPUT -p udp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with icmp-port-unreachable
Wenn du (bei tcp) den Syn bis zur DROP Policy laufen laesst, wird er es noch oefter Probieren weil er davon ausgeht das sein syn nicht bei dir angekommen ist. 5 mal ist Default
Meiner Erfahrung nach sind das meistens Syn die fuer denjenigen gedacht waren von dem man die Dynamische IP geerbt hat und eben die ueblichen WinWuermer.
Bei einem echten Portscann spielt es kaum eine Rolle ob man nun sofort dropt oder die ersten 60 noch rejectet.
ich hab die beiden regeln aber leider immer noch nicht ganz verstanden :/
danke, aber ein dns server kommt hier nimmer zum einsatz. bind für 4 rechner is schwachsinn. dnsmasq kenn ich, ist gut, aber eigentlich brauch ich keinen dns server.BTW: Ich habe gute Erfahrungen mit dnsmasq gemacht.
Das ist ein kleiner Caching-dns den die LAN Clients benutzen koennen. Man muss die Clients nicht mehr auf Port 53 raus lassen und Namen die schon einmal aufgeloest wurden verursachen keinen Internet-traffic mehr, geht also schneller. Es gibt auch keine Probleme wenn man die Addressen der DNS Server dynamisch bei der Einwahl bekommt bzw wenn diese sich mal aendern, denn man gibt bei den Clients einfach die LAN IP des Rechners an der die Internetverbindung macht als DNS-Server an.
arzie
btw: brauch ich bei ftp und ssh auch udp?
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?
- LinuxMichi
- Beiträge: 6
- Registriert: 26.07.2004 21:08:16
- Wohnort: Strasbourg und Marrakech
-
Kontaktdaten:
[quote="Natas12"]argh! also: jetzt hab ich mich durch mehrere tutorials durchgeklickt, diverse programme ausprobiert. so richtig schlau werd ich da nicht draus...
hab auf http://www.iptables.de folgendes skript für "eilige" gefunden - taugt das was (einfach nur dialup, modem, mehr nicht):
Der Server sieht ein bischen eigenartige aus...
Auch http://www.netfilter.org ist verschwunden...
hab auf http://www.iptables.de folgendes skript für "eilige" gefunden - taugt das was (einfach nur dialup, modem, mehr nicht):
Der Server sieht ein bischen eigenartige aus...
Auch http://www.netfilter.org ist verschwunden...
--
Was soll ich als Signatur angeben ?
Was soll ich als Signatur angeben ?
- holger.lehn
- Beiträge: 81
- Registriert: 06.04.2004 22:11:38
- Wohnort: Waghäusel
Hi,
schaut euch mal die Seite http://www.fwbuilder.org an.
Eine grafiche Oberfläche um Paketfilterregeln für verschiedene Zielsysteme, auch IPTABLES mit Linux 2.6 zu erstellen. Über eine COMPILE Funktion erstellt dass Programm ein Shell-Script das man nur noch ausführen muss und dass die IPTABLES Befehle absetzt.
schaut euch mal die Seite http://www.fwbuilder.org an.
Eine grafiche Oberfläche um Paketfilterregeln für verschiedene Zielsysteme, auch IPTABLES mit Linux 2.6 zu erstellen. Über eine COMPILE Funktion erstellt dass Programm ein Shell-Script das man nur noch ausführen muss und dass die IPTABLES Befehle absetzt.
Gruss
Holger
Holger
Ich hab mal ne frage zu Log Files:
Ich hab das in meinem Firewallscript stehen, und damit gibt er ja seine Ausgabe an das Kernel Log weiter.
Wie ist es möglich das ich das in drei Dateien umleite ? mit &> gehts ja nicht . . .
Code: Alles auswählen
iptables -A OUTPUT -j LOG --log-prefix "OUTPUT geblockt: "
iptables -A FORWARD -j LOG --log-prefix "FORWARD geblockt: "
iptables -A INPUT -j LOG --log-prefix "INPUT geblockt: "
Wie ist es möglich das ich das in drei Dateien umleite ? mit &> gehts ja nicht . . .
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
hab hier was gefunden
http://www.debianforum.de/forum/viewtop ... rewall+log
http://www.debianforum.de/forum/viewtop ... rewall+log
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
was ist das ?
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Manchmal ist richtig hilfreich [1].knecht hat geschrieben:was ist das ?
eagle
[1] http://packages.debian.org/unstable/net/guarddog
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Hi!
Ich will ne Firewall für n größeres Netzwerk aufsetzen und habe mir erstmal, bevor ich großartig mir wirklich zu Gemüte führe, wie iptables was macht, folgende Policy erstellt. Will jemand mal ein paar Kommentare geben bzw. Tipps, was ich am besten wie realisiere?
g-henna
Ich will ne Firewall für n größeres Netzwerk aufsetzen und habe mir erstmal, bevor ich großartig mir wirklich zu Gemüte führe, wie iptables was macht, folgende Policy erstellt. Will jemand mal ein paar Kommentare geben bzw. Tipps, was ich am besten wie realisiere?
Code: Alles auswählen
... <Internet> ...
| |
| (DSL) | (ISDN)
| |
+-----+-------+ |
| ppp0 | |
| | |
| [ ROUTER ] | |
| 192.168.0.1 | |
| | |
| eth0 lo | +-+ Nameserver
+---+-----+---+ +--+-+ 192.168.1.1
| |
| Switch |
+-+------------+--+
| |
| ...
| Subnetz 2
... 192.168.0.*
Subnetz 1 (DHCP)
192.168.1.*
(statisch)
Bye- von überall (eth0, ppp0, lo) alle eingehenden (INPUT) Pakete droppen
### INPUT, OUTPUT - lo ###
- Verkehr auf (INPUT) und von (OUTPUT) localhost (lo) komplett erlauben
### INPUT, OUTPUT - ppp0 ###
- aus dem Internet (ppp0) dürfen eingehende Verbindungen (INPUT) nur auf folgende Ports erfolgen:
- ssh (22)
- smtp (25)
- des weiteren dürfen eingehende Verbindungen (INPUT) aus dem Internet (ppp0) natürlich Antworten auf verschickte Pakete sein (ESTABLISHED, RELATED)
- ins Internet (ppp0) dürfen ausgehende Verbindungen (OUTPUT) immer und auf alle Ports getätigt werden
### INPUT, OUTPUT - eth0 ###
- vom lokalen Netzwerk (eth0) sollen eingehende Pakete (INPUT) nur für folgende Ports gestattet sein:
- http (80)
- apt-proxy (9999)
- ldap (389) bzw. ldap-ssl (636)
- afs (7000-7009)
- ausgehende Pakete (OUTPUT) ins Netzwerk (eth0) sollen immer und auf alle Ports erlaubt sein
### FORWARD - eth0 <-> ppp0 ###
- vom lokalen Netzwerk (eth0) sollen nur bestimmte Sachen ins Internet (ppp0) weitergeleitet (FORWARD) werden, und zwar:
- http (80)
- https (81)
- ftp (21)
- dns (53)
- ntp (123)
- aus dem Internet (ppp0) sollen nur die Pakete ins Netzwerk (eth0) weitergeleitet (FORWARD) werden, die Antworten auf Anfragen aus dem Netzwerk sind (ESTABLISHED, RELATED)
g-henna
follow the penguin...
Hallo zusammen,
wäre jemand mal so net und würde mein erstelltes Firewall-Skript anschaun ob ich da nicht was wichtiges übersehen hab?
Es funktioniert soweit, eine Frage dazu hätt ich jedoch noch, wäre es nicht sinnvoll die Highport-Verbindungen ebenfalls zu beschränken?
Gruß Polarwelt
/edit: verschoben nach http://nopaste.debianforum.de/740
bitte beachte die Verhaltensregeln
Gruß Savar
wäre jemand mal so net und würde mein erstelltes Firewall-Skript anschaun ob ich da nicht was wichtiges übersehen hab?
Es funktioniert soweit, eine Frage dazu hätt ich jedoch noch, wäre es nicht sinnvoll die Highport-Verbindungen ebenfalls zu beschränken?
Gruß Polarwelt
/edit: verschoben nach http://nopaste.debianforum.de/740
bitte beachte die Verhaltensregeln
Gruß Savar
Hi polarwelt,
Dein script sieht soweit gut aus, habs aber nicht probiert.
Das einzige was ich anzumäkeln hätte, ist dass die default policy von OUTPUT DROP ist. Du solltest im Kopf behalten, dass nur lokal generierte Pakete durch die OUTPUT chain laufen, nicht die geforwardeten Pakete !
iptables -A FORWARD -p ICMP -j ACCEPT
Wieso erlaubst Du Deinem DNS-Server Zugriff auf alle Ports (Zeile 88) ?? DNS Abfragen sind UDP und werden schon in der Regel davor (Zeile 83) erlaubt.
Die Limitierung von traffic im OUTPUT und FORWARD chain nach außen hin ist Geschmackssache ... ich persönlich traue meinem lokal erzeugten traffic und lasse ihn policy wise durch.
mfg, randall[/quote]
Dein script sieht soweit gut aus, habs aber nicht probiert.
Das einzige was ich anzumäkeln hätte, ist dass die default policy von OUTPUT DROP ist. Du solltest im Kopf behalten, dass nur lokal generierte Pakete durch die OUTPUT chain laufen, nicht die geforwardeten Pakete !
geht auch kürzer ...#
iptables -A FORWARD -i $ID_INT -o $ID_EXT -p ICMP -j ACCEPT
#
iptables -A FORWARD -i $ID_EXT -o $ID_INT -p ICMP -j ACCEPT
iptables -A FORWARD -p ICMP -j ACCEPT
Wieso erlaubst Du Deinem DNS-Server Zugriff auf alle Ports (Zeile 88) ?? DNS Abfragen sind UDP und werden schon in der Regel davor (Zeile 83) erlaubt.
Die Limitierung von traffic im OUTPUT und FORWARD chain nach außen hin ist Geschmackssache ... ich persönlich traue meinem lokal erzeugten traffic und lasse ihn policy wise durch.
mfg, randall[/quote]