Чӣ тавр ҳалли мушкилоти дохилии IPsec VPN. Қисми 1

Чӣ тавр ҳалли мушкилоти дохилии IPsec VPN. Қисми 1

Вазъият

Рӯзи истироҳат. Ман қаҳва менӯшам. Донишҷӯ дар байни ду нуқта VPN пайваст ва нопадид шуд. Ман тафтиш мекунам: дар ҳақиқат нақб ҳаст, аммо дар нақб ҳаракат нест. Донишҷӯ ба зангҳо ҷавоб намедиҳад.

Ман чойникро гузоштам ва ба ҳалли мушкилоти S-Terra Gateway ғарқ шудам. Ман таҷриба ва методологияи худро мубодила мекунам.

Маълумоти ибтидоӣ

Ду макони аз ҷиҳати ҷуғрофӣ ҷудошуда тавассути нақби GRE пайваст мешаванд. GRE бояд рамзгузорӣ карда шавад:

Чӣ тавр ҳалли мушкилоти дохилии IPsec VPN. Қисми 1

Ман кори нақби GRE-ро тафтиш мекунам. Барои ин ман аз дастгоҳи R1 ба интерфейси GRE дастгоҳи R2 пинг мегузорам. Ин трафики мақсаднок барои рамзгузорӣ аст. Ҷавоб нест:

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

Ман ба гузоришҳо дар Gate1 ва Gate2 нигоҳ мекунам. Журнал бо хушнудӣ хабар медиҳад, ки нақби IPsec бомуваффақият ба кор даромад, ҳеҷ мушкиле нест:

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

Дар омори нақби IPsec дар Gate1 ман мебинам, ки воқеан нақб вуҷуд дорад, аммо ҳисобкунаки Rсvd ба сифр барқарор карда шудааст:

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

Ман S-Terra-ро чунин ташвиш медиҳам: Ман меҷӯям, ки дар куҷо бастаҳои мақсаднок дар роҳ аз R1 то R2 гум мешаванд. Дар раванди (spoiler) ман хато меёбам.

Мушкилкушо

Қадами 1. Чӣ Gate1 аз R1 қабул мекунад

Ман sniffer-и бастаи дарунсохт - tcpdump -ро истифода мебарам. Ман снайферро дар интерфейси дохилӣ (Gi0/1 дар қайди ба Cisco монанд ё eth1 дар қайди Debian OS) оғоз мекунам:

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

Ман мебинам, ки Gate1 бастаҳои GRE-ро аз R1 қабул мекунад. Ман идома медиҳам.

Қадами 2. Чӣ Gate1 бо бастаҳои GRE мекунад

Бо истифода аз утилитаи klogview ман метавонам бубинам, ки бо бастаҳои GRE дар дохили драйвери S-Terra VPN чӣ рӯй дода истодааст:

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

Ман мебинам, ки трафики ҳадафи GRE (proto 47) 172.16.0.1 -> 172.17.0.1 дар харитаи криптографии CMAP ба қоидаи рамзгузории LIST дохил шуда, фаро гирифта шудааст. Баъдан, маҷмӯа роҳандозӣ карда шуд (беш рафт). Дар баромади klogview трафики посух вуҷуд надорад.

Ман рӯйхати дастрасиро дар дастгоҳи Gate1 тафтиш мекунам. Ман як рӯйхати дастрасиро LIST мебинам, ки трафики мақсаднокро барои рамзгузорӣ муайян мекунад, ки ин маънои онро дорад, ки қоидаҳои брандмауэр танзим нашудаанд:

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

Хулоса: мушкилот дар дастгоҳи Gate1 нест.

Бештар дар бораи klogview

Ронандаи VPN тамоми трафики шабакаро идора мекунад, на танҳо трафикеро, ки бояд рамзгузорӣ шавад. Инҳо паёмҳое ҳастанд, ки дар klogview намоёнанд, агар ронандаи VPN трафики шабакаро коркард карда, онро бидуни рамз интиқол диҳад:

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

Ман мебинам, ки трафики ICMP (proto 1) 172.16.0.1->172.17.0.1 ба қоидаҳои рамзгузории корти криптографии CMAP дохил карда нашудааст (мувофиқ нест). Баста бо матни равшан интиқол дода шуд (гузаштааст).

Қадами 3. Он чизе, ки Gate2 аз Gate1 мегирад

Ман снайферро дар интерфейси WAN (eth0) 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

Ман мебинам, ки Gate2 бастаҳои ESP-ро аз Gate1 мегирад.

Қадами 4. Gate2 бо бастаҳои ESP чӣ кор мекунад

Ман утилитаи klogview -ро дар 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

Ман мебинам, ки бастаҳои ESP (proto 50) бо қоидаи брандмауэр (L3VPN) партофта шудаанд (DROP). Ман боварӣ ҳосил мекунам, ки Gi0/0 воқеан рӯйхати дастрасии 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

Ман мушкилотро кашф кардам.

Қадами 5. Чӣ нодуруст бо рӯйхати дастрасӣ

Ман ба он нигоҳ мекунам, ки рӯйхати дастрасии L3VPN чист:

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

Ман мебинам, ки бастаҳои ISAKMP иҷозат дода шудаанд, бинобар ин нақби IPsec таъсис дода шудааст. Аммо ягон қоидаи фаъолкунанда барои ESP вуҷуд надорад. Аз афташ, студент icmp ва esp-ро ошуфтааст.

Таҳрири рӯйхати дастрасӣ:

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

Қадами 6. Санҷиши функсияҳо

Пеш аз ҳама, ман боварӣ ҳосил мекунам, ки рӯйхати дастрасии L3VPN дуруст аст:

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

Ҳоло ман трафики мақсаднокро аз дастгоҳи 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

Ғалаба. Тунели GRE сохта шудааст. Ҳисобкунаки трафики воридотӣ дар омори IPsec сифр нест:

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, дар баромади klogview, паёмҳо пайдо шуданд, ки трафики мақсадноки 172.16.0.1->172.17.0.1 аз ҷониби қоидаи LIST дар харитаи криптографии CMAP бомуваффақият рамзкушоӣ карда шуд (PASS):

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

Натиҷаҳо

Донишҷӯ рӯзи истироҳати худро вайрон кард.
Бо қоидаҳои ME эҳтиёт шавед.

Муҳандиси номаълум
t.me/anonymous_engineer


Манбаъ: will.com

Илова Эзоҳ