Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Tutorials

VPN einrichten mit LiSS und strongSwan

Mit einem Site-to-Site VPN lassen sich die IP-Netzwerke von zwei Standorten mitander verbinden. Geräte wie Server, Netzwerkfestplatten und Telefonanlagen sind damit aus beiden vernetzten Standorten erreichbar. Zum Aufbau eines Site-to-Site VPN dürfen sich die IP-Netze der Standorte nicht überschneiden. Jeder Standort benötigt einen VPN-Router.

Dieses Tutorial beschreibt den Aufbau einer LAN-LAN-Kopplung mit einer Telco-Tech LiSS 1000 Series und einem VPN-Gateway mit strongSwan. Jeder Router benötigt eine statische WAN-IP oder einen Hostnamen (z.B. von DynDNS). Im Beipiel kommt IPSec mit ESP im Main Mode zum Einsatz.

Telco-Tech bietet mit seiner LiSS-Serie Sicherheits-Lösungen für SOHO und SMB an. Das kleinste Modell LiSS 700 eignet sich für die Netzanbindung des Heimbüros. Die LiSS 5000 verfügt über vier Gigabit Interface und eignet sich auch zum Schutz großer Netzwerke. Diese Anleitung basiert auf einer LiSS 1000 mit der Firmware 3.18.2-1902.

strongSwan ist eine IPsec-Implementierung für Linux. Für dieses Tutorial habe ich strongSwan 4.3.1 unter debian Linux (Kernel 2.6.18) genutzt.

VPN Netzwerkaufbau

In unserem Beispiel verbindet der VPN-Tunnel zwei Standorte in Berlin. Das IP-Netz 192.168.1.0/24 (LAN der LiSS) soll mit dem Netz 10.0.0.0/8 (strongSwan) verbunden werden.

Netzwerkaufbau LiSS mit strongSwan

VPN Parameter

Der VPN-Tunnel wird mit den folgenden Parametern aufgebaut.


1

2

Standort


Berlin

Berlin

Gerät


strongSwan

LiSS 1000 series

Rolle


VPN-Gateway

VPN-Gateway

WAN-IP oder Hostname

A

strongswan.nwlab.net

liss.nwlab.net

Lokales IP-Netz / Maske

B

10.0.0.0/8

192.168.1.0/24

Authentifizierung

C

X.509 Zertifikate

Austauschverfahren

D

Main Mode

Dead Peer Detection (DPD)

E

aktiviert





Phase 1

Lifetime

H

3600 sec

Verschlüsselung

I

AES

Hashalgorithmus

J

SHA1

Diffie-Hellman-Gruppe

K

DH-Group 14 MODP 2048


Phase 2

Lebensdauer

L

3600 sec

Verschlüsselung

M

AES

Hashalgorithmus

N

SHA1

Perfect Forward Secrecy

O

DH-Group 14 MODP 2048

Die Authentifizierung erfolgt über X.509-Zertifikate. Alle Zertifikate wurden mit OpenSSL unter debian Linux erzeugt.

VPN auf der LiSS einrichten

X.509 Zertifikate importieren

Die mittels OpenSSL generierten Zertifikate müssen in die LiSS importiert werden. Das passiert unter Einstellungen :: System :: Zertifikate.

Zertifikate verwalten in der LiSS

Für den Import müssen die Zertifikate im PEM-Format vorliegen. Die Zertifikate (bzw. der Schlüssel) dürfen nicht durch ein Passwort (Pass Phrase) geschützt sein, da die LiSS ansonsten das Zertifikat nicht nutzen kann. Laut Handbuch wird das CA-Zertifikat nicht genutzt. In meinen Tests erzeugte ein fehlendes CA-Zertifikat allerdings entsprechende Meldungen im Log.

IPsec-Tunnel einrichten

Telco-Tech setzt für die Implementierung von IPsec auf Openswan. Um VPN mit der LiSS nutzen zu können, müssen Sie unter VPN :: Einstellungen den VPN-Dienst aktivieren.

IPsec einschalten

Da das strongSwan-Gateway in diesem Beispiel hinter einem NAT-Router liegt, wird NAT-Traversal benötigt. Gehen Sie auf VPN :: Überblick und erstellen Sie eine neue VPN-Verbindung.

