ESP — бұл IP 50 протоколы, TCP 50 порты емес: неге рұқсат беру керек
Протокол нөмірлері мен порт нөмірлері — әртүрлі атау кеңістіктері. TCP 50 порты үшін ереже ештеңеге рұқсат бермейді, ал NAT traversal ESP-ні UDP 4500-ге жылжытады.
Firewall нысандары TCP портын сұрайды, ал айқын жауап — 50. Бұл жауап ештеңеге рұқсат бермейді, өйткені ESP — 50 нөмірлі IP протоколы, ал протокол нөмірлері порт емес. Екі атау кеңістігі тек кіші бүтін сандарды бөліседі, басқа ештеңе емес, және қате IKE аяқталғанша және қорғалған трафик ешқашан жетпейінше көрінбейді.
Кіші сандарды бөлісетін екі атау кеңістігі
IP тақырыбы келесіні атайтын протокол өрісін алып жүреді: TCP үшін 6, UDP үшін 17, ICMP үшін 1, ESP үшін 50, AH үшін 51. TCP немесе UDP тақырыбы порт нөмірлерін алып жүреді, олар мақсатты хостта процесті таңдайды. 50 протоколы мен TCP 50 порты байланысы жоқ мәндер, бірақ диалог терезесі оларды алмастырылатын етіп көрсете алады.
Сондықтан портты бағыттау ережесі байырғы ESP-ні білдіре алмайды. Бағыттайтын ESP мақсатты порты жоқ, ал тек порт ережелерін түсінетін құрылғының бұл пакет үшін сөздігі мүлдем жоқ. Дұрыс ереже оның орнына IP протоколын атайды. Кез келген порт диалогы бұл пакет үшін дұрыс емес құрал.
Шатасустың екінші жартысы да бар. Пакет шифрланған кезде оның ішіндегі барлық нәрсе мөлдір емес, оның ішінде бастапқы қосылымның TCP тақырыбы да. Сол пакетте порттарды тексеретін firewall сыртқы тақырыпқа қарайды, ал байырғы жағдайда онда тексерілетін порт жоқ.
Байырғы ESP, содан кейін капсулаланған балама
Байырғы ESP тікелей IP протоколы ретінде тасымалданады, бұл бірдей тиімді және қолайсыз. Тиімді, өйткені қосымша тақырып жоқ, және қолайсыз, өйткені мекенжайлар мен порттарды аударатын кез келген құрылғы оны бақылай алмайды. NAT traversal дәл осыны шешу үшін бар: ESP пакетін UDP ішіне орап, аудармашыға қайта жазатын порттар береді.
| Form on the wire | How it is identified | What the firewall must permit |
|---|---|---|
| IKE negotiation | UDP with a destination port | UDP 500, and 4500 once traversal is detected |
| Native ESP | IP protocol 50 in the outer header | The protocol itself, with no port to name |
| ESP inside UDP | UDP 4500 carrying an ESP payload | The UDP port pair, which translation devices can track |
Екі нысан — бір деректер арнасының балама орналастырулары, біреуінің қабаттары емес. Байырғы ESP-ге рұқсат беру капсулаланған нысанға рұқсат бермейді, ал UDP 4500-ге рұқсат беру байырғы трафикке рұқсат бермейді, сондықтан ережелер жиынтығы орналастыруға сәйкес болуы керек, кездейсоқ екеуін де жаппауы керек.
Мұнда анықтау да маңызды. Соңғы нүктелер келіссөз кезінде нысандар арасында шешім қабылдайды, ал ауысу әдетте олардың арасында NAT анықталғанда болады. Сондықтан туннель орнатылғаннан кейін өзгеретін жол трафикті ережелеріңіз ешқашан жабпаған атау кеңістігіне жылжытуы мүмкін.
Қосылым шын мәнінде қай нысанды пайдаланатынын оқыңыз
Firewall-дан болжам жасаудың орнына соңғы нүктеден сұраңыз. Linux-та күй жазбасы бірлестіктің UDP капсулалауын пайдаланатынын және қандай порттар қатысатынын хабарлайды. Пакетті ұстау сол сұраққа сымнан жауап береді, және екеуі де ережелер жиынтығын оқып, үміттенуден жылдамырақ.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
Бірінші пәрмен NAT traversal пайдаланылғанда капсулалау түрін көрсетеді, ал пайдаланылмағанда ештеңе көрсетпейді. Екіншісі екі нысанның қайсысы шын мәнінде интерфейстен өтетінін көрсетеді, және бұл қағазда дұрыс көрінетін конфигурация туралы дауларды тоқтатады.
Қарсы дәлел сол қадамға жатады. Нөлдік сәйкестік туралы хабарлайтын ереже пакеттің оған ешқашан жетпегенін айтады, және бұл firewall емес, маршруттау немесе селектор мәселесі.
Содан кейін басқару арнасын бөлек растаңыз. IKE-тің өз порттары мен өз журналдары бар, ал деректерсіз аяқталған келіссөз — дәл осы мақала сөз ететін бөліну.
Ережені дұрыс атау кеңістігінде жазыңыз
Протокол ережесі мен порт ережесі әртүрлі нұсқаулар, сондықтан құрал сіз айтқанды білдіруі керек. nftables-те протокол сәйкестігі айқын, ал капсулаланған балама өз UDP ережесін алады. Екі ережені қатар ұстаңыз, қарау кезінде жұп көрінетін болсын.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
Қате диагностиканы өтеу үшін ережелердің кез келгенін кеңейтуге қарсы тұрыңыз. Әр интерфейсте ESP протоколы үшін бәріне рұқсат беру немесе кез келгеннен кез келгенге UDP рұқсаты симптомды түзейді және сіз орнатпақ болған бақылауды жояды. Нысан белгілі болған соң тар қолдау көрсетілген ағын әдетте жеткілікті.
Соңында, туннель жұмыс істеп, қолданба істемегенде қабаттарды дұрыс ұстаңыз. Шлюзге жеткен пакеттерге әлі де бағыттау, қайтару маршруты және оларды жіберетін саясат қажет, және олардың ешқайсысы ESP ережесімен өрнектелмейді. Жетпейтін порт нақты бір ақауды түсіндіреді, IPsec-тің барлық ақауын емес. Ереже түзетуі мен маршруттау тексерісін екі бөлек қорытынды ретінде ұстаңыз.
Бақылаған нысанды, қосқан протокол ережесін және кейін көрген санауышты жазыңыз. Үш жол, және келесі адам атау кеңістігінің қатесін маршруттау қатесінен жарты күннің орнына бір минутта ажырата алады.