[linux-l] IP tables

Peter Ross peter.ross at alumni.tu-berlin.de
Di Dez 17 00:40:47 CET 2002


Hi,

entschuldigt die Verzoegerung. Dieses Wochenende habe ich das Thema etwas
ruhen lassen, zumal ein Anruf vom Chef um Mitternacht, der mich zwei
Stunden gekostet hat, nur um festzustellen, dass alles in Ordnung ist und
er die Floehe hat husten hoeren, mich etwas allergisch gegen weitere
Tastenbetaetigung gemacht hat. Auch kann ich im Alltagsbetrieb meine
Nutzer nicht endlos aergern;-)

Ausserdem bekomme ich den Digest, weil ich der Frage "Moechtest Du Digest
oder lieber Einzelmails? - Ja/Nein?" (oder aehnlich) nicht gewachsen war
und daneben getippt habe.

On Fri, 13 Dec 2002, Kendy Kutzner wrote:

> On 2002-12-13T00:12:57+0000, Peter Ross wrote:
> > seid gegruesst von einem, der Euch schon zehn Stunden voraus ist, da er
> > sich derzeit downunder rumtreibt.
>
> g'day mate, :)
> hoffentlich ist Dir nicht zu warm, wir haben hier zur Zeit eine
> mittlere Kaeltewelle. Wo treibst Du Dich denn rum?
>
Na, halt in Melbourne, Victoria, im "kalten" Sueden. Manchmal weht es
recht kraeftig aus der Antarktis. Nichtsdestotrotz ist das Wetter etwas
waermer als in Berlin, aber nicht warm genug fuer Buschbraende wie weiter
noerdlich:-) Aber heute waren wohl etwas ueber 25 Grad.

> > Die Regeln sind in Shellprozeduren verpackt, aber sinngemaess so zu sehen:
>
> egal, wie sieht denn
> 'iptables -t xxx -L'
> aus fuer xxx={nat, filter, mangle}?

Schicke ich weiter unten.
>
> > iptables -A FORWARD -J LOG
>
> sollte das nicht ein kleines -j sein?

Ja, ich habe das aus dem Gedaechtnis geschrieben, ohne gerade Zugriff auf
den Rechner zu haben.

> es gibt keine policy deny, entweder reject oder drop.

Hier gilt das Gleiche. Bin auch noch FreeBSD-geschaedigt..(grummel: Mit
dem System waere mir auch der Mitternachtsanruf erspart geblieben)

>  Ich glaube filter und nat sind Deine Tabellen.

Okay, mehr habe ich auch nicht benutzt. Hier ist filter/FORWARD (INPUT und
OUTPUT sollten fuer den Durchgangsverkehr belanglos sein) und die
nat-Table. Wo sich die Regeln fuer sieben Dienste oder Adressen
wiederholen, habe ich nur ein oder zwei Beispielregeln hier gelassen.

Chain FORWARD (policy ACCEPT 4700 packets, 232K bytes)
 pkts bytes target     prot opt in     out     source               destination
# Stop spoofing
    0     0 LOG        all  --  eth1   *       192.168.0.0/16       0.0.0.0/0          LOG flags 0 level 4
    0     0 DROP       all  --  eth1   *       192.168.0.0/16       0.0.0.0/0
# Stop private RFC 1918 networks
# (192.168.0.0/16,172.16.0.0/12, 10.0.0.0/8)
    0     0 LOG        all  --  *      eth1    0.0.0.0/0            192.168.0.0/16     LOG flags 0 level 4
    0     0 LOG        all  --  eth1   *       192.168.0.0/16       0.0.0.0/0          LOG flags 0 level 4
    0     0 DROP       all  --  *      eth1    0.0.0.0/0            192.168.0.0/16
    0     0 DROP       all  --  eth1   *       192.168.0.0/16       0.0.0.0/0
# Filter ICMP, drop types 4 5 15 16 17 18, erlaube die anderen
#   (im Zweifelsfalle siehe /usr/include/netinet/ip_icmp.h )
 3896 1488K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0          icmp type 0
 3942 1495K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0          icmp type 8
    0     0 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0          icmp type 4 LOG flags 0 level 4
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0          icmp type 4
# Traue einer IPSec-Verbindung
 374K  101M ACCEPT     all  --  ipsec0 eth0    0.0.0.0/0            0.0.0.0/0
 431K  310M ACCEPT     all  --  eth0   ipsec0  0.0.0.0/0            0.0.0.0/0