VPNmit X.509 Zertifikaten

Tragen Sie den DNS-Namen des strongSwan-Gateways ein. Für den Aufbau des Tunnels nutzen wir IKE im Main Mode.

Das Default-Profil der LiSS harmoniert mit strongSwan. Um die Verschlüsselung oder den Hash-Algorithmus gezielt festzulegen, können Sie ein eigenes Profil erstellen. Die LiSS soll den Tunnel aufbauen und auch eigehende Verbindungen akzeptieren.

Tragen Sie die beiden durch den VPN-Tunnel zu verbindenden IP-Netzwerke ein.

Wählen Sie das Zertifikat für LiSS und die Gegenstelle aus.

Damit ist der VPN-Tunnel fertig konfiguriert.

VPN mit strongSwan einrichten

Die Konfiguration der IPsec-Verbindung erfolgt über die Datei ipsec.conf. Dort wird der IKE-Daemon pluto für IKE Version 1 eingerichtet.

ipsec.conf

# ipsec.conf - strongSwan IPsec configuration file

ca strongswan
        cacert=cacert.pem
        crluri=/etc/ipsec.d/crls/

config setup
        plutodebug=all
        charonstart=no

conn %default
        ikelifetime=60m
        keylife=60m
        rekeymargin=3m
        keyingtries=1

conn net-net
        left=%defaultroute
        leftid="C=DE, ST=Berlin, O=nwlab, OU=lab, CN=vpn.nwlab.net"
        leftsubnet=10.0.0.0/8
        leftcert=servercert.pem
        leftfirewall=yes
        right=liss.nwlab.net
        rightsubnet=192.168.1.0/24
        rightcert=liss.pem
        rightid="C=DE, ST=Berlin, O=nwlab, OU=lab, CN=LiSS"
        auto=add

Für unser Beispiel benötigen wir kein IKEv2, daher wird charon nicht gestartet. Die rightid muss den Angaben des Zertifikates der LiSS entsprechen.

VPN-Tunnel aufbauen

strongSwan wird mit ipsec start gestartet werden. Den Aufbau des Tunnels übernimmt das Kommando ipsec up.

strongswan:~# ipsec up net-net
002 "net-net" #16: initiating Main Mode
104 "net-net" #16: STATE_MAIN_I1: initiate
003 "net-net" #16: ignoring Vendor ID payload [4f454b427a64597b774d5d40]
003 "net-net" #16: received Vendor ID payload [Dead Peer Detection]
106 "net-net" #16: STATE_MAIN_I2: sent MI2, expecting MR2
002 "net-net" #16: we have a cert and are sending it upon request
108 "net-net" #16: STATE_MAIN_I3: sent MI3, expecting MR3
002 "net-net" #16: Peer ID is ID_DER_ASN1_DN: 'C=DE, ST=Berlin, O=nwlab, OU=lab, CN=LiSS'
002 "net-net" #16: ISAKMP SA established
004 "net-net" #16: STATE_MAIN_I4: ISAKMP SA established
002 "net-net" #17: initiating Quick Mode RSASIG+ENCRYPT+TUNNEL+PFS+UP {using isakmp#16}
112 "net-net" #17: STATE_QUICK_I1: initiate
002 "net-net" #17: sent QI2, IPsec SA established {ESP=>0x2799381f <0xb84d23bc}
004 "net-net" #17: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0x2799381f <0xb84d23bc}

Die LiSS versucht ebenfalls den Tunnel zu aktivieren.

Status des VPN-Tunnels

Fehlersuche

Bei Problemen mit dem VPN-Tunnel lohnt sich ein Blick in die Logs der beiden Router.

IPSec VPN Log der LiSS

Hier ein erfolgreicher Aufbau des Tunnels im Main Mode:

