Bir tünel arabirimi beklersiniz, ararsınız ve güvenlik duvarında eşleştirecek hiçbir şey yoktur. Bu, politika tabanlı bir ağ geçidi için normaldir: şifreli alışveriş fiziksel arabirime gelir ve ardından iletilen şifresi çözülmüş iç paket de aynı arabirime geliyor olarak gözlemlenir. Hiçbir şey oluşturmadığı için tun0 yoktur.

İç istek hâlâ kendi kaynağı, hedefi ve hizmeti olan ayrı bir pakettir ve çekirdek hangi güvenlik ilişkisinden çıktığını bilir. Bir güvenlik duvarı kuralının eşleştirebileceği şey tam olarak bu bilgidir.

İki paket, tek arabirim

Gelen yönü hayal edin. ESP veya UDP ile kapsüllenmiş bir paket gelir, çekirdek eşleşen politikayı bulur, şifresini çözer ve düz paketi iletim yoluna verir. Yalnızca arabirim adına bakan bir kural, o paketi aynı kablodan gelen başka bir trafikten ayıramaz.

Onu ayıran şey, pakete eklenmiş gelen güvenlik yolu bağlamıdır. nftables bunu meta ipsec exists olarak sunar ve bu, paket bir IPsec güvenlik yolu üzerinden geldiğinde doğrudur. Bunu istemci havuzu, hedef ve hizmetle birleştirin, kural güvenli olacak kadar özgül hale gelir.

Bağlamı atlamak yaygın hatadır ve bu kozmetik değil güvenlik hatasıdır. İstemci havuzundan gelen her şeyi kabul eden bir kural, yerel ağdan gelen sahte bir paketi de aynı memnuniyetle kabul eder, çünkü kaynak adresi tek başına hiçbir şeyin kanıtı değildir. Güvenlik yolu bağlamı, kaynağı anlamlı kılmanın en ucuz yoludur. Kuralı denetimden sonra eklemek yerine baştan onunla yazın.

İletim kuralını yazın

10.90.0.0/24 içinde istemcileri olan kimliği doğrulanmış bir IPv4 uzaktan erişim hizmeti ve 203.0.113.40 üzerinde onaylanmış bir hedef olduğunu varsayın. Bu akış için kural parçası şöyle görünür.

meta ipsec exists ip saddr 10.90.0.0/24 \
  ip daddr 203.0.113.40 tcp dport 443 \
  oifname "eth0" counter accept

Adresler ve arabirim değiştirilecek örneklerdir. Gözden geçirilmiş eşdeğeri iletim politikasına, akışı aksi halde reddedecek kuraldan önce yerleştirin ve kurmak için mevcut kural kümesini boşaltmayın; bir ağ geçidi temiz oda deneyi değildir.

oifname terimini korumaya değer. Çıkış kararını belgeler ve kuralın amaçlamadığınız bir yönde eşleşmesini önler; bu, internete birkaç yolu olan bir ağ geçidinde önemlidir. Tek yukarı bağlantılı bir test kutusunda terim gereksiz görünür ve tam bu nedenle kutu ikinci bir bağlantı almadan önce kaldırılır.

Dış alışveriş için izinler ayrıdır. Ağ geçidinin giriş yolu, gerçekten kullandığı IKE ve ESP veya UDP kapsülleme bağlantı noktalarına ihtiyaç duyar ve bu izinler içerideki şifresi çözülmüş paket hakkında hiçbir şeye izin vermez. İkisini karıştırmak, çalışan bir tünelin her şeyi ileten bir güvenlik duvarıyla sonuçlanmasının yoludur.

Gelen bağlam giden bağlam değildir

Aynı ifade ailesi diğer yönü rt ipsec ile kapsar; bu, bir paketin kullanacağı giden güvenlik ilişkisini tanımlar. Farklı bir soruyu yanıtlar: bu paketin nereden geldiği değil, sonraki bacağında korunup korunmayacağı.

Bu ayrım, bir tüneli sonlandırırken aynı zamanda başka birine ileten bir ağ geçidinde önemlidir. Bir paket şifresi çözülmüş olarak gelebilir ve yine de şifrelenmiş olarak çıkması gerekebilir ve yalnızca gelen bağlam için yazılmış bir kabul, giden gereksinim hakkında hiçbir şey söylemez. Politika bu korumayı gerektiriyorsa, kural kümesi yönlendirmenin halledeceğini varsaymak yerine bunu ifade etmelidir.

İki soruyu ayrı kurallarda tutun ki okuyucu hangisinin uygulandığını görsün. İkisini birden denetleyen tek akıllı kural, gözden geçirilmesi daha zor ve yarısı eşleşmeyi bıraktığında hata ayıklaması çok daha zordur. Sayaçlı iki kural ayrıca hangi gereksinimin başarısız olduğunu söyler; birleşik tek bir kural bunu asla yapmaz.

NAT bir güvenlik duvarı kararı değildir

Özel bir istemci havuzundan internete giden trafik genellikle kaynak çevirisine ihtiyaç duyar ki yanıt dönüş yolunu bulsun. Ancak başka bir giden IPsec politikası için seçilen trafik gerekli muafiyetini korumalıdır ve her özel kaynağı bir sonraki koruma kararını düşünmeden maskelemek bunu bozar.

Bir NAT zinciri içindeki kabul de genel bir izin değildir. NAT ve filtrelemenin işleri farklıdır ve bir NAT zinciri kurulmuş bir akışın sonraki her paketini incelemez, bu yüzden güvenlik için ona güvenmek, testte çalışıyor görünen ve yük altında başarısız olan kurallar üretir.

Tersi de doğrudur ve insanları şaşırtır: bir filtre temel zincirinde bir yerdeki kabul, başka bir uygulanabilir zincirdeki sonraki reddetmeye karşı hiçbir ağırlık taşımaz. Sonucu sıra ve zincirin kapsamı belirler, dosyada bir kabul bulunması değil.

Tam iç hizmeti doğrulayın

Yetkilendirdiğiniz belirli hedefi ve bağlantı noktasını gerçek bir istemciden test edin ve yanıtın geri geldiğini doğrulayın. Ardından yetkilendirmediğiniz bir şeyi test edin ve geçmediğini kontrol edin, çünkü çok geniş bir kural ilk testi doğru bir kural kadar iyi geçer. İstemciden hiç çıkmayan bir istek de güvenlik duvarı sonucu değildir, bu yüzden paketin değerlendirilip değerlendirilmediğini görmek için sayaçları okuyun. İki test ve bir sayaç okuması size kural kümesini okumakla geçirilen koca bir öğleden sonradan daha fazlasını söyler.

nftables başvuru belgesi meta ipsec, rt ipsec ve yöne özgü ifadeleri belgeler ve sözdizimini kurulu sürümünüze göre kontrol edeceğiniz yer tam orasıdır. Ve kapsamı açık tutun: bu bir IPv4 örneğidir, IPv6 hakkında hiçbir şey söylemez ve rastgele genel bağlantı noktası yönlendirmesini VPN hizmetinin parçası yapmaz.

İlgili makaleler