
Situation
Ich habe die Demoversion der S-Terra VPN-Produkte Version 4.3 fĂŒr drei Monate erhalten. Ich möchte herausfinden, ob mein Ingenieursalltag nach dem Wechsel zur neuen Version einfacher wird.
Heute ist es nicht kompliziert, ein PÀckchen löslichen Kaffee 3 in 1 sollte ausreichen. Ich werde erklÀren, wie man Demoversionen erhÀlt. Ich werde versuchen, GRE-over-IPsec und IPsec-over-GRE-Schemata zusammenzustellen.
So erhÀlt man eine Demoversion

Aus der Abbildung geht hervor, dass man zur Erlangung der Demoversion Folgendes tun muss:
- Eine E-Mail an presale@s-terra.ru von der Unternehmensadresse schreiben;
- Im Schreiben die Steuernummer Ihrer Organisation angeben;
- Die Produkte und deren Anzahl auflisten.
Demoversionen sind drei Monate gĂŒltig. Der Hersteller beschrĂ€nkt deren FunktionalitĂ€t nicht.
Ich entfaltet das Image
Die Demoversion des Sicherheitsgateways ist ein Bild der virtuellen Maschine. Ich benutze VMWare Workstation. Eine vollstĂ€ndige Liste der unterstĂŒtzten Hypervisoren und Virtualisierungsumgebungen ist auf der Website des Herstellers zu finden.
Bevor Sie mit aktiven MaĂnahmen beginnen, beachten Sie bitte, dass im Bild der virtuellen Maschine standardmĂ€Ăig keine Netzwerkinterfaces vorhanden sind:

Die Logik ist klar, der Benutzer muss so viele Interfaces hinzufĂŒgen, wie er benötigt. Ich werde gleich vier hinzufĂŒgen:

Jetzt starte ich die virtuelle Maschine. Unmittelbar nach dem Start verlangt das Gateway einen Benutzernamen und ein Passwort.
Im S-Terra Gateway gibt es mehrere Konsolen mit unterschiedlichen Konten. Ich werde ihre Anzahl in einem separaten Artikel zÀhlen. Und vorerst:
Anmelden als: Administrator
Passwort: s-terra
Ich initialisiere das Gateway. Die Initialisierung ist eine Folge von Aktionen: Eingabe der Lizenz, Einstellung des biologischen Zufallszahlengenerators (Tastaturtrainer â mein Rekord sind 27 Sekunden) und Erstellung der Netzwerkschnittstellenkarten.
Netzwerkschnittstellenkarte. Es wurde einfacher
Version 4.2 begrĂŒĂte aktive Benutzer mit Nachrichten:
IPsec-Daemon startenâŠ.. fehlgeschlagen
FEHLER: Verbindung zum Daemon konnte nicht hergestellt werden
Ein aktiver Benutzer (laut anonymem Ingenieur) ist ein Benutzer, der alles schnell und ohne Dokumentation einrichten kann.
Etwas lief schief, schon bevor ich versuchte, die IP-Adresse auf dem Interface einzustellen. Das Problem lag in der Netzwerkschnittstellenkarte. Es musste Folgendes durchgefĂŒhrt werden:
/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
Netzwerkdienst neu starten
Das Ergebnis ist eine Netzwerkschnittstellenkarte, die das Mapping der Namen der physischen Schnittstellen (0000:02:03.0) und deren logischen Bezeichnungen im Betriebssystem (eth0) und in der Cisco-Àhnlichen Konsole (FastEthernet0/0) enthÀlt:
#Unique ID iface type OS name Cisco-like name
0000:02:03.0 phye eth0 FastEthernet0/0
Logische Bezeichnungen der Schnittstellen werden Aliase genannt. Aliase werden in der Datei /etc/ifaliases.cf gespeichert.
In der Version 4.3 wird beim ersten Start der virtuellen Maschine die Schnittstellenkarte automatisch erstellt. Wenn Sie die Anzahl der Netzwerkschnittstellen in der virtuellen Maschine Àndern, seien Sie so nett, die Schnittstellenkarte erneut zu erstellen:
/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
systemctl neustarten Netzwerke
Schema 1: GRE-over-IPsec
Ich richte zwei virtuelle Gateways ein, verbinde sie wie im Bild gezeigt:

Schritt 1. Konfiguriere IP-Adressen und Routen
VG1(config) #
interface fa0/0
ip address 172.16.1.253 255.255.255.0
no shutdown
interface fa0/1
ip address 192.168.1.253 255.255.255.0
no shutdown
ip route 0.0.0.0 0.0.0.0 172.16.1.254VG2(config) #
interface fa0/0
ip address 172.16.1.254 255.255.255.0
no shutdown
interface fa0/1
ip address 192.168.2.254 255.255.255.0
no shutdown
ip route 0.0.0.0 0.0.0.0 172.16.1.253ĂberprĂŒfe die IP-KonnektivitĂ€t:
root@VG1:~# ping 172.16.1.254 -c 4
PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data.
64 bytes from 172.16.1.254: icmp_seq=1 ttl=64 time=0.545 ms
64 bytes from 172.16.1.254: icmp_seq=2 ttl=64 time=0.657 ms
64 bytes from 172.16.1.254: icmp_seq=3 ttl=64 time=0.687 ms
64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=0.273 ms
--- 172.16.1.254 ping-Statistiken ---
4 Pakete ĂŒbertragen, 4 empfangen, 0% Paketverlust, Zeit 3005ms
rtt min/avg/max/mdev = 0.273/0.540/0.687/0.164 msSchritt 2. GRE konfigurieren
Ich entnehme das Beispiel fĂŒr die GRE-Konfiguration aus offiziellen Szenarien. Ich erstelle die Datei gre1 im Verzeichnis /etc/network/interfaces.d mit dem Inhalt.
FĂŒr VG1:
auto gre1
iface gre1 inet static
address 1.1.1.1
netmask 255.255.255.252
pre-up ip tunnel add gre1 mode gre remote 172.16.1.254 local 172.16.1.253 key 1 ttl 64 tos inherit
pre-up ethtool -K gre1 tx off > /dev/null
pre-up ip link set gre1 mtu 1400
post-down ip link del gre1FĂŒr VG2:
auto gre1
iface gre1 inet static
address 1.1.1.2
netmask 255.255.255.252
pre-up ip tunnel add gre1 mode gre remote 172.16.1.253 local 172.16.1.254 key 1 ttl 64 tos inherit
pre-up ethtool -K gre1 tx off > /dev/null
pre-up ip link set gre1 mtu 1400
post-down ip link del gre1Ich aktiviere die Schnittstelle im System:
root@VG1:~# ifup gre1
root@VG2:~# ifup gre1ĂberprĂŒfe:
root@VG1:~# ip address show
8: gre1@NONE: mtu 1400 qdisc noqueue state UNKNOWN group default qlen 1
link/gre 172.16.1.253 peer 172.16.1.254
inet 1.1.1.1/30 brd 1.1.1.3 scope global gre1
valid_lft forever preferred_lft forever
root@VG1:~# ip tunnel show
gre0: gre/ip remote any local any ttl inherit nopmtudisc
gre1: gre/ip remote 172.16.1.254 local 172.16.1.253 ttl 64 tos inherit key 1In C-Terra Gateway gibt es einen integrierten Paket-Sniffer â tcpdump. Ich werde den Datenverkehr in eine pcap-Datei aufzeichnen:
root@VG2:~# tcpdump -i eth0 -w /home/dump.pcapStarte ein Ping zwischen den GRE-Schnittstellen:
root@VG1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
64 bytes from 1.1.1.2: icmp_seq=1 ttl=64 time=0.918 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=0.850 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=0.918 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=0.974 ms
--- 1.1.1.2 Ping-Statistiken ---
4 Pakete ĂŒbertragen, 4 empfangen, 0% Paketverlust, Zeit 3006ms
rtt min/avg/max/mdev = 0.850/0.915/0.974/0.043 msDer GRE-Tunnel ist aktiv und funktioniert:

Schritt 3. VerschlĂŒsselung von GRE mit GOST
Ich lege die Identifikation anhand der Adresse fest. Die Authentifizierung erfolgt ĂŒber einen vordefinierten SchlĂŒssel (laut Nutzungsbedingungen sollten digitale Zertifikate verwendet werden):
VG1(config)#
crypto isakmp identitÀt adresse
crypto isakmp schlĂŒssel KEY adresse 172.16.1.254Ich setze die IPsec Phase I Parameter:
VG1(config)#
crypto isakmp policy 1
ecr gost
hash gost3411-256-tc26
auth pre-share
group vko2Ich setze die IPsec Phase II Parameter:
VG1(config)#
crypto ipsec transform-set TSET esp-gost28147-4m-imit
modus tunnelIch erstelle eine Zugriffsliste fĂŒr die VerschlĂŒsselung. Zielverkehr â GRE:
VG1(config)#
ip access-list extended LIST
permit gre host 172.16.1.253 host 172.16.1.254Ich erstelle eine Kryptokarte und verknĂŒpfe sie mit dem WAN-Interface:
VG1(config)#
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 172.16.1.253
interface fa0/0
crypto map CMAPFĂŒr VG2 ist die Konfiguration spiegelbildlich, Unterschiede:
VG2(config)#
crypto isakmp key KEY address 172.16.1.253
ip access-list extended LIST
permit gre host 172.16.1.254 host 172.16.1.253
crypto map CMAP 1 ipsec-isakmp
set peer 172.16.1.254ĂberprĂŒfe:
root@VG2:~# tcpdump -i eth0 -w /home/dump2.pcaproot@VG1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
64 bytes von 1.1.1.2: icmp_seq=1 ttl=64 zeit=1128 ms
64 bytes von 1.1.1.2: icmp_seq=2 ttl=64 zeit=126 ms
64 bytes von 1.1.1.2: icmp_seq=3 ttl=64 zeit=1.07 ms
64 bytes von 1.1.1.2: icmp_seq=4 ttl=64 zeit=1.12 ms
--- 1.1.1.2 ping-statistik ---
4 pakete gesendet, 4 empfangen, 0% paketverlust, zeit 3006ms
rtt min/avg/max/mdev = 1.077/314.271/1128.419/472.826 ms, pipe 2
ISAKMP/IPsec Statistik:
root@VG1:~# sa_mgr show
ISAKMP Sitzungen: 0 initiiert, 0 geantwortet
ISAKMP Verbindungen:
Num Conn-id (Lokale Addr,Port)-(Remotes Addr,Port) Status Gesendet Empfangen
1 1 (172.16.1.253,500)-(172.16.1.254,500) aktiv 1086 1014
IPsec Verbindungen:
Num Conn-id (Lokale Addr,Port)-(Remotes Addr,Port) Protokoll Aktion Typ Gesendet Empfangen
1 1 (172.16.1.253,*)-(172.16.1.254,*) 47 ESP tunn 480 480Im Datenverkehrdump sind keine GRE-Pakete vorhanden:

Fazit: Das GRE-over-IPsec-Schema funktioniert einwandfrei.
Schema 1.5: IPsec-over-GRE
Ich plane nicht, IPsec-over-GRE im Netzwerk zu verwenden. Ich baue es auf, weil ich es möchte.

