Bei mir kommt es immer häufiger vor, dass ein Webserver Zugriff auf sensible Dienste eines Servers im internen Netzwerk erhalten soll. Um diesen Zugriff so sicher wie möglich zu gestallten, sollte die dazu notwendige Netzwerkverbindung verschlüsselt werden. Also muss eine VPN-Verbindung her.
Bei Linux-Servern kann man diese Verbindung ganz einfach mit der Software strongSwan einrichten. Bei den meisten Linux-Distributionen ist das dazu nötige Paket enthalten und schnell installiert. Bei Ubuntu 12.04 geht dies z.B. ganz einfach mit dem folgenden Befehl:
sudo apt-get install strongswan
Um die software einzurichten ist noch ein geheimes Kennwort für den Verbindungsaufbau und eine Konfiguration für die VPN-Verbindung notwendig. Das Kennwort wird in der Datei /etc/ipsec.secrets festgelegt. Wenn der Internetserver die IP 144.133.122.111 und die Firewall des internen Netzwerkes die IP 143.132.121.110 hat, müsste die Datei die folgende Zeile beinhalten (das Kennwort sollte natürlich anders sein):
144.133.122.111 143.132.121.110 : PSK 'HierKommtEinGeheimesLangesKennwortHin'
Die Konfiguration der VPN-Verbindung erfolgt in der Datei /etc/ipsec.conf. Für eine Verbindung mit dem Namen InternesNetzwerk kommt der folgende Abschnitt in die Datei:
conn InternesNetzwerk
left=144.133.122.111
leftsubnet=144.133.122.111/255.255.255.255
right=143.132.121.110
rightsubnet=172.30.4.0/255.255.255.0
leftid="144.133.122.111"
rightid="143.132.121.110"
ike=aes128-sha-modp1536,aes128-sha-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha-modp1536,3des-sha-modp1024,3des-md5-modp1536,3des-md5-modp1024
esp=aes128-sha1,aes128-md5,3des-sha1,3des-md5
ikelifetime=1h
keylife=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
pfs=yes
authby=secret
auto=start
keyexchange="ikev1"
Bei der Verbindung werden die zuvor schon genannten IP-Adressen von Webserver und Firewall verwendet. Ferner ist ein interner IP-Bereich 172.30.4.0/24 für das interne Netzwerk konfiguriert. Für die IPSec Verbindung wurde IKE in der Version 1, Dead Peer Detektion, Perfect Forward Seurity und einige andere übliche Einstellungen gesetzt. All diese Einstellungen müssen natürlich den jeweiligen Gegebenheiten angepasst werden. Außerdem müssen die IPSec Parameter denen der Firewall entsprechen.
Wenn auch die Firewall auf der Gegenseite eingerichtet ist, lässt sich die Konfiguration durch einen Neustart von strongSwan bzw. IPSec aktivieren.
sudo /etc/init.d/ipsec restart
Danach kann man sich mit dem Befehl
sudo ip xfrm state
oder dem Befehl
sudo ip xfrm policy
anzeigen lassen, ob ein Tunnel zustande gekommen ist. Eventuelle Fehlermeldungen sind wie immer in der Datei /var/log/syslog zu finden. Wenn man die letzen 50 Zeilen anzeigen lassen möchte also einfach den folgenden Befehlt eingeben:
tail /var/log/syslog -n 50
Schreibe einen Kommentar