# Proxies duerfen Port 80 und 443 ohne Proxy.
# Fuer den Rest sind http und https geblockt
# Beispiel Port 80, Port 443 ist genauso.
74075 3492K ACCEPT     tcp  --  *      eth1    192.168.0.219        0.0.0.0/0          tcp dpt:80 state NEW
   12   720 ACCEPT     tcp  --  *      eth1    192.168.0.241        0.0.0.0/0          tcp dpt:80 state NEW
11824  568K LOG        tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpt:80 state NEW LOG flags 0 level 4
11824  568K DROP       tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpt:80 state NEW
# Wirf NetBIOS weg, ausser MS weiss eh keiner, warum die Kisten das
# immerzu wollen
    0     0 LOG        tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpts:137:139 state NEW LOG flags 0 level 4
    0     0 DROP       tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpts:137:139 state NEW
  774 60372 LOG        udp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          udp dpts:137:139 state NEW LOG flags 0 level 4
  774 60372 DROP       udp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          udp dpts:137:139 state NEW
# Wirf MS Messenger weg
  111  5328 LOG        tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpt:1863 state NEW LOG flags 0 level 4
  111  5328 DROP       tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpt:1863 state NEW
# Das folgende ist ausgehend erlaubt - FTP, shh, telnet etc. pp. ich habe
# mal nach als Beispiel FTP und DNS, das sieht eh immer gleich aus
   34  1654 ACCEPT     tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          tcp dpt:21 state NEW
27975 1747K ACCEPT     udp  --  *      eth1    0.0.0.0/0            0.0.0.0/0          udp dpt:53 state NEW
# Die Kiste darf alle TCP/Dienste
  162  7722 ACCEPT     tcp  --  *      eth1    192.168.0.219        0.0.0.0/0          tcp dpts:1:65535 state NEW
    0     0 ACCEPT     tcp  --  *      eth2    192.168.0.219        0.0.0.0/0          tcp dpts:1:65535 state NEW
# Einige Umleitungen, Beispiel SMTP zum Mailserver
11651  699K ACCEPT     tcp  --  eth1   *       0.0.0.0/0            192.168.254.2      tcp dpt:25 state NEW
# Was die Firewall schon kennt und akzeptier, soll sie reinlassen
5809K 2442M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED
# Der Rest soll geloggt werden
 4642  224K LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0          LOG flags 0 level 4

Dies ist in der NAT-Table
Chain PREROUTING (policy ACCEPT 178K packets, 14M bytes)
 pkts bytes target     prot opt in     out     source               destination
# Ein paar Umleitungen, als Beispiel der SMTP-Port
11653  699K DNAT       tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0          tcp dpt:25 to:192.168.254.2
    0     0 DNAT       tcp  --  eth2   *       0.0.0.0/0            0.0.0.0/0          tcp dpt:25 to:192.168.254.2

# Hier das Masquerading fuer ausgehende Verbindungen
Chain POSTROUTING (policy ACCEPT 34387 packets, 6509K bytes)
 pkts bytes target     prot opt in     out     source               destination
 134K 7053K MASQUERADE  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0
    0     0 MASQUERADE  all  --  *      eth2    0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 3006 packets, 242K bytes)
 pkts bytes target     prot opt in     out     source               destination

Die letzte LOG-Regel in der FORWARD-Rule, gedacht als Auffanglager fuer
mir nicht Bekanntes, bekam nur Schrott und Portscans, was ich
bedenkenlos wegwerfen kann, dachte ich.

Also: Default-Policy auf DROP gesetzt und..

Z.B. kein ping mehr nach aussen, obwohl ich ICMP-Type 0 und 8 explizit
erlaube (siehe ICMP-Filter oben..)

Ich habe danach den Verdacht gehabt, dass ich irgendwo einen prinzipiellen
Denkfehler mache.

Ich habe vorher FreeBSD verwendet (darf das aus "politischen" Gruenden
gerade nicht:-( und habe die dortige Logik abgewandelt verwendet.

Was blockt hier das Ping?

Es gruesst Peter




Mehr Informationen über die Mailingliste linux-l