OpenVPN einrichten

Posted by on 22 Aug 2009 | Tagged as: CLI, hyper_ch

Ich habe inzwischen auch mal ein bisschen mit OpenVPN herumgespielt und bin auf einige Probleme gestoosen. Ich werde diese nachfolgend erläutern und auch darlegen wie ich das gelöst habe. Mein Ziel war, dass grundsätzlich alles von meinem Lan Server über OpenVPN läuft (also auch rTorrent) aber ich wollte noch weiterhin Zugriff über die public ip haben.

1. OpenVPN installieren und konfigurieren

Hier werde ich nicht selbst was reinfügen sondern auf die bekannten Howtos verweisen. Grundsätzlich kann diesem Howto hier gefolgt werden: http://wiki.openvpn.eu/index.php/Konfiguration_eines_Internetgateways

Was die Zertifikate angeht, vorallem wenn man komplexere Setups machen will, hat mir dieser Artikel geholfen: http://openvpn.net/index.php/open-source/documentation/howto.html#pki

Damit sollte sich schnell ein VPN einrichten lassen.

2. Troubleshooting

Sollten Probleme auftauchen und die beiden Seite nicht weiterhelfen, kann entweder auf dem Forum http://www.ovpnforum.com oder im IRC (##openvpn auf irc.freenode.org:6667) um Hilfe ersucht werden (wobei IRC nach meiner kleinen Erfahrung besser ist).

Wichtig ist vorallem auch, dass man sich die Konfigurationsdateien ansieht und allenfalls diese schon per Pastebin zur Verfügung hat. Um die Konfiguration einfach und bequem angezeigt zu bekommen, kann dieser kleine reguläre Ausdruck verwendet werden:

grep -vE '^#|^;|^$' server.conf

Dies im /etc/openvpn Verzeichnis ausführen lassen. Je nachdem allenfalls server.conf mit client.conf ersetzen. Meine Configs sehen derzeit so aus:

hyper@........:/etc/openvpn$ sudo grep -vE '^#|^;|^$' server.conf
port 1194
proto udp
dev tun
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key    # Diese Datei geheim halten.
dh ./easy-rsa2/keys/dh1024.pem     # Diffie-Hellman-Parameter
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1" # leitet den Internettraffic am Client zum Server um
push "dhcp-option DNS 208.67.222.222" # DNS-Server 1
push "dhcp-option DNS 208.67.220.220" # DNS-Server 2 (falls vorhanden)
ping-timer-rem
keepalive 20 180
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
verb 6
mute 50
log     openvpn.log
hyper@xubi:/etc/openvpn$ sudo grep -vE '^#|^;|^$' client.conf
client
dev tun
proto udp
remote ........ # Domain Name oder IP
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert rubi.crt
key rubi.key
ns-cert-type server
comp-lzo
verb 6
mute 50
log     openvpn.log

3. Public IP SSH

Mit dem da oben läuft alles wunderbar. rTorrent und sämtlicher andere Traffic läuft nun über das OpenVPN. Allerdings hatte ich noch ein Problem. Ich konnte nicht mehr vom Internet mit ssh auf den Client mit meiner Public IP zugreifen, sondern nur noch über den VPN Server.

Hilfe habe ich im ##openvpn Forum bekommen. Dort wurde mir gesagt, dass das Routing noch nicht stimme und ich müsste auf meinem Router noch ein entsprechender Eintrag machen. Da ich Tomato WRT benutz auf meinem Linksys WRT4GL musst ich dort unter Administration –> Scripts und dann im Firewall Tab nur folgendes einfügen:

iptables -t nat -I POSTROUTING -o br0 -p tcp --dport 22 -j MASQUERADE

Nach dem Reboot des Routers funktioniert nun alles so wie es sollte.

Comments are closed.