jjlehto
Goto Top

Linux-Router auf 2 verschieden Gateways routen

Hab ein Problem, an dem ich mir schon seit einiger Zeit die Zähne ausbeiße

Folgende Konfiguration ist vorhanden:

Windows-Domäne mit festen IP-Adressen xxx.xxx.97.1-255, wobei x für eine öffentliche IP-Adresse steht, das ist so vom Firmenverband vorgegeben.

Linux-Router mit 2 Netzwerkkarten und SQUID
eth1 = dynamische Adresse 192.168.178.xxx von Fritzbox
eth0 = feste IP xxx.xxx.97.135
Routing ins Internet funktioniert einwandfrei

Alle Windows-Pc's haben den Linux-Router alst Standard-Gateway eingetragen und kommen so ins Internet.

Problem: ein zweiter Hardware-Router hängt im Netz mit der IP xxx.xxx.97.2 und über den sollen die Windows-Pc's in ein Intranet des Firmenverbandes. Das funktioniert sobald man den Windows-Pc's die gewünschte Route zufügt mit dem gateway xxx.xxx.97.2
Da es aber ca. 70 IP's sind, die über den xxx.xxx.97.2 Router geroutet werden sollen und die sich auch von Zeit zu Zeit ändern, wollte ich diese Routen auch über den Linux-Router zentral verwalten, habe auf dem Linux-Router die entsprechenden Routen eingetragen. Von der Konsole aus routet der Linux-Router auch richtig über das xxx.xxx.97.2 GW, nur die Windows-Clients werden weiterhin ins Internet über die eth1 geroutet.
Also nochmal mit fiktiven IP-Adressen:
Linux-Router eth0: 64.123.97.135
Linux-Router eth1: 192.168.178.20 (dhcp von Fritzbox DSL)
Intranet-Router: 64.123.97.2
Windows-Pc's: 64.123.97.20-50
Intranetseite die über Intranetrouter erreichbar ist: 64.199.15.79

Auf Windows-PC ist folgende Route eingetragen:
Dest. Mask GW Metrik
64.199.15.79 255.255.255.255 64.123.97.2 1 -> funktioniert

Auf Linux-Router ist folgende Route eingetragen:
Dest. Mask GW Metrik Flags Use Iface
64.199.15.79 255.255.255.255 64.123.97.2 0 UGH 0 eth0 -> funktioniert lokal auf der Konsole, aber nicht von den Windows-Clients aus (Route wurde am Windows-Client vorher entfernt)

Hat da jemand eine Idee dazu? Ich tippe da vielleicht auch noch auf die Firewall, hab vorsichtshalber mal die Ausgabe von "iptables --list" angehängt.
Noch was - IP-Adressen können nicht geändert werden, die müssen so bleiben.

Noch einige Daten:
Linux-Router: SuSe 10.0
Squid
Avira-Webgate
Windows-Domäne: W2K3

Firewall-Regeln:
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
input_int  all  --  anywhere             anywhere
input_ext  all  --  anywhere             anywhere
input_ext  all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET '  
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
forward_int  all  --  anywhere             anywhere
forward_ext  all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWD-ILL-ROUTING '  
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-OUT-ERROR '  

Chain forward_ext (1 references)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp echo-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp redirect
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '  
LOG        icmp --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '  
LOG        udp  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '  
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT-INV '  
DROP       all  --  anywhere             anywhere

Chain forward_int (1 references)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp echo-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp redirect
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '  
LOG        icmp --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '  
LOG        udp  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '  
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT-INV '  
DROP       all  --  anywhere             anywhere

Chain input_ext (2 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            PKTTYPE = broadcast
ACCEPT     icmp --  anywhere             anywhere            icmp source-quench
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp echo-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT     icmp --  anywhere             anywhere            state RELATED,ESTABLISHED icmp redirect
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp dpt:ssh flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TCP '  
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
reject_func  tcp  --  anywhere             anywhere            tcp dpt:ident state NEW
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '  
LOG        icmp --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '  
LOG        udp  --  anywhere             anywhere            limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '  
LOG        all  --  anywhere             anywhere            limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT-INV '  
DROP       all  --  anywhere             anywhere

Chain input_int (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain reject_func (1 references)
target     prot opt source               destination
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset
REJECT     udp  --  anywhere             anywhere            reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere            reject-with icmp-proto-unreachable

Hier noch das gewünschte Diagramm, ich hoffe es ist damit verständlicher
de5d7d5212d72d00755a0600fc6e4b8f

Vielen Dank im Voraus

Content-Key: 136038

Url: https://administrator.de/contentid/136038

Printed on: April 18, 2024 at 20:04 o'clock

Member: iVirusYx
iVirusYx Feb 16, 2010 at 08:49:06 (UTC)
Goto Top
Dies ist sehr schwer sich das vor Augen zu führen...
Manche schaffen es vielleicht jedoch um jeglichen Zweifel auszuschliessen,
könntest du bitte ein Diagramm des Netzwerkes inklusiv aller Details posten?

Danke face-smile
Member: dog
dog Feb 16, 2010 at 09:52:31 (UTC)
Goto Top
Und die ganzen Listings in Tags setzen face-smile
Member: aqui
aqui Feb 16, 2010 at 11:10:38 (UTC)
Goto Top
2 Kardinalsfehler hast du bei der Umsetzung begangen, die du auch unbedingt ändern musst:

1.) Ein Router hat niemals eine DHCP Adresse an einem Port. Dem Linux Router im 192.168.178er Segment also eine DHCP IP zu vergeben ist schlicht falsch und zeugt von wenig Routing Fachwissen...sorry ! Router dienen der Wegefindung in einem Netzwerk und sind auf feste IP Adressen angewiesen. Du musst hier also eine statische IP vergeben außerhalb der DHCP Range der FB

2.) Statische Routen konfiguriert man niemals auf Endgeräten !! Diese Frickelei mit route add... auf Endgeräte PCs ist also schonmal grundfalsch. Statische Routen werden immer auf den Routern gesetzt NICHT auf Endgeräten. Denn...wozu heisst der Router "Router" ??

Zu Punkt 2. ist also die einzig relevante Frage WO haben deine PCs ihr Defualt Gateway konfiguriert ???
Auf diesen Routern werden die statischen Routen eingetragen..nirgendwo sonst !
Leider fehlt diese Angabe in deiner Beschreibung so das man hier nur wild raten kann statt dir qualifiziert zu helfen face-sad

So sollte dein Netzwerk eigentlich aussehen:

0c12c81794cb8712b4c000cbd8cd17ea

Fragen die weiter ungeklärt sind:
  • Wo haben die PCs im 64.123.97.0er Netz ihr Standardgateway ?
  • Wo haben die PCs im 192.168.178.0er Netz ihr Standardgateway ?
Member: jjlehto
jjlehto Feb 16, 2010 at 11:19:24 (UTC)
Goto Top
Zitat von @aqui:
2 Kardinalsfehler hast du bei der Umsetzung begangen, die du auch unbedingt ändern musst:

1.) Ein Router hat niemals eine DHCP Adresse an einem Port. Dem Linux Router im 192.168.178er Segment also eine DHCP IP
zu vergeben ist schlicht falsch und zeugt von wenig Routing Fachwissen...sorry ! Router dienen der Wegefindung in einem Netzwerk
und sind auf feste IP Adressen angewiesen. Du musst hier also eine statische IP vergeben außerhalb der DHCP Range der
FB

Hier wird doch nur ins Internet geroutet, werde ich aber trotzdem auf eine statische IP ändern, Danke


2.) Statische Routen konfiguriert man niemals auf Endgeräten !! Diese Frickelei mit route add... auf Endgeräte
PCs ist also schonmal grundfalsch. Statische Routen werden immer auf den Routern gesetzt NICHT auf Endgeräten.
Denn...wozu heisst der Router "Router" ??

Deshalb ja die ganze Fragerei, das will ich ändern.

Zu Punkt 2. ist also die einzig relevante Frage WO haben deine PCs ihr Defualt Gateway konfiguriert ???
Als D-GW ist lokal auf den PC's der Linux-Router 64.123.97.135 konfiguriert
Auf diesen Routern werden die statischen Routen eingetragen..nirgendwo sonst !
Ja, habe ich, funktioniert aber nicht, geht nur vom Linux-Router lokal auf der konsole
Leider fehlt diese Angabe in deiner Beschreibung so das man hier nur wild raten kann statt dir qualifiziert zu helfen face-sad

So sollte dein Netzwerk eigentlich aussehen:

Fragen die weiter ungeklärt sind:
  • Wo haben die PCs im 64.123.97.0er Netz ihr Standardgateway ?
  • Wo haben die PCs im 192.168.178.0er Netz ihr Standardgateway ?

die PCs im 64.123.97.0er Netz haben ihr Standardgateway auf 64.123.97.135 gesetzt
es gibt keine PCs im 192.168.178.0er Netz, das ist nur die Verbindung vom Linux-Router zur Fritzbox, die dann eine dynamische IP der Telekom zugewiesen bekommt (DSL-Anschluß)
Member: jjlehto
jjlehto Feb 16, 2010 at 11:38:31 (UTC)
Goto Top
Hab jetz mal die Firewall beobachtet, was passiert wenn ich auf eine Intranetadresse zugreifen will:

Feb 16 12:31:56 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28048 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=23808
Feb 16 12:32:00 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28050 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=24064
Feb 16 12:32:04 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28052 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=24320
Feb 16 12:33:05 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28338 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=33024
Feb 16 12:33:09 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28341 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=33280
Feb 16 12:33:14 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28350 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=33536
Feb 16 12:33:18 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=2 ID=28352 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=33792
Feb 16 12:33:23 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=2 ID=28355 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=34048

ich glaube hier liegt der Hund begraben, hab aber wenig bis gar keine Ahnung von der iptables FW
Member: aqui
aqui Feb 16, 2010, updated at Oct 18, 2012 at 16:41:10 (UTC)
Goto Top
OK, dann hast du diese 3 Punkte zu erledigen damit es fehlerfrei klappt:
  • 2 Statische Routen auf der FritzBox eintragen:
a.) Zielnetz: 64.123.97.0, Maske: 255.255.255.0, Gateway: <Feste IP Linux Router im 192.168.178.0er Netz>
b.) Zielnetz: 64.199.15.0, Maske: 255.255.255.0, Gateway: <Feste IP Linux Router im 192.168.178.0er Netz>
b. kann ggf. entfallen wenn da keiner über die FB nach draussen geht !

  • 2 Statische Routen auf dem Linux Router:
a.) Zielnetz: 64.199.15.0, Maske: 255.255.255.0, Gateway: 64.123.97.2
b.) Default Route, Gateway: 192.168.7.1 (FritzBox IP)

  • Default Route vom Hardware Router .2 auf die .135

Das wars. Auf dem Linux Router musst du ggf. das IP Forwarding aktivieren sofern du das noch nicht gemacht hast !
Siehe hier im Tutorial:
Routing von 2 und mehr IP Netzen mit Windows, Linux und Router
Member: jjlehto
jjlehto Feb 16, 2010 at 11:49:51 (UTC)
Goto Top
Wenn ich das richtig verstanden habe dann wird wie folgt geroutet:
Anfrage ins Intranet 64.199.15.79
Client 64.123.97.25 -> Linux-Router 64.123.97.135 eth0 -> 192.168.178.20 eth1 -> FB 192.168.178.1 -> Linux-Router 64.123.97.135 eth0->eth0-> Intranet-Router 64.123.97.2 -> Intranet 64.199.15.79

Kann der Weg über die FB nicht gespart werden?
Ich lass mich gerne belehren
Hab inzwischen die eth1 auf statische IP 192.168.178.20 umgestellt und die IP aus dem DHCP-Bereich der FB genommen.
Member: jjlehto
jjlehto Feb 16, 2010 at 11:56:47 (UTC)
Goto Top
Zitat von @aqui:
  • Default Route vom Hardware Router .2 auf die .135
das geht nicht, der Router .2 ist ein fertig konfiguriertes geschlossenes Gerät, das wir nicht verändern können
Member: jjlehto
jjlehto Feb 16, 2010 at 12:09:42 (UTC)
Goto Top
egal was ich wo eintrage, ein tracert vom Windows-PC kommt immer nur bis zum 64.123.97.135 = Linux-Router und dann Zeitüberschreitung - folgere daraus FW-Problem, da bräuchte ich aber Hilfe vom FW-Spezialisten. Siehe FW-Log oben
Member: jjlehto
jjlehto Feb 16, 2010 at 12:14:20 (UTC)
Goto Top
Noch was - der Intranetrouter hat eine separate Standleitung ins Intranet, wird also nicht übers Internet getunnelt.
Member: dog
dog Feb 16, 2010 at 13:14:36 (UTC)
Goto Top
Folgender Regelsatz ist ausschlaggebend:

