Kuidas tÔrkeotsida kodumaist IPsec VPN-i. Osa 1

Kuidas tÔrkeotsida kodumaist IPsec VPN-i. Osa 1

Situatsioon

LĂ”pp. Joon kohvi. ÜliĂ”pilane seadistas VPN-ĂŒhenduse kahe punkti vahel ja kadus. Kontrollin: tunnel on tĂ”epoolest olemas, kuid tunnelis pole liiklust. ÜliĂ”pilane ei vasta kĂ”nedele.

Panen vee keema ja sukeldun S-Terra Gateway troubleshootingusse. Jagun oma kogemusi ja metoodikat.

Algandmed

Kahe territoriaalselt eraldatud asukoha vahel on GRE tunnel. GRE tuleb krĂŒpteerida:

Kuidas tÔrkeotsida kodumaist IPsec VPN-i. Osa 1

Kontrollin GRE tunneli töökindlust. Selleks kĂ€ivitan ping-kĂ€sku seadmest R1 GRE liidese suunal seadmele R2. See on sihtliiklus krĂŒpteerimiseks. Vastust ei tule:

root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) baitide andmeid.

--- 1.1.1.2 ping statistika ---
4 paketti saadetud, 0 vastatud, 100% pakettide kadu, aeg 3057ms

Vaatan logisid Gate1 ja Gate2. Logi rÔÔmsalt teatab, et IPsec tunnel on edukalt seadistatud, mingeid probleeme ei ole:

root@Gate1:~# cat /var/log/cspvpngate.log
Aug  5 16:14:23 localhost  vpnsvc: 00100119  IPSec ĂŒhendus 5 luuakse, liikluse valija 172.17.0.1->172.16.0.1, protokoll 47, partner 10.10.10.251, id "10.10.10.251", Filter 
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1

IPsec tunneli statistikas Gate1 nÀen, et tunnel on tÔepoolest olemas, kuid vastuvÔtukood on nullitud:

root@Gate1:~# sa_mgr show
ISAKMP seansid: 0 algatatud, 0 vastatud

ISAKMP ĂŒhendused:
Num Conn-id (Paikne Aadress,Port)-(KaugnÀidik Aadress,Port) Oleku Saadetud VastuvÔetud
1 3 (10.10.10.251,500)-(10.10.10.252,500) aktiivne 1070 1014

IPsec ĂŒhendused:
Num Conn-id (Paikne Aadress,Port)-(KaugnĂ€idik Aadress,Port) Protokoll Tegevus TĂŒĂŒp Saadetud VastuvĂ”etud
1 3 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunn 480 0

Troubleshootin S-Terra nii: otsin, kus sihtpaketid kaovad teel R1-st R2-sse. Protsessi kÀigus (spoiler) leian vea.

Troubleshooting

Samm 1. Mida Gate1 R1-lt saab

Kasutades sisseehitatud paketisnifferit – tcpdump. KĂ€ivitan snifferi sisesel (Gi0/1 Cisco-sarnases mĂ€rgistus vĂ”i eth1 Debian OS-s) liidesele:

root@Gate1:~# tcpdump -i eth1

tcpdump: ĂŒksikasjalik vĂ€ljund on peidetud, kasutage -v vĂ”i -vv tĂ€isprotokolli dekodeerimiseks
kuulan eth1, link-tĂŒĂŒp EN10MB (Ethernet), salvestamismaht 262144 baiti
14:53:38.879525 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 1, pikkus 64
14:53:39.896869 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 2, pikkus 64
14:53:40.921121 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 3, pikkus 64
14:53:41.944958 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 4, pikkus 64

NĂ€en, et Gate1 saab R1-lt GRE pakette. Liigun edasi.

Samm 2. Mida Gate1 GRE pakkidega teeb

Tööriistaga klogview vaatan, mis juhtub GRE pakettidega sees VPN S-Terra draiver:

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 sihitud GRE liiklus (proto 47) 172.16.0.1 -> 172.17.0.1 lĂ€bis (PASS) krĂŒptokaardi LIST reegli ja krĂŒpteeriti (encapsulated). Edasi pakett suunati (passed out). Vastusliiklust klogview vĂ€ljundis ei ole.

Kontrollin pÀÀsuliste nimekirja seadmes Gate1. NĂ€en ĂŒhte pÀÀsuliste nimekirja LIST, mis mÀÀratleb sihitud liikluse krĂŒptimiseks, seega MÄ reegleid ei ole seadistatud:

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

VĂ€ljund: probleem ei ole seadmes Gate1.

Lisainfot klogview kohta

VPN draiver töötleb kogu vĂ”rgu liiklust, mitte ainult seda, mis peab olema krĂŒpteeritud. Sellised sĂ”numid on nĂ€htavad klogview's, kui VPN draiver töötles vĂ”rgu liiklust ja edastas selle krĂŒpteerimata kujul:

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 lĂ€inud (no match) krĂŒptokaardi CMAP reeglite alla. Pakett suunati (passed out) avatud kujul.

Samm 3. Mida Gate2 saab Gate1-lt

KĂ€ivitan snifferi WAN (eth0) liidesele Gate2-l:

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

NĂ€en, et Gate2 saab ESP pakette Gate1-lt.

Samm 4. Mida Gate2 teeb ESP paketidega

KĂ€ivitan utiliidi klogview Gate2-l:

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 ESP paketid (proto 50) on langenud (DROP) tulekÀigu (firewall) reegli (L3VPN) tÔttu. Veendun, et Gi0/0-ga on tÔepoolest seotud pÀÀsuliste nimekirjad L3VPN:

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

Probleem on tuvastatud.

Samm 5. Mis on valesti pÀÀsuliste nimekirjaga

Vaatan, mis pÀÀsuliste nimekirja L3VPN sisaldab:

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, seetÔttu luuakse IPsec tunnel. Kuid ESP jaoks pole lubavat reeglit. Tundub, et tudeng segas icmp ja esp Àra.

Muudan ligipÀÀsuloendit:

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

Samm 6. Kontrollin töövÔimet

Esiteks veendun, et L3VPN ligipÀÀ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 sihttalve 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 loodud. IPsec statistikas on sissetuleva liikluse loendur mitte-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 moodulis klogview ilmuvad sĂ”numid, et sihttale 172.16.0.1->172.17.0.1 on edukalt (PASS) dekodeeritud (decapsulated) reegli LIST kaudu krĂŒptokaardil CMAP:

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

Summary

Tudeng rikkus vÀljundit.
Ole ettevaatlik reeglite osas.

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


Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster