IPSec (IP Security) - eine Reihe von Protokollen und Algorithmen zum Verschlüsseln von Daten in IPv4- und IPv6-Netzwerken. Es klingt nicht kompliziert, aber IPSec legt keine klaren Regeln für die Verschlüsselung des Datenverkehrs fest. Stattdessen implementieren Entwickler eine Reihe von Tools (Protokolle und Algorithmen), mit denen der Administrator einen sicheren Datenkanal erstellt.
Ich möchte IPSec in RouterOS etwas tiefer als ein einfaches HOWTO ansprechen, mit minimaler Theorie und Beispielen zum Konfigurieren und Debuggen von IPSec. Dies ist keine Anleitung, und ohne Übung auf einem Prüfstand wird nicht empfohlen, mit der Einrichtung echter Tunnel und VPN-Server zu beginnen.
Vor- und Nachteile von IPSec
Starke Seiten:
- Funktioniert auf Netzwerkebene des OSI-Modells
- Es kann das Quellpaket vollständig oder von der Transportschicht und höher verschlüsseln
- Es gibt einen Mechanismus, um NAT zu überwinden
- Eine breite Palette von Verschlüsselungs- und Traffic-Hashing-Algorithmen zur Auswahl
- IPSec - Eine Reihe offener, erweiterbarer Standards
- Im Fall von Mikrotik ist der Kauf zusätzlicher Gebühren oder Lizenzen nicht erforderlich
Schwächen:
- Schwierigkeit
- Unterschiedliche Terminologie- und Konfigurationstools für verschiedene Anbieter
- Die Verwendung starker Verschlüsselungsalgorithmen erfordert eine gute Rechenleistung.
- DPI leicht zu erkennen
Protokolle in IPSec

Weltweit können alle Protokolle, mit denen Sie sich während der Konfiguration befassen, in zwei Gruppen unterteilt werden: Schlüsselaustauschprotokolle und Datenschutzprotokolle.
Schlüsselaustauschprotokolle (IKE)
Die Hauptaufgabe besteht darin, die Teilnehmer an der Verbindung zu authentifizieren und Verschlüsselungsparameter und -schlüssel zu vereinbaren, um die übertragenen Informationen zu schützen.
- IKE (Internet Key Exchange) - definiert 1998. Viele Funktionen (z. B. NAT-Bridging) wurden später als Add-Ons hinzugefügt und können möglicherweise nicht bei verschiedenen Anbietern implementiert werden. Die Basis für Schlüsselverhandlungen ist ISAKMP.
- IKEv2 (Internet Key Exchange Version 2) - neueste Version von 2014. Es handelt sich um eine Weiterentwicklung des IKE-Protokolls, bei der einige Probleme behoben, der Schlüsselvereinbarungsmechanismus vereinfacht und Erweiterungen (NAT-T, Keepalives, Mode Config) Teil des Protokolls wurden.
In der Praxis werden die meisten IPSec-Verbindungen mithilfe von IKE implementiert, da die Geräte veraltet sind oder Administratoren nicht bereit sind, Änderungen vorzunehmen.
Datenschutzprotokolle (ESP, AH)
Die Hauptaufgabe besteht darin, Benutzerdaten zu schützen.
- ESP (Encapsulating Security Payload) - verschlüsselt und authentifiziert übertragene Daten teilweise
- AH (Authentication Header) - authentifiziert das gesamte Paket (mit Ausnahme von veränderlichen Feldern), verschlüsselt keine Daten, stellt jedoch sicher, dass das Paket während der Übertragung über das Netzwerk nicht geändert wurde
Installationsverfahren für die IPSec-Verbindung