38. LOG        tcp  --  anywhere             anywhere            limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '   
[...]
41. DROP       all  --  anywhere             anywhere 
Member: jjlehto
jjlehto Feb 16, 2010 at 13:23:51 (UTC)
Goto Top
Sorry, aber wie kann ich diesen Regelsatz löschen oder abändern, wie schon gesagt FW ist nicht mein Fachgebiet, und was bedeutet dieser Regelsatz überhaupt
Member: datasearch
datasearch Feb 16, 2010 at 13:36:19 (UTC)
Goto Top
Feb 16 12:31:56 linux-router kernel: SFW2-FWDint-DROP-DEFLT IN=eth0 OUT=eth0 SRC=64.123.97.25 DST=64.199.170.59 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=28048 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=23808

Die Routing-Tabelle auf dem Linux-System sieht also wie folgt aus?

ip route
64.123.97.0/24 dev eth0  proto kernel  scope link  src 64.123.97.135
64.199.15.79/24 via 64.123.97.2 dev eth0
default via 192.168.178.1 dev eth1

Mit Yast wurde folgendes unter "Security and Users -> Firewall" Konfiguriert:
Interface eth0 INTERNAL
Interface eth1 EXTERNAL oder ANY
Masquerading auf ETH1 aktiviert

Mit YaST wurde folgendes unter "Network Settings->Routing" konfiguriert:
DEST 64.199.15.79 MASK 255.255.255.0 GATEWAY 64.123.97.2 DEVICE eth0

Enable IP Forwarding wurde aktiviert.

Gibt es noch zusätzliche, benutzerdefinierte Regeln? Eventuell verbeietest du dem System Redirects zu senden oder zu empfangen? Dein Log-Auszug sieht so aus, als währen alle Interfaces auf "extern" gesetzt. Kannst du bitte nochmal eine Ausgabe von "iptables -nvL" geben? Das ist etwas genauer.

Um zu testen ob es an der Firewall liegt, kannst du eine Permit any any Regel in die Forward-Table für eth0 schreiben.

iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
Um auf die Original SuSE Regeln zurückzukommen, reicht ein "rcSuSEfirewall2 reload".
Member: jjlehto
jjlehto Feb 16, 2010 at 13:46:48 (UTC)
Goto Top
Zitat von @datasearch:
Um zu testen ob es an der Firewall liegt, kannst du eine Permit any any Regel in die Forward-Table für eth0 schreiben.

> iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
> 
Um auf die Original SuSE Regeln zurückzukommen, reicht ein "rcSuSEfirewall2 reload".

Super es funktioniert

nachdem ich die o.g. Regel eingetragen habe funktioniert alles wie gewollt - was oder wem habe ich damit Tür und Tor geöffnet oder wie kann ich eine sichere Regel erstellen oder ändern?
Member: datasearch
datasearch Feb 16, 2010 at 13:56:30 (UTC)
Goto Top
Vermutlich hast du irgendwo die Interfaces falsch zugewiesen. Ein iptables -nvL (n=Numerisch, v=verbose, L=list) gibt da genauere Informationen wo das Problem (hier werden dann auch EIN und AUSGABE INTERFACE angezeigt) liegt. Eventuell auch /etc/sysconfig/SuSEfirewall2.
Member: jjlehto
jjlehto Feb 16, 2010 at 14:19:47 (UTC)
Goto Top
hier die Ausgabe von iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
 1578 1063K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
 2461 1590K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   79  5226 input_int  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0   
    1    36 input_ext  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0   
    0     0 input_ext  all  --  *      *       0.0.0.0/0            0.0.0.0/0   
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-IN-ILL-TARGET '  
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
    4   368 ACCEPT     all  --  eth0   eth0    0.0.0.0/0            0.0.0.0/0   
    0     0 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
  121  8317 forward_int  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0 
   63  4885 forward_ext  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0 
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWD-ILL-ROUTING '  
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain OUTPUT (policy ACCEPT 2 packets, 80 bytes)
 pkts bytes target     prot opt in     out     source               destination 
 1578 1063K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0   
 2969 1653K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    2    80 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-OUT-ERROR '  

Chain forward_ext (1 references)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3
   15  1032 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 14
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 18
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3 code 2
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 5
    0     0 ACCEPT     all  --  *      eth1    0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
   48  3853 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-FWDext-DROP-DEFLT '  
    0     0 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWDext-DROP-DEFLT '  
    0     0 LOG        udp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWDext-DROP-DEFLT '  
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 state INVALID LOG flags 6 level 4 prefix `SFW2-FWDext-DROP-DEFLT-INV '  
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain forward_int (1 references)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 14
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 18
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3 code 2
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 5
  121  8317 ACCEPT     all  --  *      eth1    0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-FWDint-DROP-DEFLT '  
    0     0 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWDint-DROP-DEFLT '  
    0     0 LOG        udp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWDint-DROP-DEFLT '  
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 state INVALID LOG flags 6 level 4 prefix `SFW2-FWDint-DROP-DEFLT-INV '  
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain input_ext (2 references)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           PKTTYPE = broadcast
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 14
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 18
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 3 code 2
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED icmp type 5
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp dpt:22 flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-ACC-TCP '  
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
    0     0 reject_func  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:113 state NEW
    0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '  
    0     0 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '  
    0     0 LOG        udp  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '  
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 state INVALID LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT-INV '  
    1    36 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain input_int (1 references)
 pkts bytes target     prot opt in     out     source               destination 
   79  5226 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0   

Chain reject_func (1 references)
 pkts bytes target     prot opt in     out     source               destination 
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with tcp-reset
    0     0 REJECT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-proto-unreachable
Die Zeile 13 ist von
iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT
Member: datasearch
datasearch Feb 16, 2010 at 15:12:37 (UTC)
Goto Top
Die Kette "forward_int" springt an, wenn Pakete von ETH0 kommen und nach Any weitergeleitet werden sollen. In dieser Kette werden Pakete, die über eth1 das System verlassen mit dem Status "NEU und BESTEHEND" erlaubt aber nur Pakete, die zu bestehenden Verbindungen gehören akzeptiert.

Über eth0 darf garnichts geforwarded werden. Normalerweise ist das auch kein problem, da sich hinter diesem interface alle Systeme im gleichen Subnetz befinden. Vermutlich akzeptieren aber die Systeme im Netz keinen ICMP Redirect oder das System ist nicht in der Lage, aufgrund der Firewallkonfiguration, diesen zu senden. Da es nun keine Regel gibt, greift Default Drop.


Da sich hinter eth0 sowieso das gleiche Netz verbirgt, kannst du relativ bedenkenlos Verbindungen in der Forward-Kette von eth0 nach eth0 akzeptieren.

Willst du eine saubere trennung zum restlichem Netz (der Intranet-Router) solltest du ein Subinterface konfigurieren und die Netze logisch (L3) trennen. Der Zugriff kann dann in der Firewall explizit in eine Richtung erlaubt werden (-m state ....).

iptables -I FORWARD -i eth0 -o eth0 -j ACCEPT


Da du aber ein SuSE einsetzt, sollten diese Regeln eigentlich vorhanden sein. Prüfe bitte eine Interfacekonfiguration. eth0 muss auf INTERN stehen. Sollte das nicht helfen, trage die iptables Zeile unter "Custom Rules" ein, um die Konfiguration nicht zu versauen.
Member: jjlehto
jjlehto Feb 16, 2010 at 16:10:27 (UTC)
Goto Top
Danke für die Hilfe, diese Regel macht ja nichts anderes als die Clients ja eh schon dürfen. Also in meinen Augen kein Sicherheitsproblem.
Würde jetzt bloß noch gerne wissen wie ich diese Regel so eintrage, daß nach einem Neustart diese automatisch vorhanden ist.
Member: datasearch
datasearch Feb 16, 2010 at 17:49:52 (UTC)
Goto Top
Im YaST oder direkt in der Datei /etc/sysconfig/SuSEfirewall2 gibt es einen Bereich für Benutzerdefinierte Regeln (custom Rules). Hier kannst du das Eintragen.
Member: jjlehto
jjlehto Feb 19, 2010 at 12:17:01 (UTC)
Goto Top
Danke, hab jetzt alles so wi ich wollte.
In der /etc/sysconfig/scripts/SuSEfirewall2-custom habe ich die Regel eingetragen und es funktioniert.

Ein Lob an alle Helfer
Member: datasearch
datasearch Feb 19, 2010 at 16:31:17 (UTC)
Goto Top
Huch, ja, bei dieser Version sind die Benutzerdefinierten Regeln in einer extra Datei abgelegt. Aber nun hast du es ja hinbekommen.