VPN

LinuxWall benutzt FreeS/WAN mit X.509-Erweiterungen. Anders als bei der Konfiguration mit nativem FreeS/WAN werden alle Parameter in der Datei config.lw2 in den Variablen VPNCONNECTIONS, VPNADDR, VPNROUTER, VPNLAN und RP_FILTER_OFF angegeben, die nötigen Zertifikate befinden sich dann auf der Schlüsseldiskette. Das Script /sbin/init.d/openssl erzeugt aus der Variablen VPNCONNECTIONS in /etc/ die FreeS/WAN Konfigurationsdateit ipsec.conf.

Die Variable VPNCONNECTIONS ist eine Liste von Parametersätzen, welche durch Leerzeichen getrennt sind, sie gibt die zugelassenen VPN-verbindungen zu anderen Rechnern an:

name:typ:ipadress:subnet:nexthop[:id]

z.B. VPNCONNECTIONS="ffm:freeswan:194.3.34.2:10.3.0.0/24:194.2.34.1: fb:sentinel::::"

typ : es sind nur freeswan und sentinel zugelassen.

ipadress : die IP des fernen IPSec-Gateways, eine dynamische IP-Adresse muß nicht angegeben werden (alternativ 0.0.0.0).

subnet : bei FreeS/WAN, das zu erreichende Subnetz, bei SSH Sentinel obsolet, da ein Laptop kein Subnetz hat.

nexthop : nur wenn der nächste Router auf der Gegenseite bekannt ist, angeben. Dieser Parameter wird möglicherweise demnächst obsolet.

id : (mittlerweile obsolet) nur beim Typ sentinel angeben. Es ist der CN (common name) des Zertifikats, ohne "CN:". Mittlerweile ist die Angabe der ID nicht mehr nötig, denn sie wird direkt aus dem Zertifikat gewonnen. Verwenden Sie diesen Parameter nicht mehr. Er wird demnächst entfallen.

Es wird auf der Schlüsseldiskette ein Zertifikat mit Namen "name.cer" erwartet. Für LinuxWalls kann das während der Installation der anderen LinuxWall automatisch erzeugte /usr/local/ssl/srvcert.pem benutzt werden, bei Sentinel das bei dessen Installation erzeugte Zertifikat. Es muß PEM-codiert sein. Den gegenseitigen Austausch des Zertifikats für LinuxWall können Sie durch Kopieren auf die Schlüsseldiskette des jeweiligen anderen LinuxWalls wie folgt vornehmen : mcopy /usr/local/ssl/srvcert.pem a:name.cer

Für den Import eines Zertifikats benutzen Sie bitte den Benutzer key.

Weitere in config.lw2 zu setzende Parameter, die die lokale VPN-Configuration angeben, sind :

VPN-Verbindungstypen

Beispielhaft werden die einzelnen Verbindungstypen besprochen.

Es gibt zwei LinuxWalls L1 und L2, beide haben die Schnittstellen eth0 (LAN) und eth1 (Internet). Im Falle einer dynamischen Adreßzuweisung gehen wir davon aus, daß zum Beispiel T-DSL über die Schnittstelle eth1 abgewickelt wird, und deshalb die Schnittstelle ppp0 wird (über eth1 gehen die rohen Ethernet-Pakete, PPPoE-Pakete, ppp0 enthält die gekapselten IP-Pakete). L1LAN und L2LAN enthalten Adresse und Maske des jeweiligen LANs. Router bei statischen IP-Adressen sind L1ROUTER und L2ROUTER, die IP-Adressen sind L1ADDR und L2ADDR. Die beiden Zertifikate heißen L1.cer (=srvcert.pem von L1) und L2.cer (=srvcert.pem von L2). Die Zertifikate L1.cer und L2.cer werden dadurch erzeugt, daß jeweils alle Schlüssel exportiert (Benutzer key - Alle Schlüssel exportieren) und dann die Datei srvcert.pem als L1.cer bzw L2.cer umbenannt und mit den Benutzer key auf der Gegenseite importiert wird.
Der SSH-Sentinel Client SC hat immer eine variable IP-Adresse, er exportiert das Zertifikat z.B.
ssh.cer.
Der Import von Zertifikaten erfolgt auf LinuxWall-Seite mit dem Benutzer
key. Beim Import eines Sentinel-Zertifikates werden die Angaben in VPNCONNECTIONS automatisch ergänzt.

