Ein IPSec-Gateway im Eigenbau

Seite 7: IPSec mit IPCop

Inhaltsverzeichnis

Über das Web-Frontend von IPCop lassen sich nur einfache IPSec-Verbindungen definieren.

Hinter der etwas spartanischen Fassade des Web-Frontends enthält IPCop ein vollwertiges FreeS/WAN mit X.509-Erweiterungen. Um sie zu nutzen, muss man allerdings auf der Kommandozeile einige Modifikationen am System vornehmen. Wer nicht direkt am IPCop-Rechner arbeiten kann - weil er beispielsweise nach der Installation Monitor und Tastatur abgeklemmt und den Router in den Schrank gestellt hat -, aktiviert dazu den SSH-Zugang.

IPCop legt alle Konfigurationsdateien unter /var/ipcop/ ab. In /etc/ liegen lediglich symbolische Links, die auf diese Dateien verweisen. Die Befehle

cd /etc
mkdir ipsec.old
mv ipsec.conf ipsec.secrets ipsec.old

räumen die Links aus dem Weg. Das Web-Frontend modifiziert lediglich die Vorlagen in /var/ipcop/, so dass man ungestört seine eigenen Konfigurationsdateien anlegen und bearbeiten kann.

cp ipsec.old/ipsec.conf ipsec.conf

schafft eine Vorlage, die man entsprechend der Anleitung in diesem Artikel modifizieren kann. Wer sich mit dem Unix-Editor vi nicht anfreunden kann, benutzt dazu den Wordstar-artigen joe. Nach dem Anlegen der Datei /etc/ipsec.secrets muss man deren Zugriffsrechte mit

chmod 0600 ipsec.secrets

noch richtig setzen. Abschließend kann man im Web-Frontend unter "VPN" den automatischen Start von FreeS/WAN beim Verbindungsaufbau aktivieren. Modifikationen an den ipchains-Paketfilterregeln, sind nicht erforderlich.

Die über den Soft-Link erhältliche Skript-Sammlung erleichtert den Aufbau einer Certification Authority für VPNs. Vor dem Einsatz sollten Sie den Installationspfad und einige Voreinstellungen für die Namen der Zertifikate in openssl.cnf anpassen. Das Skript make_ca erstellt dann einige zusätzliche Verzeichnisse und das Root-Zertifikat zum Beglaubigen der VPN-Zertifikate.

Mit der eigenen CA kann man VPN-Nutzern selbst die notwendigen Zertifikate ausstellen.

make_cert erledigt mehrere Schritte auf einmal: Es erzeugt das Schlüsselpaar mit geheimem und öffentlichem Schlüssel, erstellt aus dem öffentlichen einen Zertifizierungs-Antrag und unterschreibt diesen auch gleich mit dem geheimen Schlüssel der Root-CA. Am Ende packt es alle benötigten Dateien in ein tgz- beziehungsweise zip-Archiv.

Alle darin enthaltenen sicherheitsrelevanten Daten sind durch eine Passphrase geschützt, so dass man diese Datei auch getrost per E-Mail versenden kann. Lediglich die Passphrase muss man über einen sicheren Weg - also beispielsweise via Telefon - übermitteln. Sie dient lediglich zum Auspacken der Schlüssel - nicht zur Authentifizierung gegenüber dem VPN-Gateway.

Die Host-Zertifikate sind jeweils ein Jahr gültig, danach müssen neue ausgestellt werden. Das Skript show_valid listet die Gültigkeitszeiträume aller signierten Zertifikate auf. Will man ein Zertifikat vor Ablauf seiner Gültigkeit sperren, erzeugt

openssl ca -revoke newcert/01.pem
./make_crl

eine Liste gesperrter Zertifikate (Certificate Revocation List, CRL) in crls/crl.pem, die dann nach /etc/ipsec.d/crls/ zu kopieren ist. Nach

ipsec auto --rereadcrls

weist FreeS/WAN Verbindungsversuche des ausgesperrten Nutzers ab. Der Einsatz solcher Widerrufslisten ist unter FreeS/WAN zwar optional, es ist jedoch sinnvoll, zumindest auf dem Gateway eine aktuelle CRL vorzuhalten.