Teilnehmer einer IPSec-Verbindung werden normalerweise als Peers bezeichnet, was ihre Äquivalenz in der hergestellten Verbindung anzeigt. Eine Konfiguration in der Nähe des Client-Servers ist möglich, aber beim Erstellen permanenter IPSec-Tunnel kann jeder der Peers ein Initialisierer sein.
- Einer der Peers initiiert eine IPSec-Verbindung
- Es gibt einen Austausch von Schlüsselinformationen, Peer-Authentifizierung und Koordination der Verbindungsparameter
- Basierend auf den empfangenen Schlüsselinformationen wird ein zusätzlicher verschlüsselter Tunnel gebildet
- Mithilfe eines verschlüsselten Tunnels bestimmen Peers die Parameter der Datenverschlüsselung und tauschen Informationen aus, um Schlüssel zu generieren
- Das Ergebnis der vorherigen Phase ist ein Satz von Regeln und Schlüsseln für den Datenschutz (SA).
- Peers aktualisieren regelmäßig die Verschlüsselungsschlüssel
Eines der Schlüsselkonzepte in IPSec ist SA (Security Association) - eine Reihe von Verschlüsselungsalgorithmen zum Verschlüsseln und Hashing von Informationen sowie Verschlüsselungsschlüssel.
Manchmal finden Sie eine Unterteilung in:
- ISAKMP SA - Parameter und Schlüssel für den Hilfstunnel
- Data SA (oder einfach SA) - Parameter und Schlüssel für die Verkehrsverschlüsselung
Schlüsselvereinbarungsprotokolle
Das IKE-Protokoll kann in zwei Modi arbeiten: main (main) und aggressiv (aggressiv). Das IKEv2-Protokoll enthält einen Modus.
IKE Main

Die erste Phase besteht aus sechs Paketen:
1-2: Ausrichtung der Einstellungen für die sekundäre Tunnelverschlüsselung und verschiedener IPSec-Optionen
3-4: Informationen teilen, um einen geheimen Schlüssel zu generieren
5-6: Peer-Authentifizierung mit Auxiliary Encrypted Channel
Die zweite Phase besteht aus drei Paketen:
1-3: Verwenden eines verschlüsselten Hilfskanals. Koordination der Verkehrsschutzparameter, Informationsaustausch zur Generierung eines geheimen Schlüssels
IKE Aggressiv

Die erste Phase besteht aus drei Paketen:
1: Einreichen eines Angebots zur Installation eines zusätzlichen verschlüsselten Kanals und von Informationen zum Generieren eines privaten Schlüssels
2: Antwort auf das Angebot, Informationen zum Generieren des geheimen Schlüssels, Daten zur Authentifizierung
3: Authentifizierungsdaten
Die zweite Phase besteht aus drei Paketen:
1-3: Verwenden eines verschlüsselten Hilfskanals. Koordination der Verkehrsschutzparameter, Informationsaustausch zur Generierung eines geheimen Schlüssels
Im aggressiven Modus sendet der Initiator nur einen Parametersatz im Satz. Der Informationsaustausch zur Peer-Authentifizierung erfolgt vor der Installation eines sicheren Hilfstunnels. Der aggressive Modus ist schneller konsistent, aber weniger sicher.
IKEv2

In IKEv2 heißen die Phasen: IKE_SA_INIT und IKE_AUTH. Wenn ich jedoch später im Text über Phase1 und Phase2 spreche, gilt dies auch für die Phasen von IKEv2.
Jede Phase von IKEv2 besteht aus zwei Paketen:
IKE_SA_INIT: Koordination der Hilfstunnelverschlüsselungsparameter, Informationsaustausch zur Generierung eines privaten Schlüssels
IKE_AUTH: Verwenden des verschlüsselten Hilfskanals. Authentifizierung von Peers, Koordination von Verkehrsschutzparametern, Informationsaustausch zur Generierung eines geheimen Schlüssels
Security Assotiations Database (SAD)
Das Ergebnis von IKE (und IKEv2) sind Security Assotiations (SA), die Verkehrsschutzeinstellungen und Verschlüsselungsschlüssel definieren. Jede SA ist unidirektional und die IPSec-Verbindung enthält ein Paar SAs. Alle SAs werden in der SAD-Datenbank gespeichert und stehen dem Administrator zum Anzeigen und Zurücksetzen zur Verfügung.
Datenkapselung

IPSec bietet zwei Optionen zum Einkapseln von Daten:
- Transportmodus - Nur die Nutzdaten des Pakets sind geschützt, der ursprüngliche Header bleibt erhalten. Zum Erstellen von Tunneln wird der Transportmodus normalerweise in Verbindung mit ipip oder gre verwendet, dessen Nutzdaten bereits das gesamte Quellpaket enthalten.
- Tunnelmodus - kapselt das Originalpaket vollständig in ein neues (ähnlich wie gre oder ipip). Für Tunnel-IPSec wird jedoch keine explizite Schnittstelle im System erstellt. Dies kann ein Problem sein, wenn dynamisches oder komplexes statisches Routing verwendet wird.
Sicherheitsrichtliniendatenbank (SPD)
Eine Datenbank mit Regeln, die festlegen, welcher Datenverkehr verschlüsselt werden soll, das Datenschutzprotokoll, den Kapselungstyp und eine Reihe anderer Parameter.
Die Position der SPD-Prüfung kann im Paketflussdiagramm angezeigt werden.

