Ang ESP ay IP protocol 50, hindi TCP port 50: ano ang dapat payagan
Magkaibang namespace ang mga numero ng protocol at numero ng port. Walang pinapayagan ang isang tuntunin para sa TCP port 50, at inililipat ng NAT traversal ang ESP sa UDP 4500.
Naghihingi ng TCP port ang mga form ng firewall, at ang halatang entry ay 50. Walang pinapayagan ang entry na iyon, dahil ang ESP ay IP protocol number 50 at ang mga numero ng protocol ay hindi port. Ang dalawang namespace ay nagbabahagi lamang ng maliliit na integer at wala nang iba, at ang pagkakamali ay hindi nakikita hanggang matapos ang IKE at hindi dumating ang protektadong trapiko.
Dalawang namespace na nagbabahagi ng maliliit na numero
May bitbit ang header ng IP na field ng protocol na nagpangalan sa susunod: 6 para sa TCP, 17 para sa UDP, 1 para sa ICMP, 50 para sa ESP, 51 para sa AH. May bitbit ang header ng TCP o UDP na mga numero ng port, na pumipili ng proseso sa host ng destinasyon. Ang protocol 50 at TCP port 50 ay magkaibang halaga, ngunit kayang gawin ng isang dialog box na magmukhang mapagpapalit sila.
Kaya hindi kayang ipahayag ng tuntunin sa port forwarding ang native na ESP. Walang ESP destination port na maipapasa, at ang device na nakakaintindi lamang ng mga tuntunin sa port ay walang bokabularyo para sa packet na iyon. Pinapangalanan ng tamang tuntunin ang IP protocol. Anumang dialog ng port ay maling kasangkapan para sa packet na iyon.
May ikalawang hati ang kalituhan. Kapag naka-encrypt ang packet, ang lahat sa loob nito ay malabo, kasama ang TCP header ng orihinal na koneksyon. Ang firewall na nagsusuri ng port sa packet na iyon ay tumitingin sa panlabas na header, na sa native na kaso ay walang port na masusuri.
Native na ESP, pagkatapos ang naka-encapsulate na alternatibo
Ang native na ESP ay direktang dinadala bilang IP protocol, na kasing episyente at kasing-abala. Episyente dahil walang karagdagang header, at abala dahil walang device na nagtatranslate ng address at port ang makakasunod dito. Umiiral ang NAT traversal upang lutasin iyon, sa pamamagitan ng pagbabalot ng ESP packet sa loob ng UDP upang magkaroon ng port ang translator na maisusulat muli.
| 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 |
Ang dalawang anyo ay mga alternatibong deployment ng parehong data channel, hindi mga layer ng isa. Ang pagpayag sa native na ESP ay hindi nagpapayag sa naka-encapsulate na anyo, at ang pagpayag sa UDP 4500 ay hindi nagpapayag sa native na trapiko, kaya dapat tumugma ang set ng tuntunin sa deployment sa halip na aksidenteng masakop ang dalawa.
Mahalaga rin ang pagtuklas dito. Nagpapasya ang mga endpoint sa pagitan ng mga anyo habang nag-uusap, at karaniwang nangyayari ang paglipat kapag may natuklasang NAT sa pagitan nila. Kaya ang isang landas na nagbabago matapos maitatag ang tunnel ay maaaring maglipat ng trapiko sa namespace na hindi kailanman nasakop ng iyong mga tuntunin.
Basahin kung aling anyo ang aktwal na ginagamit ng koneksyon
Tanungin ang endpoint sa halip na manghula mula sa firewall. Sa Linux, iniuulat ng state entry kung gumagamit ng UDP encapsulation ang association at kung aling port ang kasangkot. Sinasagot ng packet capture ang parehong tanong mula sa kable, at pareho silang mas mabilis kaysa magbasa ng set ng tuntunin at umasa.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
Ipinapakita ng unang command ang uri ng encapsulation kapag ginagamit ang NAT traversal at wala kapag hindi. Ipinapakita ng pangalawa kung alin sa dalawang anyo ang aktwal na tumatawid sa interface, at tinatapos niyon ang mga debate tungkol sa configuration na mukhang tama sa papel.
Kasama rin sa parehong hakbang ang kontra-evidensya. Ang tuntuning nag-uulat ng zero na tugma ay nagsasabi sa iyo na hindi kailanman naabot ng packet ang tuntuning iyon, at iyon ay tanong ng routing o selector, hindi ng firewall.
Pagkatapos ay kumpirmahin ang control channel nang hiwalay. May sariling port at sariling log ang IKE, at ang natapos na negosasyon na walang data ay eksaktong paghahati na tinatalakay ng artikulong ito.
Isulat ang tuntunin sa tamang namespace
Ang tuntunin sa protocol at tuntunin sa port ay magkaibang tagubilin, kaya dapat ipahayag ng kasangkapan ang tinutukoy mo. Sa nftables, tahasan ang pagtutugma ng protocol, at ang naka-encapsulate na alternatibo ay nakakakuha ng sariling UDP na tuntunin. Panatilihing magkatabi ang dalawang tuntunin upang makita ang pares sa pagsusuri.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
Huwag palawakin ang alinman sa mga tuntunin upang mabayaran ang maling diagnosis. Ang pagpayag sa lahat para sa ESP protocol sa bawat interface, o pagpayag sa UDP mula kahit saan hanggang kahit saan, ay nag-aayos ng sintomas at nag-aalis ng kontrol na sinusubukan mong itakda. Ang makitid na sinusuportahang daloy ay halos palaging sapat kapag alam na ang anyo.
Sa huli, panatilihing tuwid ang mga layer kapag gumagana ang tunnel at hindi ang application. Ang mga packet na dumarating sa gateway ay kailangan pa rin ng forwarding, return route at patakarang tumatanggap sa kanila, at wala sa mga iyon ang ipinapahayag ng tuntunin sa ESP. Ang nawawalang port ay nagpapaliwanag ng partikular na pagkabigo, hindi ng bawat pagkabigo ng IPsec. Panatilihing magkaibang konklusyon ang pagwawasto ng tuntunin at ang pagsusuri ng routing.
Itala ang anyo na naobserbahan mo, ang tuntunin sa protocol na idinagdag mo at ang counter na nakita mo pagkatapos. Tatlong linya, at ang susunod na tao ay makikilala ang pagkakamali sa namespace mula sa pagkakamali sa routing sa isang minuto sa halip na isang hapon.