1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Situacija

Dobio sam demo verziju C-Terra VPN proizvoda verzije 4.3 na tri mjeseca. Želim da saznam da li će moj inženjerski život postati lakši nakon prelaska na novu verziju.

Danas nije teško, jedna vrećica instant kafe 3 u 1 bi trebala biti dovoljna. Reći ću vam kako da dobijete demo. Pokušaću da napravim šeme GRE-over-IPsec i IPsec-over-GRE.

Kako dobiti demo

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Iz slike proizlazi da da biste dobili demo morate:

  • Napišite pismo na presale@s-terra.ru sa vaše korporativne adrese;
  • U pismu navedite TIN vaše organizacije;
  • Navedite proizvode i njihove količine.

Demo važe tri mjeseca. Prodavac ne ograničava njihovu funkcionalnost.

Proširivanje slike

Demo Security Gateway je slika virtuelne mašine. Koristim VMWare Workstation. Kompletna lista podržanih hipervizora i okruženja virtuelizacije dostupna je na veb lokaciji prodavca.

Prije nego što počnete, imajte na umu da nema mrežnih sučelja u zadanoj slici virtuelne mašine:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Logika je jasna, korisnik mora dodati onoliko interfejsa koliko mu je potrebno. Dodaću četiri odjednom:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Sada pokrećem virtuelnu mašinu. Odmah nakon pokretanja, gateway zahtijeva korisničko ime i lozinku.

U S-Terra Gatewayu postoji nekoliko konzola sa različitim računima. Njihov broj ću prebrojati u posebnom članku. Za sada:
Login as: administrator
Password: s-terra

Inicijaliziram gateway. Inicijalizacija je niz radnji: unos licence, postavljanje biološkog generatora slučajnih brojeva (simulator tastature - moj rekord je 27 sekundi) i kreiranje mape mrežnog interfejsa.

Mapa mrežnih interfejsa. Postalo je lakše

Verzija 4.2 pozdravila je aktivnog korisnika porukama:

Starting IPsec daemon….. failed
ERROR: Could not establish connection with daemon

Aktivan korisnik (prema anonimnom inženjeru) je korisnik koji može bilo šta da podesi brzo i bez dokumentacije.

Nešto je pošlo po zlu prije pokušaja postavljanja IP adrese na interfejsu. Sve je u vezi sa mapom mrežnog interfejsa. Bilo je potrebno uraditi:

/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
service networking restart

Kao rezultat, kreira se mapa mrežnog interfejsa koja sadrži mapiranje imena fizičkog interfejsa (0000:02:03.0) i njihove logičke oznake u operativnom sistemu (eth0) i konzoli sličnoj Cisco (FastEthernet0/0):

#Unique ID iface type OS name Cisco-like name

0000:02:03.0 phye eth0 FastEthernet0/0

Logičke oznake interfejsa se nazivaju aliasi. Aliasi su pohranjeni u datoteci /etc/ifaliases.cf.
U verziji 4.3, kada se virtuelna mašina prvi put pokrene, automatski se kreira mapa interfejsa. Ako promijenite broj mrežnih sučelja u virtuelnoj mašini, ponovo kreirajte mapu interfejsa:

/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
systemctl restart networking

Šema 1: GRE-over-IPsec

Postavljam dva virtuelna gateway-a, prebacim se kao što je prikazano na slici:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Korak 1. Postavite IP adrese i rute

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.254