NAT-Überbrückung
IPSec verwendet Protokolle auf Netzwerkebene, um Daten zu übertragen, die NAT nicht verarbeiten kann. Um das Problem zu lösen, wird das NAT-T-Protokoll verwendet (eine Erweiterung in IKE und Teil von IKEv2). Die Essenz von NAT-T liegt in der zusätzlichen Kapselung von IPSec-Paketen in UDP-Paketen, die NAT verarbeitet.
IPSec bei Mikrotik
IPSec ist kostenlos auf jedem Gerät verfügbar, auf dem RouterOS mit installiertem Sicherheitspaket ausgeführt wird.
Hardware-Verschlüsselung
Um die CPU zu entlasten, wird einigen Modellen von MikroTik-Routern eine Hardwarebeschleunigung der Verschlüsselung hinzugefügt. Eine vollständige Liste finden Sie im Wiki .
Die meisten Budgetoptionen : RB750Gr3 , RB3011 , HAP AC ^ 2 .
Ich habe alleine die IPSec-Geschwindigkeit zwischen zwei RB1100AHx2 und zwischen zwei RB750Gr3 überprüft.
Um maximale Ergebnisse mit RB1100AHx2 zu erzielen, müssen Sie:
- Verwenden Sie Port 11, der direkt mit der CPU verbunden ist, und konfigurieren Sie einen CPU-Kern für den 11-Port-Verkehr
- Verwenden Sie nur Hardware-Warteschlangen für Schnittstellen. Deaktivieren Sie RPS
- Aktivieren Sie Layer3 FastPath (ca. 800 MB / Sek.) Oder schließen Sie IPSec-Datenverkehr vom Conntrack aus (ca. 700 MB / Sek.)
Ohne die beschriebenen Manipulationen am langsamsten Port (Ether13) ist es möglich, ~ 170 MBit / s bei den üblichen ~ 400 MBit / s zu erreichen.
Auf RB750Gr3 ohne Optimierungen ca. 200Mb / Sek.
Qualcomm Single-Core-Router zeigen je nach Modell, Optimierungen und Arbeitslast anderer Prozesse ein Ergebnis von 10-40 MB / s.
Ich empfehle Ihnen, sich mit der Präsentation eines Mikrotik-Mitarbeiters vertraut zu machen. Er hat Themen wie die Optimierung von Einstellungen zur Reduzierung der CPU-Auslastung und zur Erhöhung der Geschwindigkeit angesprochen, die ich dem Text nicht hinzugefügt habe.
Unterschiede 6.42.X und 6.43.X.
Abhängig von der von Ihnen verwendeten RouterOS-Version variiert das IPSec-Konfigurationsmenü.



Es gibt bereits neue Änderungen in der Testversion. Lesen Sie daher vor dem Upgrade die Versionshinweise.

IPSec-Konfiguration

Das Menü [IP] -> [IPSec] ist nicht so beängstigend, wie es auf den ersten Blick scheint. Das Diagramm zeigt, dass die Hauptkonfigurationselemente sind: Peers und Profile.
Die Registerkarten Remote Peers und Installed SAs dienen nur zur Information.
Peers und Peers-Profile
IPSec-Peer-Konfiguration zum Herstellen einer IKE-Verbindung und zum Erstellen eines zusätzlichen sicheren Tunnels.

Konfigurieren Sie IPSec Remote Peers

Anmerkungen- Ab 6.43 schwört RouterOS, wenn das PSK ohne zusätzliche Authentifizierung verwendet wird. Wenn Sie keine Schlüssel, Zertifikate oder xAuth zusätzlich konfigurieren möchten, können Sie zu IKEv2 wechseln oder die Warnung ignorieren.
- Als Peers können Sie bestimmte IPs oder Subnetze angeben (relevant für Client-Server-VPN).
- Wenn es widersprüchliche Regeln gibt, wird eine Regel mit einem genaueren Subnetz verwendet, um eine Verbindung zum Peer herzustellen (ähnlich wie bei Routen).
- Die XAuth- und RSA-Schlüsselauthentifizierung funktioniert in IKEv2 nicht
- Für IKEv2 hat Mikrotik die Implementierung von xAuth mit anderen Plattformen nicht kompatibel gemacht
- Der passive Modus wird normalerweise zum Erstellen eines Client-Server-VPN (L2TP / IPsec- oder IKEv2-Modus-Konfiguration) verwendet. Er kann jedoch hilfreich sein, wenn eine große Anzahl von Site-to-Site-Tunneln an einen einzelnen Punkt angeschlossen wird, um störenden Datenverkehr zu reduzieren.
- Wenn Sie xAuth verwenden möchten, sollte der "Server" passiv sein. Benutzer für den Server werden in [IPSec] -> [Benutzer] erstellt.
- Wählen Sie bei Verwendung der Richtlinie "Generieren" den port-strengen Modus aus
Erstellung von Profilen (Vorschlägen) für die Harmonisierungsphase 1


Anmerkungen- Zusätzliche Optionen für IKE werden Teil von IKEv2, Einstellungen werden ignoriert
- Korrelation von DH-Gruppen mit ihren Nummern (Gruppennummern werden von anderen Anbietern verwendet)
- Beim Senden von Vorschlägen sortiert das System den Paaralgorithmus + die Gruppe dh von beständiger zu weniger beständig

Richtlinien und Richtlinienvorschläge
Politiker überprüfen die übergebenen Pakete auf Übereinstimmung mit den Bedingungen und wenden die angegebenen Maßnahmen an. Wenn Sie zum Paketfluss zurückkehren, sind die Blöcke mit der IPSec-Richtlinie die Abstimmung mit den Richtlinien. Die Aktionen spezifizieren: IPSec-Sicherheitsprotokoll (ESP oder AH), Vorschläge für die SA-Aushandlung, Kapselungsmodus.

Das Paket übergibt die Richtlinie nacheinander, bis sie den Bedingungen einer von ihnen entspricht.
Richtlinieneinstellung

Anmerkungen- Normalerweise ist kein spezifischer Src erforderlich. und Dst. Port, aber im Allgemeinen ist die Fähigkeit, den Verkehr einer einzelnen Anwendung zu verschlüsseln, interessant
- Die Protokollliste enthält nicht alle IP-Protokolle (z. B. gibt es kein Gre). Sie können die Nummer des erforderlichen Protokolls manuell angeben.
- Vorlagen sind keine Politiker! Sie werden verwendet, wenn die Generierungsrichtlinie in der Peer-Konfiguration festgelegt ist.
- Was tun, wenn keine bestimmten Sicherheitszuordnungen für eine Richtlinie gefunden wurden? Bisher gab es ein Problem mit L2TP / IPSec, bei dem mehrere Clients aufgrund desselben NAT keine Verbindung herstellen konnten (bei Verwendung von IKE). Dieser Fehler wurde behoben (vorausgesetzt, diese Clients sind keine Fenster), wenn Sie level = unique festlegen. Andernfalls wechseln Sie zu IKEv2
- Verwenden Sie beim Einrichten von Richtlinien den [abgesicherten Modus], eine umständliche Bewegung, und Sie riskieren, den Zugriff auf den Router mit Level3 zu verlieren
Richten Sie Vorschläge für die SA-Genehmigung ein


Gruppen
Wird zum Zuordnen von Richtlinienvorlagen und Peers verwendet.

In einer der älteren Versionen von RouterOS gab es einen Fehler mit der nicht funktionierenden Standardgruppe.
Moduskonfiguration
Senden und Empfangen von IP-Parametern ohne Verwendung zusätzlicher Protokolle. Ermöglicht das Erstellen eines eigenständigen Client-zu-Server-VPN nur für IPSec.


Schlüssel und Benutzer
Wird für die erweiterte Peer-Authentifizierung verwendet.
Schlüssel
RSA-Schlüssel: Generierung, Import, Export. Wird in IKEv2 nicht unterstützt.

Benutzer
XAuth-Benutzerdatenbank für den "Server". Der Client gibt die xAuth-Einstellungen in der Peer-Konfiguration an. Es ist möglich, die xAuth-Authentifizierung an einen RADIUS-Server weiterzuleiten.

Remote-Peers
Liste aller Peers, die einen Hilfstunnel installieren und installieren (Phase 1). Sie können Peers entfernen, um die Schlüssel des Hilfstunnels zu aktualisieren.


Installierte SAs
SAD-Datenbank oder eine Liste aller ausgehandelten SAs. Sie können die verwendeten Datenschutzalgorithmen und -schlüssel sehen.


