linux-l: HILFE zur Firewall

thomsen at cs.tu-berlin.de thomsen at cs.tu-berlin.de
Di Jun 2 22:40:56 CEST 1998


In message <357413FC.702F512 at lr-online.de>, Frank Schreiber writes:
> Hallo,
> 
> ich moechte nach dem Muster (Linux-Magazin)
> http://www.linux-magazin.de/ausgabe.1997.11/Firewall/firewall.html
> eine Firewall aufbauen. Mit "ping www.linux-magazin.de"
> wird die IP aufgeloest. Ich erhalte aber keine
> "Verbindung".
> Kann mir jemand sagen, was ich noch falsch mache. 
> 
> Vielen Dank
> Frank Schreiber                 
> schreiber at lr-online.de
> 
> 
> #!/bin/sh
> #start_firewall
> #####################################################################
> #                                                                   #
> #                     FIREWALL - SCHUTZREGELN                       #
> #                                                                   #
> # dieses Script kann nach dem Initialisieren des Netzwerks          #
> # (Skript networking) aufgerufen werden.                            #
> #####################################################################
> 
> # Interface des Bastion Hosts aussen:   eth1
> # Interface des Bastion Hosts innen:    eth0
> # IP des Bastion Hosts aussen:          151.189.15.62
> # IP des Bastion Hosts innen:           172.17.11.10
> # IPs des eigenen Netzwerks:            172.17.11.0/24
					^^^^^^^^^^^^^^^^
					Shell Variablen bieten sich an

Aeh, ich hab's nicht im Kopf, ich gehe im Folgenden davon aus, dass
172.17 ein reserviertes ('privates') class-B net ist.

> # Proxy squid                     Port: 8080              
> 
> # mit Flush alle evtl. aktiven Firewall-Regeln loeschen:
> ipfwadm -I -f
> ipfwadm -O -f
> ipfwadm -F -f
> ipfwadm -A -f
> 
> # deny ist immer die default-Regel:
> ipfwadm -I -p deny
> ipfwadm -O -p deny
	^^^^^^^^^^^^
	das fuehrt Erfahrungsgemaess zu Schwierigkeiten, z.B. wenn ein
externer ns befragt wird, geschieht das von einem belieben UDP port
zwischen 1024 und 65535. Ok, ich sehe gerade, der domain service wird
gesondert behandelt aber denk daran, 'you ask for trouble'.

> ipfwadm -F -p deny
> 
> # Sicherheitsregeln:
> ipfwadm -I -a deny -S 0.0.0.0/0 -D 151.189.15.62/32 -P tcp -y   # deny
> SYN-Attacke
> ipfwadm -I -a deny -S 0.0.0.0/0 -D 172.17.11.0/24 -P tcp -y     # deny
> SYN-Attacke
 ???? (ich bin nicht auf dem aktuellen Stand aber sync floods lassen
Linux kernel schon eine ganze Weile nicht mehr abstuerzen). Ein deny of
service, laesst sich so nicht verhindern, vielmehr wird jede von
aussen (auch vom localnet!) TCP verbindung unterdrueckt. Ich denke am
Anfang sollte man nicht uebertreiben und sich darum kuemmern, wenn es
tatsaechlich auftritt (deny-of-service attacks lassen sich nur sehr
bedingt zum Eindringen ausnutzen und sind mehr ein Aergernis, das
zudem auch nicht verborgen bleibt ;)

> ipfwadm -O -a deny -S 172.17.11.10/32 -D 0.0.0.0/0 -P udp       # deny
> masq innen
 ???? da default policy 'deny' ist, brauchen jetzt nur noch 'reject'
und 'accept' Regeln definiert werden.

> ipfwadm -O -a deny -S 172.17.11.10/32 -D 0.0.0.0/0 -P tcp       # deny
> masq innen
> ipfwadm -I -a deny -S 172.17.11.0/24 -D 0.0.0.0/0 -W eth1      # deny
> spoofing
 'denied' werden solche Pakete per default, s.o. - man koennte solche
Angriffe (oder major routing problems!) auch loggen. Dann sollten aber
Regeln auch fuer die ext. IP# des bastion host und 'localhost'
angefuehrt werden.

> 
> # Regeln fuer TCP-Verbindungen zwischen User-PC's und Internet-Servern:
> # Allgemeingueltige Regeln fuer alle TCP-Verbindungen mit Masquerading:
> ipfwadm -O -a accept -S 151.189.15.62/32 -D 0.0.0.0/0 -P tcp -W eth1
 Wie jetzt? Der Bastion host darf also doch nach aussen alles
schicken? Ich dachte schon Du haettest eine paranoide Angst vor
Trojanischen Pferden. Aber warum denn nicht nach innen? Das ist ja wie
beim 'antifaschistischen Schutzwall'! ]:->

> ipfwadm -I -a accept -S 0.0.0.0/0 -D 151.189.15.62/32 -P tcp -k -W eth1
 OK.

> ipfwadm -F -a accept -S 172.17.11.0/24 -D 0.0.0.0/0 -P tcp -m
> 
> # DNS-Regeln fuer alle UDP:
> ipfwadm -O -a accept -S 151.189.15.62/32 -D 0.0.0.0/0 53 -P udp -W eth1
> ipfwadm -I -a accept -S 0.0.0.0/0 53 -D 151.189.15.62/32 -P udp -W eth1
> ipfwadm -F -a accept -S 172.17.11.0/24 -D 0.0.0.0/0 53 -P udp -m
> 
> # Regeln fuer dem Proxy-Squid TCP:
> ipfwadm -I -a accept -S 127.0.0.1/32 -D 127.0.0.1/32 -P tcp
> ipfwadm -O -a accept -S 127.0.0.1/32 -D 127.0.0.1/32 -P tcp
 Vorschlag: -I -a accept -W lo; -O -a accept -W lo
 
> 
> #ICMP-Ping-Regeln - fuer Testzwecke erlauben:
>  ipfwadm -I -a accept -S 0.0.0.0/0 -D 0.0.0.0/0 -P icmp
>  ipfwadm -O -a accept -S 0.0.0.0/0 -D 0.0.0.0/0 -P icmp
>  ipfwadm -F -a accept -S 0.0.0.0/0 -D 0.0.0.0/0 -P icmp
 Jetzt ohne masquerading? Beachten auch, dass z.B. 'traceroute' UDP
packte verschickt (und ICMP Pakete auswertet).

[..]
Ne, Dein perl script schaue ich mir jetzt nicht an. Erst einmal klein
anfangen!

Guenther




Mehr Informationen über die Mailingliste linux-l