linux-l: Routing Problem (?)

Guenther Thomsen tho at thomsen.isdn.cs.tu-berlin.de
Mo Sep 27 21:56:18 CEST 1999


In message <19990927123921.16273.rocketmail at web112.yahoomail.com>, Matthias Kra
ft writes:
Um es kurz zu machen, ich hab' nicht _die_ Antwort (zumindest noch nicht), nur
ein paar Fragen:

> Hi!
> 
> Bin gerade dabei eine etwas seltsame Firewall Konstruktion
> fuer eine Firma zusammenzuschustern. Prinzip:
> 
> | Internet |
> ------------
>      |
>   Router  - div. Server ausserhalb der Firewall
>      |
>   Firewall
>      |
> <lokales Netz>
> 
> Der Router hat x.x.252.1 als IP. Die div. Server neben der Firewall
> haben irgendwas zwischen 252.2 und 252.63 als IP und die Firewall
> hat Routerseitig 252.60 als ihre eigene Addresse und 252.45, 252.46
> und 252.10 als Aliases. Lokale IP ist 192.168.42.1.
> Die Chains sind so konfiguriert, dass sie bestimmte Dienste von
> drinnen nach draussen connecten lassen und die Antworten durchlassen.
> Von draussen nach drinnen kann ueber die 252.60 nichts connecten.
>  
> Bis hierhin funktioniert auch alles.
> 
> Jetzt sollen aber auf den drei Aliases die Ports 22,80,443
> geforwarded
> werden. Meine ipchains-konfig sieht dabei fuer den port 22 auf der
> 252.10 so aus (alle anderen Ports ebenso):
> 
> # ip alias setzen
> ifconfig eth0:0 x.x.252.10 broadcast x.x.252.63 netmask 255.255.255.0
> up
Tut nichts zur Sache aber bedenke, dass unter Solaris devN und devN:0
identisch sind, dort muss man also bei 1 anfangen. Soll Dich nur vor
Verwirrung schuetzen, wenn Solaris einmal eingesetzt werden sollte
(oder wenn die Linux Kerneldeveloper der Meinung sind, man muesste
sich dem Look&Feel von Solaris weiter anpassen).

> route add -host x.x.252.10 dev eth0:0
??? Was soll denn das? Der Kernel 2.2 (den Du wohl einsetzt, den ipchains
Kommando nach zu urteilen) legt automatisch eine (hoffentlich) Korrekte
route an, wenn mit ifconfig einem device eine IP Adresse zugewiesen wird.
Was soll hier die Host Adresse? Und dann auch noch seine eigene? Ich weiss
nicht ob das ein Problem ist (bezweifle ich - Linux ist in solchen Dingen
erstaunlich robust) aber ich verstehe es zumindest nicht.

> 
> # port forwarding schalten
> ipmasqadm portfw -a -P tcp -L x.x.252.10 22 -R 192.168.42.10 22
und die Rueckrichtung? Du verwendest dann ip-masquerading? Kommt der Kernel
damit zurecht?

> 
> # ipchains config connect extern -> intern
> ipchains -A input -p tcp --sport 1000:1023 -d x.x.252.10 22 -i eth0+
> -j ACCEPT
Du verwendest ein juengeres ipchains als ich, ich vermute einmal, dass
--sport n:m das gleiche wie -s 0/0 n:m bedeutet. Funktioniert dev+?
Ich hatte damit Probleme, bzw. mit dev* (ipchains hatte tatsaechlich 
Regeln mit dem Device dev* angelegt, nicht viele Reglen fuer die devices
dev0 bis devN).

> ipchains -A output -p tcp --sport 1000:1023 -d 192.168.42.10 22 -i
> eth1 -j ACCEPT
> # ipchains config antwort intern -> extern
> ipchains -A input -p tcp -s 192.168.42.10 22 --dport 1000:1023 -i
> eth1 -j ACCEPT ! -y
> ipchains -A forward -p tcp -s 192.168.42.10 22 --dport 1000:1023 -i
> eth0+ -j MASQ ! -y
Und von innen soll niemand eine SSH Verbindung nach aussen initiieren 
duerfen? (Gehoert nicht zum Problem, wundert mich nur).

> ipchains -A output -p tcp -s x.x.252.10 22 --dport 1000:1023 -i eth0+
> -j ACCEPT ! -y
> 
> Sooo ... wenn ich nun versuche von einem der Server, die vor der
> Firewall und diesseits des Routers stehen, einen SSH Connect durch
Aehm, bei einer Drei-Wege Verbindung von diesseits und jenseits zu
sprechen, laesst Fragen offen. Ich verstehe diesseits i.d.Z. als
vom Perimeter Netzwerk (aka DMZ) und jenseits als vom Internet aus.

> die Firewall zur 252.10 aufzubauen, funtioniert das wunnerbah!
> Wenn ich aber versuche von jenseits des Routers auf die 252.10
> per ssh zuzugreifen kommt das nicht an.
> Ich habe dann die Netzwerkkarte in den Promi-Modus gesetzt und mir
> per
> tcpdump angesehen, ob die Pakete im Netz ankommen und - surprise,
> surprise - sie sind da?! 
Sonst waere auch der Router schuld ;-)

> Nur irgendwie fuehlt sich der Rechner nicht so richtig zustaendig 
> und nimmt die Pakete nicht an?!
Wie aeussert sich dass? Hast Du einmal auf die Paketzaehler des
Packetfilters geschaut? Schalte doch einmal logging bei den Filterregeln
ein.

Guenther



Mehr Informationen über die Mailingliste linux-l