Kuidas tÔrkeotsing teha kodumaise IPsec VPN-i puhul. Osa 1

Kuidas tÔrkeotsing teha kodumaise IPsec VPN-i puhul. Osa 1

Situatsioon

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

Panen tee keema ja sukeldun C-Terra Gateway'i tÔrkeotsingusse. Jagades oma kogemusi ja meetodoloogiat.

Algandmed

Kaks territoriaalselt eraldatud asukohta on ĂŒhendatud GRE tunneliga. GRE tuleb krĂŒpteerida:

Kuidas tÔrkeotsing teha kodumaise IPsec VPN-i puhul. Osa 1

Kontrollin GRE tunnelit. Selleks jooksutan ping'i seadmel R1 GRE liidese suunas seadmel R2. See on sihttĂ”uge krĂŒpteerimiseks. Vastust pole:

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 edastatud, 0 saadud, 100% pakettide kadu, aeg 3057ms

Vaatan logisid Gate1-l ja Gate2-l. Logi rÔÔmsalt teatab, et IPsec tunnel on edukalt ĂŒles seatud, mingeid probleeme pole:

root@Gate1:~# cat /var/log/cspvpngate.log
Aug  5 16:14:23 localhost  vpnsvc: 00100119  IPSec ĂŒhendus 5 loodud, liiklusvalik 172.17.0.1->172.16.0.1, proto 47, vÔÔras 10.10.10.251, id "10.10.10.251", Filter 
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1

IPsec tunnelite statistikas Gate1-l nÀen, et tunnel on tÔepoolest olemas, kuid Rсvd loendur on nullitud:

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

Tean troubleshootin C-Terrat, otsin, kus kaob sihitud pakette R1-lt R2-le. Protsessi kÀigus (spoiler) leian vea.

TÔrkeotsing

Samm 1. Mida Gate1 R1-lt saab

Kasutades sisseehitatud paketi nuhikut – tcpdump. KĂ€ivitan nuhiku sise (Gi0/1 Cisco-sarnases tĂ€histuses vĂ”i eth1 Debian OS-i tĂ€histuses) liidese peal:

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

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

Samm 2. Mida Gate1 GRE pakettidega teeb

Kasutan utiliiti klogview, et vaadata, mis GRE pakettidega juhtub seestpoolt VPN C-Terra draiver:

root@Gate1:~# klogview -f 0xffffffff

filtratsioonitulemus vĂ€lispakett 172.16.0.1->172.17.0.1, protokoll 47, pikkus 112, liides eth0: ahel 4 "IPsecPolicy:CMAP", filter 8, sĂŒndmuse ID IPsec:Protect:CMAP:1:LIST, olek PASS
kapseldamine SA-ga 31: 172.16.0.1->172.17.0.1, protokoll 47, pikkus 112, liides eth0
lÀbiviidud vÀlispakett 10.10.10.251->10.10.10.252, protokoll 50, pikkus 160, liides eth0: kapseldatud

NĂ€en, et sihtkoht GRE liiklus (protokoll 47) 172.16.0.1 -> 172.17.0.1 lĂ€bis (PASS) krĂŒpteerimise reeglit LIST krĂŒptokaardil CMAP ja kapseldus (encapsulated). SeejĂ€rel paketid marsruuditi (passed out). Vastusliiklust klogview vĂ€ljundis pole.

Kontrollin juurdepÀÀsuloendeid seadmel Gate1. NĂ€en ĂŒhte juurdepÀÀsulitsentsi LIST, mis mÀÀratleb sihtliikluse krĂŒpteerimiseks, seega ei ole MĐ­ reegleid seatud:

Gate1#show access-lists
Pikendatud IP juurdepÀÀsulitsent LIST
  10 luba gre host 172.16.0.1 host 172.17.0.1

VĂ€ljund: probleem ei ole seadmel Gate1.

Kogemuste kohta klogview's

