IPFire: als OpenVPN Client nutzen

Nachdem ich mir nun auch Zuhause eine IPFire hingestellt habe (vielen Dank an Kevin), wollte ich diese als Client für meine VPN-Verbindungen nutzen.

Info: Die IP-Adresse meiner IPFire lautet 192.168.2.1 somit ist mein green0 Netzwerk 192.168.2.0/24 (255.255.255.0).

Damit das Ganze funktioniert, muss man allerdings SSH auf der IPFire aktivieren.
Dieses geht im Webinterface unter System -> SSH-Zugriff.
Dann schalten wir uns via SSH auf die IPFire auf:

bash:~$ ssh root@192.168.2.1

Dort erstellen wir dann einen Ordner Namens vpn:

bash:~$ mkdir vpn && cd vpn

Ich habe zwei VPN’s mit denen ich mich verbinden möchte also erstelle ich mir nun zwei weitere Ordner im Ordner vpn:

bash:~/vpn$ mkdir vpn1 vpn2

In diese Ordner kopiere ich meine Zertifikate und OpenVPN Konfigurationsdateien, allerdings müssen wir Letztere noch bearbeiten.

Der Pfad zu unserem Zertifikat muss nämlich absolut und nicht relativ sein, sonst gibts es später Probleme.
Ebenfalls müssen wir, da wir mehr als ein VPN verwenden noch den adapter manuell angeben:

vpn1
dev tun0
vpn2
dev tun1

Somit verwendet unser erstes VPN immer tun0 und das Zweite tun1.

Nachdem diese Vorberitungen nun abgeschlossen sind, können wir uns unser eigentliches Skript basteln:

connect.sh
#!/bin/bash
BASEPATH=/root/vpn
CONF_VPN1=$BASEPATH/vpn1/vpn1.ovpn
CONF_VPN2=$BASEPATH/vpn2/vpn2.ovpn
NET_GREEN0=192.168.2.0/24

# lade das für tun zuständige Kernel-Modul
modprobe tun

# verbinde mit vpn1
openvpn --config $CONF_VPN1 --daemon vpn1
# verbinde mit vpn2
openvpn --config $CONF_VPN2 --daemon vpn2

# erlaube den Zugriff auf das VPN von green0 aus
iptables -t nat -A POSTROUTING -s $NET_GREEN0 -o tun0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $NET_GREEN0 -o tun1 -j MASQUERADE

Mit dem Befehl chmod +x connect.sh machen wir das Skript noch ausführbar und sind fertig.

Soll das Skript automatisch beim Booten ausgefürht werden, gibt man folgenden Befehl ein:

bash:~$ echo "/root/vpn/connect.sh" >> /etc/sysconfig/rc.local

Nun wird unser Skript automatisch bei jedem Bootvorgang ausgeführt.

Alle PC’s, die nun im green0 Netzwerk hängen, können nun unsere VPN-Verbindung verwenden, auf Wunsch kann man nun SSH wieder deaktivieren.