IPsec ESP: neyi taşır ve aktığını nasıl kanıtlarsınız
ESP tünel modunda bir iç IP paketini sarar ve ilişkisini SPI ile tanımlar. Durumu okuyun, sonra tek bir akışın sayaçları nasıl hareket ettirdiğini izleyin.
ESP, bir IPsec VPN'de trafiği taşır ve runbook'u tek bir kuralla başlar: bir politikayı değiştirmeden önce güvenlik ilişkisini okuyun. Açıklanamayan ESP davranışının çoğu, eşleşmeyen bir seçiciye, okunmak yerine varsayılan bir moda veya tek bir akış gönderilirken kimsenin kontrol etmediği bir sayaca dayanır. Aşağıdaki üç adım neyin neyi taşıdığını belirler, tek bir akışın bunu kullandığını kanıtlar ve belleğe bağlı olmayan bir geri alma bırakır. Her adım yazmaya değer bir gözlem üretir.
Alanları okumadan önce tanıyın
ESP, korunan verilerin önüne bir başlık ve arkasına bir kuyruk koyar. Başlık, alıcının hangi ilişkiyi kullanması gerektiğini tanımlayan bir güvenlik parametresi dizini, yeniden oynatmayı saptamak için bir sıra numarası taşır; kuyrukta ise yükü şifre için hizalı tutan dolgu bulunur. Kuyruktaki sonraki başlık alanı korunan içeriğin ne olduğunu söyler ve alıcı böylece neyi kapsülden çıkardığını bilir.
Mod, o korumanın içinde ne olduğunu değiştirir. Tünel modunda korunan malzeme tam bir iç IP paketidir ve yeni bir dış başlık onu uç noktalar arasında taşır. Taşıma modunda koruma, var olan bir paketin üst katman yükünü sarar, bu yüzden açılacak ikinci bir IP başlığı yoktur. Hangi modun kullanıldığı bir yapılandırma gerçeğidir, yorum meselesi değildir. Bunu bir diyagramdan çıkarsamak yerine durum girdisinden okuyun.
İki modun hiçbiri paketi teslim etmesi gereken dış adreslemeyi gizlemez. Bu tasarımın bir özelliğidir, eksiklik değildir ve bu yüzden aradaki bir gözlemci yük opak olsa bile hangi iki adresin konuştuğunu hâlâ görebilir.
Birinci adım: durumu, sonra politikayı okuyun
Durum girdileri anahtarları ve sayaçları tutar; politika girdileri bunları kimin kullanabileceğine karar veren seçicileri tutar. Linux'ta ikisi de paket yakalamadan görünür ve bu sırayla okumak iki soruyu ayrı tutar.
ip xfrm state
ip xfrm policy
Durum çıktısında ilişkinin kaynağını ve hedefini, modu ve kapsüllemenin UDP bağlantı noktaları gösterip göstermediğini kontrol edin. O bağlantı noktaları NAT geçişinin kullanıldığı anlamına gelir, bu aradaki güvenlik duvarının neye izin vermesi gerektiğini değiştirir, ama uç noktalarda hangi seçicilerin veya anahtarların geçerli olduğunu değiştirmez.
Sonra politikadaki seçicileri okuyun. Test ettiğiniz trafikten daha dar bir önek belirten seçici, çalışan bir tünelin bir akışı yok sayıyormuş gibi görünmesinin en yaygın nedenidir ve yanlış protokolün seçicisi aynı sessizliği verir.
| Field | Where it appears | What it decides |
|---|---|---|
| Security parameter index | ESP header, and the receiving state entry | Which association and keys the receiver applies |
| Sequence number | ESP header | Replay detection for that association |
| Next header | ESP trailer | What the decapsulated payload contains |
| Inner IP header | Inside tunnel-mode payload only | The original source and destination the endpoints act on |
| Traffic selectors | Policy, not the packet | Which local traffic is allowed to use the association |
Satıcı araçları aynı bilgiyi daha rahat bir biçimde yazdırır. ipsec statusall strongSwan'da alt ilişkileri, seçicilerini ve bayt sayaçlarını listeler; hangi alt ilişkiye bakacağınızı zaten biliyorsanız bu, ham xfrm çıktısını okumaktan çoğu zaman daha hızlıdır.
İkinci adım: tek bir akışın sayaçları hareket ettirdiğini kanıtlayın
Sayaçlar ancak onları neyin hareket ettirmesi gerektiğini biliyorsanız anlamlıdır, bu yüzden seçicinin kesinlikle kapsadığı bir kaynak ve hedef seçin ve zararsız bir istek gönderin. Sonra aynı girdiyi yeniden okuyun ve karşılaştırın.
ip -s xfrm state
tcpdump -ni any esp
İki okuma farklı hikâyeler anlatır. Giden tarafta artan ama gelen tarafta asla artmayan paketler, paket kapsüllenip gittiği için anahtar sorununa değil, iletme veya dönüş yolu sorununa işaret eder. Hiçbir sayaç hareket etmiyorsa trafik politikayla hiç eşleşmemiştir, ve bakılacak yer seçicidir.
Aynı adımdaki yakalama, dış paketlerin ESP mi yoksa UDP içinde kapsüllenmiş ESP mi olduğu dahil, tel üzerindeki kapsüllemeyi doğrular. Ayrıca akışı gerçekte taşıyan adresleri de gösterir ve bunlar bazen okuduğunuz yapılandırmadakilerden farklı olur.
Üçüncü adım: tek bir şeyi değiştirin ve bir geri alma tutun
Herhangi bir şeyi düzenlemeden önce ilişkinin kaynağını, hedefini, modunu, seçicilerini ve sayaçlarını not edin. Bir değişiklik durumu kötüleştirirse, çalışan bir yapılandırmayı tahminden yeniden kurmak yerine önceki durumu geri yüklemenizi sağlayan tam da o nottur. Not bir dakika sürer ve sonra bir saat kazandırır. Aynı zamanda değişikliği yapan kişiden sonra kalan tek eserdir.
Bir seçiciyi veya bir parametreyi değiştirin, yeniden yükleyin ve aynı akışa karşı ikinci adımı yineleyin. Bir ilişkiyi silmek onu kullanan her akışı yıkar, bu yüzden hedefli bir düzenleme ve alt ilişkinin yeniden yüklenmesi, ne olacağını görmek için durumu boşaltmaktan neredeyse her zaman daha iyidir.
Bir seçici düzenlemesinin geri alınması, önceki politikayı geri yüklemek ve yeniden yüklemektir; seçici yerel değil de müzakere ediliyorsa karşı tarafın da uygun bir değişikliğe ihtiyaç duyabileceği kaydıyla. Bu bağımlılığı tazeyken yazın, çünkü yarı geri yüklenmiş bir çift, iki son durumdan herhangi birinden daha zor düşünülür.
Son olarak kapsamı dürüst tutun. Akan bir ESP ilişkisi, iki ağ geçidinin segmenti koruduğunu ve teslim ettiğini kanıtlar ve üstteki uygulamanın kullanıcılarını doğrulayıp doğrulamadığı veya sakladığını şifreleyip şifrelemediği hakkında hiçbir şey söylemez. Bunlar ayrı kanıtlara sahip ayrı kontrollerdir ve runbook ancak bir sonraki kişi notlardan yineleyebildiğinde tamamlanır.