VG2(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

Provjera IP konekcije:

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 statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.273/0.540/0.687/0.164 ms

Korak 2: Postavite GRE

Uzimam primjer postavljanja GRE iz službenih skripti. Kreiram gre1 datoteku u direktoriju /etc/network/interfaces.d sa sadržajem.

Za 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 gre1

Za 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 gre1

Podižem interfejs u sistemu:

root@VG1:~# ifup gre1
root@VG2:~# ifup gre1

provjeravam:

root@VG1:~# ip address show
8: gre1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> 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 1

C-Terra Gateway ima ugrađeni njuškalo paketa - tcpdump. Napisat ću dump saobraćaja u pcap datoteku:

root@VG2:~# tcpdump -i eth0 -w /home/dump.pcap

Počinjem ping između GRE interfejsa:

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 statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.850/0.915/0.974/0.043 ms

GRE tunel je u funkciji:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Korak 3. Šifrirajte pomoću GOST GRE

Odredio sam vrstu identifikacije - po adresi. Autentifikacija sa unapred definisanim ključem (prema Uslovima korišćenja, moraju se koristiti digitalni sertifikati):

VG1(config)#
crypto isakmp identity address
crypto isakmp key KEY address 172.16.1.254

Postavio sam parametre IPsec faze I:

VG1(config)#
crypto isakmp policy 1
encr gost
hash gost3411-256-tc26
auth pre-share
group vko2

Postavio sam parametre IPsec faze II:

VG1(config)#
crypto ipsec transform-set TSET esp-gost28147-4m-imit
mode tunnel

Kreiram pristupnu listu za šifriranje. Ciljani saobraćaj - GRE:

VG1(config)#
ip access-list extended LIST
permit gre host 172.16.1.253 host 172.16.1.254

Kreiram kripto mapu i vezujem je za WAN interfejs:

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 CMAP

Za VG2, konfiguracija je preslikana, razlike su:

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

provjeravam:

root@VG2:~# tcpdump -i eth0 -w /home/dump2.pcap
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=1128 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=126 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=1.07 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=1.12 ms

--- 1.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 1.077/314.271/1128.419/472.826 ms, pipe 2

ISAKMP/IPsec statistika:

root@VG1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.1.253,500)-(172.16.1.254,500) active 1086 1014

IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (172.16.1.253,*)-(172.16.1.254,*) 47 ESP tunn 480 480

Nema paketa u GRE saobraćajnom dumpu:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Zaključak: GRE-over-IPsec shema radi ispravno.

Slika 1.5: IPsec-over-GRE

Ne planiram koristiti IPsec-over-GRE na mreži. Sakupljam jer to želim.

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Da biste postavili GRE-over-IPsec shemu obrnuto:

  • Popravi pristupnu listu za šifriranje - ciljani promet od LAN1 do LAN2 i obrnuto;
  • Konfigurirajte rutiranje kroz GRE;
  • Okačite kriptomapu na GRE interfejs.

Podrazumevano, nema GRE interfejsa u Cisco-ovoj konzoli gateway-a. Postoji samo u operativnom sistemu.

Dodao sam GRE interfejs na Ciscovu konzolu. Da to uradim, uredim /etc/ifaliases.cf fajl:

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="*")

gde je gre1 oznaka interfejsa u operativnom sistemu, Tunnel0 je oznaka interfejsa u konzoli sličnoj Cisco.

Ponovno izračunavam hash fajla:

root@VG1:~# integr_mgr calc -f /etc/ifaliases.cf

SUCCESS:  Operation was successful.

Sada se Tunnel0 interfejs pojavio u konzoli sličnoj Cisco:

VG1# show run
interface Tunnel0
ip address 1.1.1.1 255.255.255.252
mtu 1400

Ispravljanje liste pristupa za šifriranje:

VG1(config)#
ip access-list extended LIST
permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

Konfiguriram rutiranje kroz 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.2

Uklanjam kriptomapu sa Fa0 / 0 i vezujem je za GRE interfejs:

VG1(config)#
interface Tunnel0
crypto map CMAP

Za VG2 je slično.

provjeravam:

root@VG2:~# tcpdump -i eth0 -w /home/dump3.pcap

root@VG1:~# ping 192.168.2.254 -I 192.168.1.253 -c 4
PING 192.168.2.254 (192.168.2.254) from 192.168.1.253 : 56(84) bytes of data.
64 bytes from 192.168.2.254: icmp_seq=1 ttl=64 time=492 ms
64 bytes from 192.168.2.254: icmp_seq=2 ttl=64 time=1.08 ms
64 bytes from 192.168.2.254: icmp_seq=3 ttl=64 time=1.06 ms
64 bytes from 192.168.2.254: icmp_seq=4 ttl=64 time=1.07 ms

--- 192.168.2.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 1.064/124.048/492.972/212.998 ms

ISAKMP/IPsec statistika:

root@VG1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 2 (172.16.1.253,500)-(172.16.1.254,500) active 1094 1022

IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 2 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 352 352

U ESP prometnom dumpu, paketi inkapsulirani u GRE:

1.5 šeme na domaćem IPsec VPN-u. Testiranje demonstracija

Zaključak: IPsec-over-GRE radi ispravno.

Ishodi

Jedna šoljica kafe je bila dovoljna. Skicirao sam uputstva za dobijanje demo verzije. Konfiguriran GRE-over-IPsec i raspoređen obrnuto.

Mapa mrežnih sučelja u verziji 4.3 je automatska! Testiram dalje.

Anonimni inžinjer
t.me/anonymous_engineer


izvor: www.habr.com