zwei LinuxWalls mit festen IP-Adressen
L1
in config.lw2 :
RP_FILTER_OFF="eth1"
VPNADDR="$L1ADDR"
VPNROUTER="$L1ROUTER"
VPNLAN="$L1LAN"
VPNCONNECTIONS="L2:freeswan:$L2ADDR:$L2LAN:$L2ROUTER:"

außerdem muß in /etc/config.lw2 das Zertifikat L2.cer vorhanden sein.

L2
in config.lw2 :
RP_FILTER_OFF="eth1"
VPNADDR="$L2ADDR"
VPNROUTER="$L2ROUTER"
VPNLAN="$L2LAN"
VPNCONNECTIONS="L1:freeswan:$L1ADDR:$L1LAN:$L1ROUTER:"

außerdem muß in /etc/config.lw2 das Zertifikat L1.cer vorhanden sein.
 

ein LinuxWall mit fester, ein LinuxWall mit variabler IP-Adresse
L1 (feste IP-Adresse)
in config.lw2 :
RP_FILTER_OFF="eth1"
VPNADDR="$L1ADDR"
VPNROUTER="$L1ROUTER"
VPNLAN="$L1LAN"
VPNCONNECTIONS="L2:freeswan::$L2LAN::"

außerdem muß in /etc/config.lw2 das Zertifikat L2.cer vorhanden sein.

L2 (variable IP-Adresse)
in config.lw2 :
RP_FILTER_OFF="ppp0"
VPNADDR=""
VPNROUTER=""
VPNLAN="$L2LAN"
VPNCONNECTIONS="L1:freeswan:$L1ADDR:$L1LAN:$L1ROUTER:"

außerdem muß in /etc/config.lw2 das Zertifikat L1.cer vorhanden sein.
Beachten Sie bitte, daß wegen des häufigen Schlüsselaustauschs die Verbindungen häufiger aufgebaut werden und deshalb zusätzliche Kosten entstehen können, wenn Sie nicht einen Flatrate-Tarif haben. Generell ist - sofern möglich - eine LinuxWall-Konstruktion mit festen IP-Adressen zu bevorzugen.

ein LinuxWall mit fester, ein SSH Sentinel Client mit variabler IP-Adresse
L1 (feste IP-Adresse)
in config.lw2 :
RP_FILTER_OFF="eth1"
VPNADDR="$L1ADDR"
VPNROUTER="$L1ROUTER"
VPNLAN="$L1LAN"
VPNCONNECTIONS="ssh:sentinel::::"

außerdem muß in /etc/config.lw2 das Zertifikat ssh.cer vorhanden sein.

SC (variable IP-Adresse)
Das CA-Root-Zertifikat von L1 für die Benutzung in SSH Sentinel Clients wird mit dem Benutzer
key - ROOT CA Zertifikat exportieren auf Diskette geschrieben.
In
Key ManagementTrusted Root CAs : Import des CA Root Zertifikats von Diskette.
In
Security PolicyVPN Connections : Add VPN Connection, IP-Adresse wählen (Button rechts), L1ADDR bei "Gateway Host" eintragen, Adresse und Maske von L1LAN  in "IP-Address" und "Subnet Mask" eintragen, Diagnose abbrechen, aber Verbindung akzeptieren. "Encryption" auf "3DES" statt "Rijndael" verändern. "Apply" wählen.
 

zwei LinuxWalls mit variabler IP-Adresse oder ein LinuxWall und ein SSH Sentinel Client mit variabler IP-Adresse
Dieser Fall wird derzeit noch nicht unterstützt. Sofern technisch möglich, ist dies einer späteren Version von LinuxWall vorbehalten.