Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
23.03.2009, 15:35
McScore



Ich habe hier gerade mal wieder ein kniffliges Problem - da frage ich am besten die Profis von thewall. Ich arbeite gerade an einem Web-Projekt - und zwar unter erschwerten Bedingungen. Das würde ich gerne ändern. Problem ist folgendes:
- Damit ich per SFTP auf den Webserver zugreifen kann, muss ich mich per VPN in das Rechenzentrumsnetzwerk einwählen. Dies lasse ich meinen Debian-basierenden Router mittels vpnc tun.
- So lange ich im VPN bin, lässt der Webserver keine Anfragen direkt auf Port 80 zu, da ich im VPN zwecks Caching deren Proxy verweden soll.
- VPN und Proxy sind so konfiguriert, dass ich zwecks Traffic-Reduzierung nur auf VPN-Interne Server zugreifen kann.
Konkret: Jedes mal, wenn ich ein Script geändert und lokal getestet habe, muss ich den VPN-Client anwerfen, SFTP-Verbindung aufbauen, hochladen, VPN-Verbindung beenden, dann Webseite aufrufen.
Es muss doch mittels iptables usw. möglich sein, dem Router folgendes klarzumachen: Verbindungen an $IP für Port 22 bitte durch VPN-Device tunneln, alles andere für $IP direkt ans Default Gateway. Oder gibt es da eine ganz andere Lösung, die ich nur nicht sehe?

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42

zum Seitenanfang zum Seitenende Profil || Suche
001
23.03.2009, 17:57
theDon



Das Stichwort ist policy routing, du willst mit fwmark die ssh-Verbindung markieren und dann fuer markierte Pakete eine alternative Routing-Tabelle verwenden.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
002
23.03.2009, 21:27
default



such mal nach source based routing hier im forum, das lässt sich dadrauf anwenden

--

Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst.

zum Seitenanfang zum Seitenende Profil || Suche
003
24.03.2009, 12:12
McScore



Schön, dass es auf thewall wie immer kompetente Leute zu finden gibt. Leider steig ich noch nicht ganz durch. Ich verfolge derzeit theDons Vorschlag und habe mir nach Lesen von http://lartc.org/howto/lartc.netfilter.html dies hier ausgedacht:
Quellcode:iptables -A PREROUTING -i eth0 -t mangle -p tcp --destination $IP --dport 17071 -j MARK --set-mark 1
echo 201 vpn.out >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table vpn.out
ip route add $IP/32 dev vpn table vpn.out
Meinem Verständnis nach sollte jetzt jedes Paket, welches über eth0 in den Router kommt und nach $IP:17071 will, vor dem Routen mit "1" markiert werden. Alle Pakete, die mit "1" markiert sind, gehören zur Regeltabelle "vpn.out" und alle solche Pakete für das Netzwerk $IP/32 werden durch den Tunnel geschickt.
Leider funktioniert das nicht: Pakete nach $IP:17071 gehen ungetunnelt an ppp0. Ich kann nicht erkennen, ob das Paket nicht markiert, nicht richtig geroutet oder was mit ihm nicht richtig gemacht wird. Habe ich "ip route add $IP/32 dev vpn table vpn.out" falsch verstanden? Oder muss ich die netfilter-Funktionen irgendwo erst noch aktivieren?

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42

zum Seitenanfang zum Seitenende Profil || Suche
004
24.03.2009, 15:14
theDon



Reverse path filter aus? Ansonsten mal mit -j LOG gucken, ob du die richtigen Pakete markierst.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
005
25.03.2009, 00:48
McScore



Der Reverse Path Filter wars, obwohl in o.g. Beschreibung stand, so lange man kein SNAT verwendet, ginge das schon klar. Mein Script sieht jetzt so aus:
Quellcode:#echo 201 vpn.out >> /etc/iproute2/rt_tables # muss nur einmal gesetzt werden
vpnc /etc/vpnc/vpn.conf
iptables -t nat -A POSTROUTING -o vpn -j MASQUERADE
iptables -A PREROUTING -i eth0 -t mangle -p tcp --destination $IP --dport 17071 -j MARK --set-mark 1
sysctl -w net.ipv4.conf.vpn.rp_filter=0
ip rule add fwmark 1 table vpn.out
ip route add $IP/32 dev vpn table vpn.out

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42


Dieser Beitrag wurde am 25.03.2009 um 01:11 von McScore bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
16.05.2009, 23:11
McScore



Achja... funktioniert!
Danke.

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42

zum Seitenanfang zum Seitenende Profil || Suche