Das Hardware-AEAD-Flag zeigt die Verwendung der Hardwareverschlüsselung an.

Ein Administrator kann SA zurücksetzen, jedoch nur alle vom selben Typ (esp oder ah) gleichzeitig.
IPSec und Firewall
In der Firewall können Sie überprüfen, ob der Datenverkehr eine eingehende oder ausgehende IPSec-Richtlinie ist oder nicht. Eine offensichtliche Anwendung ist L2TP / IPSec. Sie können die Installation von L2TP-Verbindungen verbieten, wenn der Datenverkehr zuvor nicht verschlüsselt wurde.

In IPSec verwendete Protokolle und Ports
- IKE - UDP: 500
- IKEv2 - UDP: 4500
- NAT-T - UDP: 4500
- ESP - ipsec-esp (50)
- AH - ipsec-ah (51)
IPSec und Endpoinds
Und jetzt über die wunden ...
Die Wiki-Mikrotik enthält Tabellen mit Hashing- und Verschlüsselungsalgorithmen für: Windows , iOS , OS-X .
Ich habe keine Informationen über den eingebauten Android VPN-Client gefunden, aber im Allgemeinen funktioniert es mit Vorschlägen von Windows. Es gibt keine IKEv2-Unterstützung in Android, Sie müssen StrongSwan verwenden .
Konfigurationsbeispiele
Schema und Grundkonfiguration für Beispiele mit Site-to-Site-Tunneln:

#Mikrotik1 /ip address add address=10.10.10.10/24 interface=ether1 network=10.10.10.0 add address=192.168.100.1/24 interface=ether2 network=192.168.100.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.10.10.1 dst-address=0.0.0.0/0 #Mikrotik2 /ip address add address=10.20.20.20/24 interface=ether1 network=10.20.20.0 add address=192.168.200.1/24 interface=ether2 network=192.168.200.0 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 /ip route add distance=1 gateway=10.20.20.1 dst-address=0.0.0.0/0
IPSec im Tunnelmodus

Schrittweise Konfiguration:
- Erstellen Sie Vorschläge für IKE Phase1
- Erstellen Sie ein Fest. Wir geben die Adresse, Vorschläge, den Austauschmodus und den PSK-Schlüssel an. Ich habe IKEv2 gewählt, Sie können main / agressive wie gewünscht verwenden
- Erstellen Sie Vorschläge für SA
- Geben Sie die Subnetze an, zwischen denen wir den Tunnel erstellen
- Geben Sie SA-Adressen, Tunnelmodus und Vorschläge für die Verkehrsverschlüsselung an
- Bearbeiten der NAT-Regel
Mikrotik1
Konsolenoption:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=192.168.200.0/24 proposal=ipsec-tunnel-sa sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10 src-address=192.168.100.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
Mikrotik2
Konsolenoption:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=192.168.100.0/24 proposal=tets-ipsec-sa sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20 src-address=192.168.200.0/24 tunnel=yes #6 /ip firewall nat set 0 ipsec-policy=out,none
Und hier NAT?Um im Tunnelmodus arbeiten zu können, benötigen Sie eine gefälschte Route zum Remote-Subnetz oder eine Standardroute. Andernfalls gehen die Pakete nicht weiter als bis zur Routing-Entscheidung. Normalerweise gibt es keine Probleme mit der ersten Option, aber mit der Standardroute und dem Quell-NAT (die erste und die zweite sind auf der überwiegenden Mehrheit der Heim- und Bürorouter vorhanden) treten Probleme auf.
Paketfluss abrufen. Pakete durchlaufen Source NAT früher als IPSec-Richtlinien. Die Regel mit Maskerade weiß nichts darüber, dass Datenverkehr an den "kurzlebigen" Tunnel gesendet werden soll, und sendet Paket-Header, die an IPSec gesendet werden sollen, wenn das Paket mit dem geänderten Header in der Quelladresse der Richtlinien eingecheckt wird Der Header entspricht nicht der Regel und das Paket fliegt zur Standardroute, die, nachdem die Zieladresse aus dem privaten Netzwerk gesehen wurde, höchstwahrscheinlich verworfen wird.
Es gibt verschiedene Lösungen für das Problem:
- Mit gefälschter Route
- Verwenden einer optionalen Akzeptanzregel vor SourceNAT
- Betreff src-nat nur den Paketen, für die es keine IPSec-Richtlinien gibt (im Beispiel)
- Schließen Sie den Datenverkehr mithilfe von RAW von der Verbindungsverfolgung aus
Überprüfen Sie die hergestellte Verbindung