Um das GRE-over-IPsec-Schema umzukehren, muss man:
- Die Zugriffsliste fĂŒr die VerschlĂŒsselung anpassen â Zielverkehr von LAN1 nach LAN2 und umgekehrt;
- Die Routing ĂŒber GRE konfigurieren;
- Die Kryptokarte am GRE-Interface anhÀngen.
StandardmĂ€Ăig gibt es in der Cisco-Ă€hnlichen Konsole des Gateways kein GRE-Interface. Es existiert nur im Betriebssystem.
Ich fĂŒge das GRE-Interface zur Cisco-Ă€hnlichen Konsole hinzu. Dazu bearbeite ich die Datei /etc/ifaliases.cf:
interface (name="FastEthernet0/0" pattern="eth0")
interface (name="FastEthernet0/1" pattern="eth1")
interface (name="FastEthernet0/2" pattern="eth2")
interface (name="FastEthernet0/3" pattern="eth3")
interface (name="Tunnel0" pattern="gre1")
interface (name="default" pattern="*")wo gre1 die Bezeichnung des Interfaces im Betriebssystem ist, Tunnel0 die Bezeichnung des Interfaces in der Cisco-Ă€hnlichen Konsole.
Ich berechne den Hash der Datei neu:
root@VG1:~# integr_mgr calc -f /etc/ifaliases.cf
ERFOLG: Operation war erfolgreich.Jetzt ist das Interface Tunnel0 in der Cisco-Ă€hnlichen Konsole erschienen:
VG1# show run
interface Tunnel0
ip adresse 1.1.1.1 255.255.255.252
mtu 1400Ich passe die Zugriffsliste fĂŒr die VerschlĂŒsselung an:
VG1(config)#
ip access-list extended LIST
permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255Ich konfiguriere das Routing ĂŒber GRE:
VG1(config)#
no ip route 0.0.0.0 0.0.0.0 172.16.1.254
ip route 192.168.3.0 255.255.255.0 1.1.1.2Ich entferne die Krypto-Karte von Fa0/0 und binde sie an das GRE-Interface:
VG1(config)#
interface Tunnel0
crypto map CMAPFĂŒr VG2 analog.
ĂberprĂŒfe:
root@VG2:~# tcpdump -i eth0 -w /home/dump3.pcaproot@VG1:~# ping 192.168.2.254 -I 192.168.1.253 -c 4
PING 192.168.2.254 (192.168.2.254) von 192.168.1.253 : 56(84) Bytes an Daten.
64 Bytes von 192.168.2.254: icmp_seq=1 ttl=64 time=492 ms
64 Bytes von 192.168.2.254: icmp_seq=2 ttl=64 time=1.08 ms
64 Bytes von 192.168.2.254: icmp_seq=3 ttl=64 time=1.06 ms
64 Bytes von 192.168.2.254: icmp_seq=4 ttl=64 time=1.07 ms
--- 192.168.2.254 ping Statistiken ---
4 Pakete ĂŒbertragen, 4 empfangen, 0% Paketverlust, Zeit 3006ms
rtt min/avg/max/mdev = 1.064/124.048/492.972/212.998 msISAKMP/IPsec Statistik:
root@VG1:~# sa_mgr show
ISAKMP-Sitzungen: 0 initiiert, 0 geantwortet
ISAKMP-Verbindungen:
Num Conn-id (Lokale Addr,Port)-(Remote Addr,Port) Zustand Gesendet Empfangen
1 2 (172.16.1.253,500)-(172.16.1.254,500) aktiv 1094 1022
IPsec-Verbindungen:
Num Conn-id (Lokale Addr,Port)-(Remote Addr,Port) Protokoll Aktions Typ Gesendet Empfangen
1 2 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 352 352Im Datenverkehrs-Dump sind ESP-Pakete, die in GRE gekapselt sind:

Fazit: IPsec-over-GRE funktioniert korrekt.
Ergebnisse
Eine Tasse Kaffee hat gereicht. Ich habe eine Anleitung zur Erlangung der Demo-Version skizziert. Ich habe GRE-over-IPsec konfiguriert und umgekehrt implementiert.
Die Netzwerkschnittstellenkarte in Version 4.3 ist automatisch! Ich teste weiter.
Anonymer Ingenieur
t.me/anonimous_engineer
Quelle: habr.com