VPN draiver kĂ€sitleb kogu vĂ”rgu liiklust, mitte ainult seda, mis peab olema krĂŒpteeritud. Sellised teadete nĂ€gemine klogview's, kui VPN draiver on töötanud vĂ”rgu liikluse ja edastanud selle krĂŒpteerimata kujul:

root@R1:~# ping 172.17.0.1 -c 4

root@Gate1:~# klogview -f 0xffffffff

filtratsioonitulemus vÀlispakett 172.16.0.1->172.17.0.1, protokoll 1, pikkus 84, liides eth0: ahel 4 "IPsecPolicy:CMAP": ilma vaste
lÀbiviidud vÀlispakett 172.16.0.1->172.17.0.1, protokoll 1, pikkus 84, liides eth0: filtreeritud

NĂ€en, et ICMP liiklus (proto 1) 172.16.0.1->172.17.0.1 ei vastanud (no match) CMAP krĂŒptokaardi krĂŒpteerimisreeglitele. Pakett reititi (passed out) selges vormis.

Samm 3. Mida saab Gate2 Gate1-lt

KĂ€ivitab sniffimise WAN (eth0) liidese jaoks Gate2:

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 teeb Gate2 ESP pakettidega

KĂ€ivitab klogview utiliidi Gate2:

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 (DROP) reegli (L3VPN) tulemuseks visatud (DROP) tulemĂŒĂŒri (firewall) poolt. Veendun, et Gi0/0-le on tĂ”epoolest seotud L3VPN juurdepÀÀsulisti:

Gate2#show ip interface gi0/0
GigabitEthernet0/0 on ĂŒles, liiniprotokoll on ĂŒles
  Interneti-aadress on 10.10.10.252/24
  MTU on 1500 bitti
  VÀljaminev juurdepÀÀsulisti pole seatud
  SissevÔtte juurdepÀÀsulisti on L3VPN

Probleem tuvastatud.

Samm 5. Mis on mitte nii juurdepÀÀsulistiga

Vaata, milline on L3VPN juurdepÀÀsulisti:

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 ei ole lubavat reeglit. Ilmselt segas Ôpilane icmp ja esp.

Korrigeerin juurdepÀÀsulisti:

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

Samm 6. Kontrollin funktsionaalsust

Esimese asjana veendun, et L3VPN juurdepÀÀsulisti 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 R1 seadmest sihttrafiku:

root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) baiti andmeid.
64 baiti aadressilt 1.1.1.2: icmp_seq=1 ttl=64 aeg=35.3 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=2 ttl=64 aeg=3.01 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=3 ttl=64 aeg=2.65 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=4 ttl=64 aeg=2.87 ms

--- 1.1.1.2 ping statistika ---
4 paketti saadeti, 4 saadeti tagasi, 0% pakettide kaotus, aeg 3006ms
rtt min/avg/max/mdev = 2.650/10.970/35.338/14.069 ms

VÔit. GRE tunnel on loodud. Sissetuleva liikluse loendur IPsec 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) aktiivne 1474 1350

IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protokoll Tegevus TĂŒĂŒp Sent Rcvd
1 4 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunnel 1920 480

Gate2 lĂŒlituses on klogview vĂ€ljundis teated, et sihttakistus 172.16.0.1->172.17.0.1 on edukalt (PASS) dekrĂŒpteeritud (decapsulated) reegliga LIST krĂŒptokaardil CMAP:

root@Gate2:~# klogview -f 0xffffffff
filtreerimise tulemus sissepaketile 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: ahel 18 "IPsecPolicy:CMAP", filter 25, sĂŒndmuse ID IPsec:Protect:CMAP:1:LIST, staatus PASS
lĂ€bitud sissepaket 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: dekrĂŒpteeritud

KokkuvÔte

ÜliĂ”pilane rikkus vĂ€ljundi.
Olge MĐ­ reeglitega ettevaatlik.

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


Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster