Ein IPSec-Gateway im Eigenbau

Seite 4: conn-Anweisungen

Inhaltsverzeichnis

Die folgenden conn-Anweisungen spezifizieren konkrete Verbindungen. Dabei ist zu beachten, dass bei IPSec zu einer Verbindungsbeschreibung auch die darüber zu routenden Adressen gehören. Diese überprüft FreeS/WAN beim Verbindungsaufbau. Will eine Gegenstelle ein Netzwerk routen, das nicht aufgeführt ist, akzeptiert FreeS/WAN die Verbindung nicht. Die Fehlermeldung lautet dann: "cannot respond to IPsec SA request because no connection is known for ...", gefolgt von einer Beschreibung der angeforderten Verbindung. Kommen über eine etablierte Verbindung Pakete mit Adressen, die nicht zu der Verbindungsbeschreibung passen, verwirft sie das Gateway ohne weiteren Kommentar. Die einfachste Beschreibung besteht aus:

right=%any

Damit kann sich ein Road Warrior via IPSec beim Gateway anmelden. Dabei werden nur die Verbindungen zwischen diesen beiden Rechnern verschlüsselt. %any bedeutet, dass das Gateway zunächst Verbindungen von jeder beliebigen IP-Adresse entgegennimmt - wie es für die Anbindung eines Road Warrior auch erforderlich ist. Die IPSec-Verbindung kommt jedoch nur zu Stande, wenn sich die Gegenstelle mit einem Zertifikat ausweisen kann, das eine akzeptierte CA beglaubigt hat.

Alternativ kann man mit right natürlich auch eine feste IP-Adresse beziehungsweise den zugehörigen Namen der Gegenstelle angeben. Die DynDNS-Namen der Road Warrior funktionieren hier leider nicht - beziehungsweise genauer: nicht auf Dauer. Denn FreeS/WAN löst den Namen beim Start in die zugehörige Adresse auf. Ändert sich die Adresse der Gegenstelle, erkennt sie das VPN-Gateway nicht mehr.

Soll das Gateway den Zugang zu einem Firmennetz vermitteln, muss dieses in der Verbindungsbeschreibung als leftsubnet aufgeführt werden. Frees/WAN verwendet bei der Angabe von Netzwerkadressen übrigens eine verkürzte Schreibweise. 10.0.0.0/8 bedeutet, dass nur die ersten acht Bit das Netzwerk festlegen, die restlichen 24 dienen dazu, einzelne Hosts in diesem Netz zu spezifizieren. Es entspricht also einer konventionellen Netzmaske von 255.0.0.0.

Arbeitet die Gegenstelle ihrerseits als Gateway für ein dahinter liegendes Netz, kann man dies als rightsubnet angeben. Die im Listing unter n2n verwendete Variante rightsubnetwithin überlässt es der Gegenstelle, ein beliebiges Subnetz aus dem angegebenen Netz zu benutzen. Diese Freizügigkeit ist allerdings nur eingeschränkt zu empfehlen. Wenn mehrere Road Warrior dieselben Adressen verwenden, sind Probleme vorprogrammiert.

Da mit diesen einfachen Verbindungsbeschreibungen jeder mit einem beglaubigten Zertifikat Zugang zum Firmennetz erhält, kommt man zumindest auf dem Gateway nicht um die Verwendung von Widerrufslisten (CRLs) herum. Nur so kann man beispielsweise den VPN-Zugang aus der Firma ausgeschiedener Mitarbeiter sperren.

Es ist auch möglich, einem Zertifikat eine konkrete Verbindungsbeschreibung zuzuordnen. Dazu spezifiziert man als rightid den so genannten Distinguished Name, der Bestandteil des Zertifikats ist. Das Skript make_cert schreibt diesen in die Datei names.txt. Von dort überträgt man sie am besten via Copy & Paste in die Konfigurationsdatei. Durch explizite Zuweisungen des rightsubnet-Parameters kann der Administrator dann festlegen, wer welche Adressen verwenden darf.

Man braucht sich nicht davor zu scheuen, viele individuelle Verbindungsbeschreibungen anzulegen: Frees/WAN kann nach Angaben der Entwickler ohne weitere Optimierungen circa fünfzig davon handhaben - auch Konfigurationen mit über zweihundert seien machbar.

Läuft der externe Rechner ebenfalls unter Linux, unterscheidet sich das Setup nicht wesentlich von dem des Gateways. Das Listing oben zeigt, wie eine Verbindungsbeschreibung für eine Linux-Firewall aussieht, die das Heim-LAN 192.168.111.0/24 mit dem Firmennetz 10.0.0.0/8 verbindet. Dies entspricht der n2n-Sektion des Firmen-Gateways. Soll nur ein einziger Rechner den Zugang erhalten, lässt man leftsubnet weg und erhält damit eine p2n-Verbindung. Das FreeS/WAN auf dem Firmen-Gateway sucht sich dazu selbstständig die passende Verbindungsbeschreibung. Ob der Rechner hinter einem (IPSec-fähigen) Router steht oder die Internet-Verbindung selbst herstellt, spielt keine Rolle.

Anders als das fest ans Internet angebundene VPN-Firmen-Gateway wird ein Road Warrior FreeS/WAN nicht schon beim Start des Systems hochfahren. Deshalb sollte man die symbolischen Links *ipsec in den Runlevel-Verzeichnissen /etc/rc[0.6].d/ entfernen - entweder von Hand oder mit dem KDE-Tool ksysv. Der Benutzer kann die VPN-Verbindung dann mit "/etc/init.d/ipsec start" beziehungsweise "stop" steuern oder automatisch bei jedem Aufbau der Internet-Verbindung über /etc/ppp/ip-up und ip-down auf- und abbauen. Außerdem kann man hier die iptables-Regeln für IPSec über die zusätzliche Angabe von -s <vpngate> auf das VPN-Gateway beschränken.