- Wir sehen einen Nachbarn in Remote Peers
- Wir sehen die installierte SA (Verkehrszähler ändern sich erst, wenn Sie sie starten).
- In der Politik etablierter Status und Flagge (A) aktiv
IPIP / IPSec

Voreingestellter IPIP-Tunnel:
#Mikrotik1 # ipip /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.20.20.20 # ip ipip /ip address add address=10.30.30.1/30 interface=ipip-vpn # /ip route add distance=1 dst-address=192.168.200.0/24 gateway=10.30.30.2 #Mikrotik2 # , /interface ipip add allow-fast-path=no clamp-tcp-mss=no name=ipip-vpn remote-address=10.10.10.10 /ip address add address=10.30.30.2/30 interface=ipip-vpn /ip route add distance=1 dst-address=192.168.100.0/24 gateway=10.30.30.1
Schrittweise IPSec-Konfiguration:
- Erstellen Sie Vorschläge für IKE Phase1
- Erstellen Sie ein Fest. Geben Sie die Adresse, Vorschläge, den Austauschmodus und den PSK-Schlüssel an
- Erstellen Sie Vorschläge für SA
- Geben Sie die Subnetze an, zwischen denen wir den Tunnel erstellen
- Wir geben die Adressen von SA, die Art des zu verschlüsselnden Datenverkehrs und Vorschläge an
Mikrotik1
Konsolenoption:
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.20.20.20/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=ipsec-tunnel-sa #4-5 /ip ipsec policy add dst-address=10.20.20.20/32 proposal=ipsec-tunnel-sa protocol=ipencap src-address=10.10.10.10/32 sa-dst-address=10.20.20.20 sa-src-address=10.10.10.10
Mikrotik2
#1 /ip ipsec peer profile add dh-group=modp2048 enc-algorithm=aes-128 hash-algorithm=sha256 name=ipsec-tunnel-ike nat-traversal=no #2 /ip ipsec peer add address=10.10.10.10/32 exchange-mode=ike2 profile=ipsec-tunnel-ike secret=test-ipsec #3 /ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=tets-ipsec-sa #4-5 /ip ipsec policy add dst-address=10.10.10.10/32 proposal=tets-ipsec-sa protocol=ipencap src-address=10.20.20.20/32 sa-dst-address=10.10.10.10 sa-src-address=10.20.20.20
Für unaufmerksam ist der wirkliche Unterschied in der Konfiguration des Tunnels und des Transportmodus in IPSec-Richtlinien:

Die Verbindungsprüfung ähnelt dem Tunnelmodus.
L2TP / IPSec
Die vorherigen Beispiele eignen sich gut zum Erstellen permanenter VPNs zwischen zwei Peers mit statischen externen IP-Adressen.
Wenn die Adresse eines der Peers dynamisch ist (und sich normalerweise hinter NAT befindet), müssen Sie ein anderes Client-zu-Server-VPN verwenden.

