Firewallscripts

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
Benutzeravatar
DiWoWo
Beiträge: 51
Registriert: 05.06.2004 21:51:19

Re: Firewallscripts

Beitrag von DiWoWo » 06.06.2004 18:05:42

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

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Beitrag von fabske » 12.06.2004 12:34:38

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?

arzie
Beiträge: 134
Registriert: 17.02.2002 15:51:03

Beitrag von arzie » 15.06.2004 22:13:03

-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.

Code: Alles auswählen

# allow ssh incoming 
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
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.

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 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

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Beitrag von fabske » 16.06.2004 21:08:59

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.
das -m mach ich raus, aber bei den udp ports muss ich dir widersprechen.
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.
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.

Code: Alles auswählen

# allow ssh incoming 
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
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.
aber ich will dass ich meinen server von außen erreichen kann!?
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.
ich werd es in portnummern ändern. proxyserver is aber etwas übertrieben in meinem kleinen lan.
arzie hat geschrieben:https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.
mach ich rein
arzie hat geschrieben: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 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.
ich bin eigentlich ein höflicher mensch, aber es sollte nicht auf meine performance gehen.
ich hab die beiden regeln aber leider immer noch nicht ganz verstanden :/
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
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: 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?

Benutzeravatar
LinuxMichi
Beiträge: 6
Registriert: 26.07.2004 21:08:16
Wohnort: Strasbourg und Marrakech
Kontaktdaten:

Beitrag von LinuxMichi » 26.07.2004 21:23:42

[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... :(
--
Was soll ich als Signatur angeben ?

Benutzeravatar
holger.lehn
Beiträge: 81
Registriert: 06.04.2004 22:11:38
Wohnort: Waghäusel

Beitrag von holger.lehn » 14.10.2004 21:24:22

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.
Gruss
Holger

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 19.10.2004 15:46:33

Ich hab mal ne frage zu Log Files:

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: " 
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 . . . :oops:
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 22.10.2004 11:33:16

_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
jm
Beiträge: 3
Registriert: 01.12.2004 06:02:18

Beitrag von jm » 02.12.2004 17:34:29

was haltet ihr so von 'guarddog' ?

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 03.12.2004 19:17:35

was ist das ?
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 05.12.2004 12:03:40

knecht hat geschrieben:was ist das ?
Manchmal ist :google: richtig hilfreich [1].

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

fzr
Beiträge: 66
Registriert: 12.07.2004 22:33:25

iptables ipv6

Beitrag von fzr » 09.01.2005 14:44:30


Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Beitrag von g-henna » 12.01.2005 22:37:26

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?

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)

- 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)
Bye
g-henna
follow the penguin...

Polarwelt
Beiträge: 16
Registriert: 18.05.2005 15:36:27
Wohnort: Bärenstadt
Kontaktdaten:

Beitrag von Polarwelt » 08.06.2005 08:25:52

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

randall
Beiträge: 82
Registriert: 24.11.2005 21:36:28

Beitrag von randall » 17.04.2006 01:40:56

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 -i $ID_INT -o $ID_EXT -p ICMP -j ACCEPT
#
iptables -A FORWARD -i $ID_EXT -o $ID_INT -p ICMP -j ACCEPT
geht auch kürzer ...
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]

Antworten