pluto[1332]: packet from 77.23.xxx.xxx:500: received Vendor ID payload [XAUTH]
pluto[1332]: packet from 77.23.xxx.xxx:500: received Vendor ID payload [Dead Peer Detection]
pluto[1332]: "strongSwan-a_1" #940: responding to Main Mode
pluto[1332]: "strongSwan-a_1" #940: transition from state STATE_MAIN_R0 to state STATE_MAIN_R1
pluto[1332]: "strongSwan-a_1" #940: STATE_MAIN_R1: sent MR1, expecting MI2
pluto[1332]: "strongSwan-a_1" #940: transition from state STATE_MAIN_R1 to state STATE_MAIN_R2
pluto[1332]: "strongSwan-a_1" #940: STATE_MAIN_R2: sent MR2, expecting MI3
pluto[1332]: "strongSwan-a_1" #940: Main mode peer ID is ID_DER_ASN1_DN: 'C=DE, ST=Berlin, O=nwlab, OU=lab, CN=vpn.nwlab.net'
pluto[1332]: "strongSwan-a_1" #940: no crl from issuer "C=DE, ST=Berlin, L=home, O=nwlab, OU=lab, CN=vpnca, E=ca@nwlab.example.net" found (strict=no)
pluto[1332]: "strongSwan-a_1" #940: I am sending my cert
pluto[1332]: "strongSwan-a_1" #940: transition from state STATE_MAIN_R2 to state STATE_MAIN_R3
pluto[1332]: "strongSwan-a_1" #940: STATE_MAIN_R3: sent MR3, ISAKMP SA established {auth=OAKLEY_RSA_SIG cipher=aes_128 prf=oakley_sha group=modp2048}
pluto[1332]: "strongSwan-a_1" #940: Dead Peer Detection (RFC 3706): enabled
pluto[1332]: "strongSwan-a_1" #941: responding to Quick Mode {msgid:8fd083fc}
pluto[1332]: "strongSwan-a_1" #941: transition from state STATE_QUICK_R0 to state STATE_QUICK_R1
pluto[1332]: "strongSwan-a_1" #941: STATE_QUICK_R1: sent QR1, inbound IPsec SA installed, expecting QI2
pluto[1332]: "strongSwan-a_1" #941: Dead Peer Detection (RFC 3706): enabled
pluto[1332]: "strongSwan-a_1" #941: transition from state STATE_QUICK_R1 to state STATE_QUICK_R2
pluto[1332]: "strongSwan-a_1" #941: STATE_QUICK_R2: IPsec SA established {ESP/NAT=>0xb84d23bc <0x2799381f xfrm=AES_128-HMAC_SHA1 NATD=none DPD=enabled}

Auf der LiSS kann man unter VPN :: Fehlersuche den Detailgehalt der Meldungen steuern.

Logging für IPsec einstellen

Log von strongSwan

vpn:~# ipsec up net-net
002 "net-net" #16: initiating Main Mode
104 "net-net" #16: STATE_MAIN_I1: initiate
003 "net-net" #16: ignoring Vendor ID payload [4f454b427a64597b774d5d40]
003 "net-net" #16: received Vendor ID payload [Dead Peer Detection]
106 "net-net" #16: STATE_MAIN_I2: sent MI2, expecting MR2
002 "net-net" #16: we have a cert and are sending it upon request
108 "net-net" #16: STATE_MAIN_I3: sent MI3, expecting MR3
002 "net-net" #16: Peer ID is ID_DER_ASN1_DN: 'C=DE, ST=Berlin, O=nwlab, OU=lab, CN=LiSS'
002 "net-net" #16: ISAKMP SA established
004 "net-net" #16: STATE_MAIN_I4: ISAKMP SA established
002 "net-net" #17: initiating Quick Mode RSASIG+ENCRYPT+TUNNEL+PFS+UP {using isakmp#16}
112 "net-net" #17: STATE_QUICK_I1: initiate
002 "net-net" #17: sent QI2, IPsec SA established {ESP=gt;0x2799381f <0xb84d23bc}
004 "net-net" #17: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=gt;0x2799381f <0xb84d23bc}

Häufigste Ursache für Probleme beim Aufbau einer IPSec-Verbindung sind Tippfehler in den IP-Adressen, Netzmasken und Proposals. Viele VPN-Gateways erlauben das Logging auf einen Syslog-Server wie den Kiwi Syslog Server. Auf einem Syslog-Server lassen sich die Meldungen mehrerer Geräte zusammenführen und so leichter auswerten.

Weiterführende Informationen zu VPN

Bei Fragen zu VPN wird Ihnen im Netzwerkforum geholfen.

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012