In Anlehnung an den Artikel IPCop: IPsec und Netz-zu-Netz-Verbindung wird nachfolgend das Vorgehen für die Konfiguration einer Netz-zu-Netz-Verbindung mit IPsec für die auf FreeBSD-basierende Firewall m0n0wall beschrieben.
Voraussetzungen
An beiden Standorten muss ein nicht überlappendes IP-Netz bestehen. Beispiel:
Standort A: 192.168.1.0/255.255.255.0 Standort B: 192.168.2.0/255.255.255.0
Netz-zu-Netz-IPsec-VPN mit pre-shared Key
Die nachfolgend beschriebenen Schritte sind an beiden Standorten durchzuführen. Lediglich die IP-Subnetze müssen gegeneinander getauscht werden.
- An m0n0wall anmelden.
- “VPN – IPsec” anklicken.
- “Enable IPsec” aktivieren und auf “Save” klicken.
- Auf das “+”-Symbol klicken.
- Bei “Remote subnet” das IP-Netz des entfernten Standorts eingeben.
- Bei “Remote gateway” die statische öffentliche IP-Adresse des entfernten Standorts eingeben.
- Bei “Pre-shared Key” einen Schlüssel eingeben.
- Auf “Save” klicken.
- Auf “Apply changes” klicken.
- Unter “Diagnositcs – IPsec” kann man den Verbindungsstatus sehen.
Netz-zu-Netz-IPsec-VPN mit Zertifikaten
Im Gegensatz zu IPCop bietet m0n0wall keine Möglichkeit die Zertifikate mit Bordmitteln zu erstellen, so das auf externe Werkzeuge zurückgegriffen werden muss. Für diesen Artikel wurde das Plattform-unabhängige XCA verwendet. Dieses Programm ermöglicht sowohl auf BSD, Linux, Mac und Windows den einfachen Aufbau und Verwaltung einer Zertifizierungsstelle (Certificate Authority).
Zertifizierungsstelle einrichten
- XCA herunterladen, installieren und ausführen.
- “Datei – Neue Datenbank” anklicken.
- Einen Speicherort und Dateinamen für die neue Datenbank eingeben.
- Ein Passwort für die Datenbank eingeben.
- Auf der Registerkarte “Private Schlüssel” “Neuer Schlüssel” anklicken.
- Einen Namen, z.B. “VPN-CA-Key”, eingeben und auf “Erstellen” klicken.
- Auf der Registerkarte “Zertifikate” “Neues Zertifikat” anklicken.
- Auf der Registerkarte “Inhaber” die Felder “Interner Name” und “Common Name” z.B. mit “VPN-CA” ausfüllen. Die anderen Felder sind ebenfalls auszufüllen.
- Auf der Registerkarte “Erweiterungen” den Typ auf “Certificate Authority” konfigurieren und “Subject Key Identifier” aktivieren.
- Auf der Registerkarte “Key usage” “Certificate Sign” auswählen und auf “OK” klicken.
Zertifikate für die Standort-Router erstellen und exportieren
- Auf der Registerkarte “Zertifikate” “Neues Zertifikat” anklicken.
- Im Abschnitt “Unterschreiben” “Verwende dieses Zertifikat zum Unterschreiben” das zuvor erstellte CA-Zertifikat auswählen.
- Auf der Registerkarte “Inhaber” die Felder “Interner Name” und “Common Name” mit dem Routernamen ausfüllen. Alle anderen Felder ebenfalls ausfüllen.
- Im Abschnitt “Privater Schlüssel” auf “Erstelle einen neuen Schlüssel” klicken. Die Vorgaben können übernommen werden.
- Auf der Registerkarte “Erweiterungen” als Typ “End Instanz” auswählen und “Subject Key Identifier” aktivieren.
- Im Feld “subject alternative name” muss die statische öffentliche IP-Adresse des jeweiligen Standorts im Format “IP:IP-ADRESSE” eingegeben werden. Anschliessend auf “OK” klicken.
- Auf der Registerkarte “Zertifikate” das jeweilige Router-Zertifikat auswählen und auf “Export” klicken.
- Einen Speicherort und Namen angeben und als Format “PEM Cert + key” auswählen.
Dieser Vorgang muss für alle Standort-Router wiederholt werden, in diesem Beispiel zwei Mal.
IPsec-VPN-Verbindung einrichten
- An m0n0wall anmelden.
- “VPN – IPsec” anklicken.
- “Enable IPsec” aktivieren und auf “Save” klicken.
- Auf das “+”-Symbol klicken.
- Bei “Remote subnet” das IP-Netz des entfernten Standorts eingeben.
- Bei “Remote gateway” die statische öffentliche IP-Adresse des entfernten Standorts eingeben.
- Bei “Authentication method” “RSA signature” auswählen.
- Nun die Zertifikat-Datei für den betreffenden Standort-Router mit einem Text-Editor öffnen.
- Den Inhalt von “BEGIN CERTIFICATE” bis “END CERTIFICATE” kopieren und im Feld “Certificate” einfügen.
- Den Inhalt von “BEGIN RSA PRIVATE KEY” bis “END RSA PRIVATE KEY” kopieren und in das Feld “Key” einfügen.
- Im Feld “Peer certificate” muss der Inhalt von “BEGIN CERTIFICATE” bis “END CERTIFICATE” des entfernten Standort-Routers eingefügt werden.
- Abschliessend auf “Save” und dann auf “Apply changes” klicken.
Troubleshooting
War zuerst IPsec mit pre-shared Key im Einsatz und wurde auf IPsec mit Zertifikaten umgestellt, kann es vorkommen, das der Verbindungsaufbau zunächst scheitert. In einem solchen Fall hilft das Neustarten der m0n0wall-Router auf beiden Seiten.
(Quelle: http://doc.m0n0.ch/handbook/ipsec-rsa-auth.html)
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Hallo Andy,
bitte ich habe da eine Frage zu meiner alten Monowall. Ich habe von 2007 – 2017 zwei Netzte miteinander verbunden und eine SIP Telefonanalge darüber betrieben. Nun wird das seit 2017 nicht mehr verwendet und nun dachte ich mir meinen Satellitenreceiver (192.168.3.20 DMZ) der im LAN hängt über eine externe Mobilstation zu erreichen und dann im Tunnel zu streamen. Intern geht das ja ohne Problem aber ausserhalb kann ich mich mit der ipsec nicht anmelden. Mein Mobil Device ist ein Win11 Laptop. Gibt es eine einfache ipsec konfig die ich leicht einstellen kann? Ich dachte mir folgendes:
Interface: WAN
NAT-T: ON
Local SingleHost: 192.168.3.20
Remote Subnet: 192.168.3.1
Remote Gateway: 123.133.144.155 (wurde auf irgend eine IP geändert)
Description: ipsec inbound
Negotiation Mode: aggressive
My Identifier: My IP Address (was soll ich in das Feld schreiben? ist eine Username notwendig)
Encryption algorithm: 3DES
Hash algorithm: MD5 #dachte ich mir weil es ein Windows ist
DH key group: 1
Lifetime: 86400
Authtnetication Mode: pre-shared-key
Pre-shared Key: 123456 #wird noch geändert wenn es funktioniert
Phase2: Off
Soll ich als user rechts neben ‘My IP Address’ noch irgend einen user-namen eintragen?
Muss ich bei ‘Mobile Clients’ etwas eintragen?
Muss ich bei ‘Pr-shared Keys’ irgend etwaseintragen eventuell einen user und ein passwd?
Vielen Dank
Volker HOIS