L2TP-Vorkonfiguration:
# /ip pool add name=pool-l2tp ranges=192.168.77.10-192.168.77.20 # /ppp profile add change-tcp-mss=yes local-address=192.168.77.1 name=l2tp-ipsec only-one=yes remote-address=pool-l2tp use-compression=no use-encryption=no use-mpls=no use-upnp=no # /ppp secret add name=user1 password=test1 profile=l2tp-ipsec service=l2tp add name=user2 password=test2 profile=l2tp-ipsec service=l2tp add name=user3 password=test3 profile=l2tp-ipsec service=l2tp # L2TP ( ipsec) /interface l2tp-server server set authentication=chap,mschap2 default-profile=l2tp-ipsec enabled=yes
Warum ignoriere ich die automatische IPSec-Optimierung?In der Konfiguration von ipip, gre, eoip, l2tp gibt es eine automatische Konfiguration der ipsec-Verbindung. Tatsächlich erstellt das System dynamische Regeln für Peers und Richtlinien für Sie, aber erstens suchen wir nicht nach einfachen Möglichkeiten, und zweitens werden beim Upgrade von 6.42 auf 6.43 automatisch Tunnel erstellt pleite und nicht die Tatsache, dass dies nicht wieder passieren wird.
Schrittweise IPSec-Konfiguration:
- Erstellen Sie eine neue Gruppe (Sie können die Standardeinstellung verwenden).
- Erstellen Sie Vorschläge für IKE Phase1
- Wir schaffen ein Fest oder vielmehr ein Subnetz. Schwört auf den PSK-Schlüssel, aber wenn wir als Client mit Windows zu tun haben, haben wir die Wahl: Zertifikate oder PSK.
- Setzen Sie passiv = Ja und send-init-contact = nein in generate-policy = port-strict (Port vom Client akzeptieren).
- Erstellen Sie Vorschläge für SA
- Erstellen Sie eine Vorlage zum Generieren von Richtlinien
- Geben Sie den Vorschlag für SA an
Mikrotik-Konfiguration
Im Screenshot besteht der Fehler darin, dst anzugeben. port und src. Port wird nicht benötigt
Konsolenoption:
#1 /ip ipsec policy group add name=l2tp-ipsec #2 /ip ipsec peer profile add dh-group=modp1024 enc-algorithm=aes-256 hash-algorithm=sha256 name=l2tp-ipsec-ike #3-4 /ip ipsec peer add address=0.0.0.0/0 generate-policy=port-strict passive=yes policy-template-group=l2tp-ipsec profile=l2tp-ipsec-ike secret=secret-ipsec-pass send-initial-contact=no #5 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=l2tp-ipsec-sa pfs-group=none #6-7 /ip ipsec policy add dst-address=0.0.0.0/0 group=l2tp-ipsec proposal=l2tp-ipsec-sa protocol=udp src-address=0.0.0.0/0 template=yes
Firewall-Konfiguration zum Erstellen von L2TP-Verbindungen erst nach IPSec
/ip firewall filter # IKE, NAT-T ipsec-esp add chain=input protocol=17 dst-port=500,4500 action=accept add chain=input protocol=50 action=accept # L2TP, ipsec add chain=input protocol=17 dst-port=1701 ipsec-policy=in,ipsec action=accept add chain=input protocol=17 dst-port=1701 action-drop
IKEv2 VPN
Die L2TP-Option ist beliebt, aber dank der Moduskonfiguration können Sie den VPN-Server nur mit IPSec konfigurieren. Dies ist eine vielversprechende Art von VPN, die bisher jedoch nur selten verwendet wird. Zusätzlich zur Konfiguration der Serverseite werde ich ein Beispiel für die Einrichtung des strongSwan-Clients auf Android geben.

Natürlich ist nicht alles so rosig. Die meisten "Benutzer" -Betriebssysteme (insbesondere Windows und Android) stimmen der Arbeit mit einem solchen VPN nur zu, wenn sie durch Zertifikate oder EAP authentifiziert sind.
Zertifikate sind meine Schwachstelle. Wenn jemand weiß, wie man ein selbstsigniertes Zertifikat, das Windows importiert und in der Verbindung verwendet, korrekt generiert, schreiben Sie in die Kommentare.
Vorläufige Erstellung von Zertifikaten:
#Root CA /certificate add name=ca common-name="IKEv2 CA" days-valid=6928 /certificate sign ca ca-crl-host=<IP > # vpn /certificate add common-name=<IP > subject-alt-name=IP:<IP > key-usage=tls-server name=vpn days-valid=6928 # /certificate sign vpn ca=ca # # , # Revoke /certificate add common-name=client key-usage=tls-client name=client days-valid=6928 # /certificate sign client ca=ca
Schrittweise Konfiguration von IKEv2 VPN:
- Wir erstellen einen Adresspool für die Verteilung an Kunden
- Erstellen Sie ein Moduskonfigurationsprofil zum Verteilen von IP-Parametern an Clients
- Erstellen Sie Gruppen, um Peers und Richtlinienvorlagen zu verknüpfen
- Erstellen Sie Vorschläge für IKE Phase1
- Erstellen Sie ein Profil zum Verbinden von Peers. Zertifikatauthentifizierung, IKEv2-Protokoll, passiver Modus
- Geben Sie das Moduskonfigurationsprofil in drei Gruppen an und aktivieren Sie die Richtliniengenerierung
- Erstellen Sie Vorschläge für SA
- Erstellen Sie eine Vorlage zum Generieren von Richtlinien
- Geben Sie Vorschläge für SA an
Mikrotik konfigurieren
#1 /ip pool add name=pool-ike ranges=192.168.77.10-192.168.77.20 #2 /ip ipsec mode-config add address-pool=pool-ike address-prefix-length=32 name=ikev2-vpn static-dns=77.88.8.8 system-dns=no #3 /ip ipsec policy group add name=ikev2-vpn #4 /ip ipsec peer profile add enc-algorithm=aes-256,aes-128 hash-algorithm=sha256 name=ikev2-vpn #5-6 /ip ipsec peer add address=0.0.0.0/0 auth-method=rsa-signature certificate=vpn exchange-mode=ike2 generate-policy=port-strict mode-config=ikev2-vpn passive=yes policy-template-group=ikev2-vpn profile=ikev2-vpn send-initial-contact=no #7 /ip ipsec proposal add auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc name=ikev2-vpn #8-9 /ip ipsec policy add dst-address=0.0.0.0/0 group=ikev2-vpn proposal=ikev2-vpn src-address= 0.0.0.0/0 template=yes
Wenn die Verbindung erfolgreich ist, sehen Sie: dynamische Richtlinie, Schreiben an Remote-Peers und ein Paar SA.



