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.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich 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.

İlgili makaleler