Kodumaise IPsec VPN-i tÔrkeotsing. 1. osa

Kodumaise IPsec VPN-i tÔrkeotsing. 1. osa

Olukord

Vaba pĂ€ev. Ma joon kohvi. Õpilane lĂ”i kahe punkti vahel VPN-ĂŒhenduse ja kadus. Kontrollin: tunnel tĂ”esti on, aga tunnelis pole liiklust. Õpilane ei vasta kĂ”nedele.

Panen veekeetja peale ja sukeldun S-Terra Gateway tÔrkeotsingusse. Jagan oma kogemusi ja metoodikat.

Toorandmed

Kaks geograafiliselt eraldatud ala on ĂŒhendatud GRE tunneliga. GRE tuleb krĂŒpteerida:

Kodumaise IPsec VPN-i tÔrkeotsing. 1. osa

Ma kontrollin GRE tunneli funktsionaalsust. Selleks kĂ€ivitan pingi seadmest R1 seadme R2 GRE liidesesse. See on krĂŒptimise sihtliiklus. Pole vastust:

root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.

--- 1.1.1.2 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3057ms

Vaatan Gate1 ja Gate2 logisid. Logi teatab rÔÔmsalt, et IPseci tunnel kÀivitati edukalt, probleeme pole:

root@Gate1:~# cat /var/log/cspvpngate.log
Aug  5 16:14:23 localhost  vpnsvc: 00100119 <4:1> IPSec connection 5 established, traffic selector 172.17.0.1->172.16.0.1, proto 47, peer 10.10.10.251, id "10.10.10.251", Filter 
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1

Gate1 IPseci tunneli statistikas nÀen, et tunnel on tÔesti olemas, kuid Rсvd loendur nullitakse:

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

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 3 (10.10.10.251,500)-(10.10.10.252,500) active 1070 1014

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

Ma hÀirin S-Terrat jÀrgmiselt: otsin, kus sihtpaketid teel R1-st R2-ni on kadunud. Protsessi kÀigus (spoiler) leian vea.

Veaotsing

Samm 1. Mida Gate1 saab R1-lt

Ma kasutan sisseehitatud pakettide nuusutajat tcpdump. KÀivitan nuusutaja sisevÔrgus (Cisco-laadses tÀhistuses Gi0/1 vÔi OS-i tÀhistuses eth1). Debian) liides:

root@Gate1:~# tcpdump -i eth1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:53:38.879525 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 1, length 64
14:53:39.896869 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 2, length 64
14:53:40.921121 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 3, length 64
14:53:41.944958 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 4, length 64

Ma nÀen, et Gate1 saab R1-lt GRE pakette. Ma liigun edasi.

Samm 2. Mida Gate1 teeb GRE pakettidega?

Ma kasutan klogview utiliiti, et nÀha, mis GRE pakettidega toimub. VPN S-Terra draiverid:

root@Gate1:~# klogview -f 0xffffffff

filtration result for out packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: chain 4 "IPsecPolicy:CMAP", filter 8, event id IPsec:Protect:CMAP:1:LIST, status PASS
encapsulating with SA 31: 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0
passed out packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: encapsulated

NĂ€en, et sihtmĂ€rgiks olev GRE-liiklus (proto 47) 172.16.0.1 -> 172.17.0.1 kuulus CMAP-krĂŒptokaardil krĂŒpteerimisreegli LIST alla ja kapseldati. JĂ€rgmisena suunati pakett Ă€ra (minestati). Klogview vĂ€ljundis pole vastuste liiklust.

Kontrollin Gate1 seadme juurdepÀÀsuloendeid. NĂ€en ĂŒhte juurdepÀÀsuloendit LIST, mis mÀÀrab krĂŒptimise sihtliikluse, mis tĂ€hendab, et tulemĂŒĂŒrireeglid pole konfigureeritud:

Gate1#show access-lists
Extended IP access list LIST
    10 permit gre host 172.16.0.1 host 172.17.0.1

JĂ€reldus: probleem ei ole Gate1 seadmes.

Lisateavet klogview kohta

VPN-draiver haldab kogu vĂ”rguliiklust, mitte ainult krĂŒpteerimist vajavat liiklust. Kui VPN-draiver töötles vĂ”rguliiklust ja edastas selle krĂŒptimata, kuvatakse jĂ€rgmised teated:

root@R1:~# ping 172.17.0.1 -c 4

root@Gate1:~# klogview -f 0xffffffff

filtration result for out packet 172.16.0.1->172.17.0.1, proto 1, len 84, if eth0: chain 4 "IPsecPolicy:CMAP": no match
passed out packet 172.16.0.1->172.17.0.1, proto 1, len 84, if eth0: filtered

NĂ€en, et ICMP-liiklus (proto 1) 172.16.0.1->172.17.0.1 ei olnud CMAP-krĂŒptokaardi krĂŒpteerimisreeglites kaasas (ei ĂŒhti). Pakett suunati (jaotati vĂ€lja) selge tekstiga.

Samm 3. Mida Gate2 saab Gate1-lt

KĂ€ivitan nuusutaja WAN (eth0) Gate2 liidesel:

root@Gate2:~# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:05:45.104195 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x1), length 140
16:05:46.093918 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x2), length 140
16:05:47.117078 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x3), length 140
16:05:48.141785 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x4), length 140

Ma nÀen, et Gate2 saab Gate1-lt ESP pakette.

Samm 4. Mida Gate2 teeb ESP pakettidega?

KĂ€ivitan Gate2-s klogview utiliidi:

root@Gate2:~# klogview -f 0xffffffff
filtration result for in packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: chain 17 "FilterChain:L3VPN", filter 21, status DROP
dropped in packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: firewall

NĂ€en, et tulemĂŒĂŒri reegel (L50VPN) tĂŒhistas ESP-paketid (proto 3) (DROP). Veendun, et Gi0/0-l on tegelikult lisatud L3VPN-i juurdepÀÀsuloend:

Gate2#show ip interface gi0/0
GigabitEthernet0/0 is up, line protocol is up
  Internet address is 10.10.10.252/24
  MTU is 1500 bytes
  Outgoing access list is not set
  Inbound  access list is L3VPN

Avastasin probleemi.

5. samm. Mis on juurdepÀÀsuloendil viga?

Vaatan, mis on L3VPN-i juurdepÀÀsuloend:

Gate2#show access-list L3VPN
Extended IP access list L3VPN
    10 permit udp host 10.10.10.251 any eq isakmp
    20 permit udp host 10.10.10.251 any eq non500-isakmp
    30 permit icmp host 10.10.10.251 any

NÀen, et ISAKMP paketid on lubatud, seega luuakse IPsec tunnel. Kuid ESP jaoks pole lubamisreeglit. Ilmselt ajas Ôpilane segamini icmp ja esp.

JuurdepÀÀsuloendi redigeerimine:

Gate2(config)#
ip access-list extended L3VPN
no 30
30 permit esp host 10.10.10.251 any

Samm 6. Funktsionaalsuse kontrollimine

KÔigepealt veendun, et L3VPN-i juurdepÀÀsuloend on Ôige:

Gate2#show access-list L3VPN
Extended IP access list L3VPN
    10 permit udp host 10.10.10.251 any eq isakmp
    20 permit udp host 10.10.10.251 any eq non500-isakmp
    30 permit esp host 10.10.10.251 any

NĂŒĂŒd kĂ€ivitan sihtliikluse seadmest R1:

root@R1:~# 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=35.3 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=3.01 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=2.65 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=2.87 ms

--- 1.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 2.650/10.970/35.338/14.069 ms

VÔit. GRE tunnel on rajatud. Sissetuleva liikluse loendur IPseci statistikas ei ole null:

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

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 3 (10.10.10.251,500)-(10.10.10.252,500) active 1474 1350

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

Gate2 lĂŒĂŒsis ilmusid klogview vĂ€ljundis teated, et sihtliiklus 172.16.0.1->172.17.0.1 dekrĂŒpteeriti edukalt (PASS) CMAP-i krĂŒptokaardi reegliga LIST:

root@Gate2:~# klogview -f 0xffffffff
filtration result for in packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: chain 18 "IPsecPolicy:CMAP", filter 25, event id IPsec:Protect:CMAP:1:LIST, status PASS
passed in packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: decapsulated

Tulemused

ÜliĂ”pilane rikkus oma vaba pĂ€eva.
Olge ME reeglitega ettevaatlik.

AnonĂŒĂŒmne insener
t.me/anonymous_engineer


Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster