Güvenlik duvarı formları TCP portu sorar ve akla yatkın giriş 50'dir. Bu giriş hiçbir şeye izin vermez, çünkü ESP, 50 numaralı IP protokolüdür ve protokol numaraları port değildir. İki ad alanı yalnızca küçük tam sayıları paylaşır, başka hiçbir şeyi değil, ve hata IKE bitene ve korunan trafik hiç ulaşmayana kadar görünmez kalır.

Küçük sayıları paylaşan iki ad alanı

Bir IP başlığı, sırada ne olduğunu adlandıran bir protokol alanı taşır: TCP için 6, UDP için 17, ICMP için 1, ESP için 50, AH için 51. TCP veya UDP başlığı, hedef ana bilgisayarda bir süreç seçen port numaraları taşır. Protokol 50 ile TCP portu 50 ilişkisiz değerlerdir, ancak bir iletişim kutusu onları değiştirilebilir gibi gösterebilir.

Bu yüzden port yönlendirme kuralı yerel ESP'yi ifade edemez. Yönlendirilecek bir ESP hedef portu yoktur ve yalnızca port kurallarını anlayan bir cihazın o paket için hiçbir sözlüğü yoktur. Doğru kural bunun yerine IP protokolünü adlandırır. Herhangi bir port iletişim kutusu o paket için yanlış araçtır.

Karışıklığın bir de ikinci yarısı var. Paket şifrelendiğinde içindeki her şey opaktır, özgün bağlantının TCP başlığı dahil. O paketteki portları inceleyen bir güvenlik duvarı dış başlığa bakıyordur ve yerel durumda orada incelenecek port yoktur.

Yerel ESP, ardından kapsüllenmiş alternatif

Yerel ESP doğrudan bir IP protokolü olarak taşınır, bu da aynı ölçüde verimli ve zahmetlidir. Verimlidir çünkü ek başlık yoktur ve zahmetlidir çünkü adres ve port çevirisi yapan hiçbir cihaz onu izleyemez. NAT geçişi tam da bunu çözmek için vardır: ESP paketini UDP içine sarar, böylece çeviricinin yeniden yazacağı portlar olur.

Form on the wireHow it is identifiedWhat the firewall must permit
IKE negotiationUDP with a destination portUDP 500, and 4500 once traversal is detected
Native ESPIP protocol 50 in the outer headerThe protocol itself, with no port to name
ESP inside UDPUDP 4500 carrying an ESP payloadThe UDP port pair, which translation devices can track

İki biçim aynı veri kanalının alternatif dağıtımlarıdır, birinin katmanları değil. Yerel ESP'ye izin vermek kapsüllenmiş biçime izin vermez ve UDP 4500'e izin vermek yerel trafiğe izin vermez, bu yüzden bir kural kümesi dağıtımla eşleşmelidir, kazara ikisini birden kapsamamalıdır.

Algılama burada da önemlidir. Uç noktalar görüşme sırasında biçimler arasında karar verir ve geçiş genellikle aralarında bir NAT algılandığında olur. Bu yüzden tünel kurulduktan sonra değişen bir yol, trafiği kurallarınızın hiç kapsamadığı bir ad alanına taşıyabilir.

Bağlantının gerçekte hangi biçimi kullandığını okuyun

Güvenlik duvarından tahmin etmek yerine uç noktaya sorun. Linux'ta durum girdisi, ilişkilendirmenin UDP kapsüllemesi kullanıp kullanmadığını ve hangi portların dahil olduğunu bildirir. Paket yakalama aynı soruya kablodan yanıt verir ve ikisi de bir kural kümesini okuyup ummaktan hızlıdır.

ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'

İlk komut NAT geçişi kullanıldığında bir kapsülleme türü gösterir, kullanılmadığında hiçbir şey göstermez. İkincisi iki biçimden hangisinin gerçekte arayüzden geçtiğini gösterir ve bu, kâğıt üzerinde doğru görünen bir yapılandırma hakkındaki tartışmaları bitirir.

Karşı kanıt da aynı adıma aittir. Sıfır eşleşme bildiren bir kural, paketin ona hiç ulaşmadığını söyler ve bu güvenlik duvarı değil, yönlendirme veya seçici sorunudur.

Ardından denetim kanalını ayrıca doğrulayın. IKE'nin kendi portları ve kendi günlükleri vardır ve veri olmadan tamamlanan bir görüşme tam da bu makalenin konu olduğu ayrımdır.

Kuralı doğru ad alanında yazın

Protokol kuralı ile port kuralı farklı talimatlardır, bu yüzden araç kastettiğinizi ifade etmelidir. nftables'ta protokol eşleşmesi açıktır ve kapsüllenmiş alternatif kendi UDP kuralını alır. İki kuralı yan yana tutun ki çift incelemede görünür olsun.

nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept

Yanlış bir tanıyı telafi etmek için kuralların hiçbirini genişletmeyin. Her arayüzde ESP protokolü için her şeye izin vermek veya her yerden her yere UDP izni vermek bir belirtiyi düzeltir ve kurmaya çalıştığınız denetimi kaldırır. Biçim bilindiğinde dar desteklenen akış neredeyse her zaman yeterlidir.

Son olarak, tünel çalışıp uygulama çalışmadığında katmanları doğru tutun. Ağ geçidine ulaşan paketler hâlâ iletme, bir dönüş yolu ve onları kabul eden bir politikaya ihtiyaç duyar ve bunların hiçbiri bir ESP kuralıyla ifade edilmez. Eksik port belirli bir arızayı açıklar, her IPsec arızasını değil. Kural düzeltmesini ve yönlendirme denetimini iki ayrı sonuç olarak tutun.

Gözlediğiniz biçimi, eklediğiniz protokol kuralını ve sonrasında gördüğünüz sayacı kaydedin. Üç satır ve bir sonraki kişi ad alanı hatasını yönlendirme hatasından yarım gün yerine bir dakikada ayırt edebilir.

İlgili makaleler