[gelöst] Statische vRoot IP daheim nutzen

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
alex0801
Beiträge: 195
Registriert: 16.10.2005 19:46:48

[gelöst] Statische vRoot IP daheim nutzen

Beitrag von alex0801 » 25.11.2014 14:38:53

Hallo zusammen,

ich möchte folgendes eigenwilliges Konstrukt basteln:

Einen vRoot der

1) SSH anbietet
2) OpenVPN anbietet, für einen einzigen Client
3) allen Traffik (primär TCP und UDP, ICMP ist optional) welcher an den vRoot geht und NICHT Port 22/SSH und NICHT Port 1194/OpenVPN ist an den per OpenVPN angebundenen Client leiten (--> DestinationNAT?)
4) Eingehenden Traffik über die bestehende VPN Verbindung (also Client-->vRoot) als Traffik des vRoot ausgeben (--> SourceNAT?)
5) Eine Firewall auf dem vRoot mit welcher ich eingehenden/ausgehenden Traffik (zwischen Internet und vRoot) kontrollieren kann

Punkt 1 und 2 ist absolut kein Thema. Läuft. Punkt 5 sollte auch klappen (hab da ein funktionierendes Script) eigentlich auch. Aber es hapert an Punkt 2+3 ...

Soweit ich das verstanden habe brauche ich für 3) eine ipTables-Regel im Prerouting und für 4) eine im Postrouting ...

Hab dann mal gegoogelt und bin auf das hier gestoßen: http://superuser.com/questions/714676/i ... except-ssh

Das Beispiel schaut schonmal nicht schlecht aus und ließe sich sicherlich auf meinen Fall anpassen.

Hab ich probiert, klappt aber nicht. Sobald ich am PRE oder POSTROUTING bastle geht kein Zugriff mehr auf den vRoot.

Hat hier jemand einen Plan von und kann mir einen Tipp geben?

Zuletzt habe ich das hier versucht:

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p TCP -j DNAT --to $OTHERIP
iptables -t nat -A POSTROUTUNG -i eth0 -p TCP -j SNAT --to $MYIP
iptables -A FORWARD -i eth0 -p TCP -d $MYIP --dport 22 -j REJECT
iptables -A FORWARD -i eth0 -p TCP -d $MYIP --dport 1194 -j REJECT
iptables -A FORWARD -i eth0 -d $MYIP -j ACCEPT
Hab vieles probiert, aber geklappt hat eigentlich nix.

Was geklappt hat war dieser Einzeiler:

Code: Alles auswählen

iptables -t nat -A PREROUTING -p tcp -d $MYIP --match multipport ! --dports 22,1194 -j DNAT --to-destination $OTHERIP
Damit konnte ich Internet-Traffik über den vRoot über die OpenVPN Verbindung auf den verbundenen Client umleiten. Nur die andere Richtung fehlt noch: Vom Client ausgehende Verbindungen über die OpenVPN Verbindung zum vRoot ins Internet ...

Vielleicht kann sich einer der ipTables Experten hier dazu durchringen mir etwas zu helfen?

HELP!

Gruß
Alex

P.S. Der Sinn und Zweck der ganzen Übung:
Eine statische IP am heimischen DSL-Anschluss. Den kleinsten vRoot mit einer IPv4 kriegt man schon für 1EUR/Monat. Der muss ja nicht viel können außern Traffik hin und her schieben.
Fix und Fertig kann man dieses Setup auch kaufen: http://www.portunity.de/access/produkte ... unnel.html .. allerdings für die 4fachen Kosten. 4,20EUR sind zwar nicht viel. Aber mich reizt es eben das Ding selbst zu hosten. Mit Linux kenn ich mich aus. Aber mit ipTables steh ich irgendwie auf Kriegsfuß...
Zuletzt geändert von alex0801 am 25.11.2014 15:42:50, insgesamt 1-mal geändert.

alex0801
Beiträge: 195
Registriert: 16.10.2005 19:46:48

Re: Statische vRoot IP daheim nutzen

Beitrag von alex0801 » 25.11.2014 15:23:36

Hab mir mal wieder selbst helfen können:

Für die Umleitung des Internettraffiks an den Client im VPN funktioniert das hier:

Leitet alle TCP Ports außer 22 und 1194 auf $MYIP um

Code: Alles auswählen

iptables -t nat -A PREROUTING -p TCP -d $MYIP --match multiport ! --dports 22,1194 -j DNAT --todestination $OTHERIP
Und für den umgekehrten Weg sollte das hier funktionieren:

Alle Pakete die aus dem OpenVPN Netz kommen und das System über eth0 verlassen (--> Internet) bekommen als Quell-Adresse $MYIP

Code: Alles auswählen

iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j SNAT --to-source $MYIP
Wichtig ist dann noch auf dem vRoot:

Code: Alles auswählen

echo 1 > /proc/sys/net/ipv4/ip_forward
Auf dem Client muss man dann noch nur die Routingtabelle umbauen:

von default auf openvpn (10.8.0.5 ist der Gateway im OpenVPN Netz des Client):

Code: Alles auswählen

route del -net 0.0.0.0 eth0
route add default gw 10.8.0.5 tun0 
und wieder zurück:

Code: Alles auswählen

route del -net 0.0.0.0 tun0
route add default gw <gatewayIP des Routers, z.B. IP der Fritzbox> eth0 
In einem ersten Test-Setup mit zwei lokalen VMs klappt das schon recht gut. Als nächstes kommt der vRoot dran und das Internet dazwischen.

Hilfreich war übrigens diese Seite hier: http://wiki.nefarius.at/linux/mit_openvpn_ins_internet

Antworten