RouterOS x86-Demolizenzen unterliegen keinen Einschränkungen hinsichtlich der Anzahl der IPSec-Tunnel, einschließlich IKEv2 VPN. Sie können die RouterOS x86-Demo (nicht mit RouterOS CHR kostenlos verwechseln, alles ist traurig) auf VPS bereitstellen und mit minimalem Verwaltungsaufwand einen persönlichen VPN-Server erwerben, ohne eine Lizenz für RouterOS oder RouterOS CHR zu erwerben.
Ein paar Worte zur IPSec-Protokollanalyse
Protokolle in Mikrotik sind eine separate Geschichte, manchmal sind sie detailliert genug, um Probleme zu analysieren, aber das Fehlen banaler Funktionen: Bereinigen, Kopieren, Finden zwingt Sie, einen separaten Syslog-Server zu installieren.
Für IPSec gibt es hier eine schnelle Option zur Protokollanalyse (wir lassen nur das Notwendige auf einer separaten Registerkarte):

/system logging action add memory-lines=100000 name=ipsec target=memory /system logging add action=ipsec topics=ipsec,error add action=ipsec topics=ipsec,debug,!packet add action=ipsec topics=ipsec,info
Und einige Beispiele für typische IPSec-Konfigurationsprobleme:
Konsistenzproblem der Vorschläge in Phase 1
- Lesen Sie die Fehlermeldung. Das Problem ist, wenn Vorschläge in der ersten Phase abgeglichen werden.
- Wir schauen oben, der Router selbst schlägt vor, dass er ein Fest gesendet hat, und was lokal konfiguriert ist
Problem bei der Abstimmung IKE_SA_INITIn den Protokollen sehen Sie ungefähr Folgendes:

Verkehr analysieren
In der Anfrage sehen Sie Vorschläge vom Bankett:

In der Antwort sehen wir, dass keine geeigneten Vorschläge gefunden wurden:

Vorschlag zur Abstimmung der Vorschläge für SA
Der Router fordert in Phase 2 zu Vorschlagsfehlern auf und zeigt an, was lokal konfiguriert und was remote ist.
Vorschläge IKE_AUTH Abstimmungsproblem
Wir sehen, dass es eine Verbindung und Authentifizierung von Peers gab, aber weiter einen Vorschlagsfehler. Beim Debuggen werden auch im Wireshark keine Details angezeigt (der IKE_AUTH-Datenverkehr ist verschlüsselt).
PSK-AuthentifizierungsfehlerFür IKE:

Für IKEv2:

Falscher IKE-Modus
Wir sehen, dass Phase1 im Timeout unterbrochen wird, obwohl Pakete zwischen Peers gesendet werden. Die Größe des eingehenden Pakets ist jedoch viel größer. Wenn wir über Wireshark analysieren, werden wir feststellen, dass der Remote-Peer den aggressiven Modus verwendet.

Wir sehen, dass Pakete von uns an UDP: 500 gesendet werden, und sie kommen an UDP: 4500 und sind ziemlich groß. Hier hat der Remote-Peer den IKEv2-Modus.
Lesen Sie abschließend den Abschnitt zur Fehlerbehebung im Wiki . Und alles Material über IPSec ist für die Bekanntschaft wünschenswert. Ich habe nur die grundlegenden Tools und Einstellungen beschrieben.