WireGuard’ı kilitlemek için IPv6’yı engellemek ana makineyi bozar
Tüm IPv6’yı düşüren bir giriş kuralı komşu keşfini ve Packet Too Big’i de kaldırır. Üç sorumluluğu ayrı tutun, sonra ana makinenin hâlâ çalıştığını doğrulayın.
Amaç makul: bu makinedeki hizmetlere yalnızca tünel kullanıcıları erişmeli. İnsanların başvurduğu uygulama, WireGuard dışındaki her şeyi düşüren bir IPv6 giriş zinciridir ve bu, ana makineyi kendi bağlantısına bağlı tutan trafiği de düşürür. Komşu keşfi ve yol bakım mesajları hizmet erişimi değildir ve bunları kaldırmak, politikanızla ilgisiz nedenlerle erişilemez bir makine üretir. Tünel açılır, hizmetler doğru sınırlanır ve bağlantı üzerinde başka hiçbir şey çalışmaz.
Üç sorumluluk, tek kural kümesi
İlk sorumluluk dış ağın işletilmesidir: ana makine bağlantısında kalmalı, komşuları çözmeli ve o bağlantının yol sınırlarını bilmelidir. İkincisi, seçtiğiniz adres ve bağlantı noktasında UDP kabul eden şifreli dinleyicidir. Üçüncüsü, tünel kullanıcılarının erişmesini istediğiniz çözülmüş hizmetler kümesidir.
Bunlar üç farklı politikadır ve yalnızca ikincisi ile üçüncüsü VPN ile ilgilidir. Bunları tek olarak ele alan bir kural kümesi, uygulama sınırını sıkılaştırmanın ana makinenin bağlantısını sessizce bozduğu bir arıza kipini devralır.
Bunları ayrı zincirlerde ya da en azından ayrı yorumlarda tutun, böylece sonraki kişi hangi satırın neden var olduğunu görsün.
ICMPv6 ana makine için ne yapar
IPv6, yankıdan çok daha fazlası için ICMPv6’ya dayanır. Komşu isteği ve duyurusu ARP’nin yerini alır ve yerel teslimat için gereklidir. Packet Too Big yolun MTU bilgisini taşır ve bunu yok saymak büyük paketlerde tıkanan aktarımlara yol açar. Bağlantı otomatik yapılandırma kullandığında yönlendirici duyuruları varsayılan yolu ve önek bilgisini taşır.
RFC 4890, bir ana makine filtresinin izin vermesi gereken mesajları idari bir tercih olanlardan ayırır ve bunu, ağlar arasında ileten bir yönlendiricinin kurallarından farklı bir ana makine bölümünde yapar. Yalnızca iletme bölümünü okumak, koruduğu ana makine için fazla katı bir giriş politikası üretir.
Pratik kural, gerekli hata ve yapılandırma mesajlarına ihtiyaç duyan arayüzde izin vermek, platformun izin verdiği yerde tür ve kaynağa göre sınırlamak ve geri kalanı için açık bir karar vermektir.
Bütün bunları genel bir ICMPv6 izniyle değiştirmek erişilebilirlik sorununu çözer ve filtrelemeden vazgeçer. Genel bir düşürmeyle değiştirmek filtreleme sorununu çözer ve ana makineden vazgeçer.
Önce tünele, sonra hizmete izin verin
WireGuard taşımasını amaçlanan dış adres ve UDP bağlantı noktasında kabul edin, dönüş trafiğini bağlantı izleme yoluyla kabul edin. Ardından uygulama hizmetlerine tünel arayüzünden, gerçekten yetki verdiğiniz kaynaklardan geçiş izni verin.
Dış UDP bağlantı noktasına verilen izin, içindeki çözülmüş isteklere yetki vermez. Bu ayrım, tünel arayüzünün hizmet kurallarında görünmesinin tüm nedenidir.
Kural kümesini olduğu gibi okuyun, dosyanın anlattığı gibi değil:
sudo nft list ruleset
ip -6 addr show
ip -6 route show default
Fiziksel bir adresteki dinleyici, tünel adresindeki aynı hizmetten ayrı bir maruziyettir. Makine trafiği başka bir makineye de iletiyorsa bu, bu giriş politikası değil iletme zincirinin kararıdır ve kendi gerekçesini gerektirir.
Bağlantıyı test edin, yalnızca tüneli değil
Değişiklikten sonra çalışan bir tünel göründüğünden azını kanıtlar, çünkü var olan bir komşu kaydı ve kurulmuş bir bağlantı, politikanın artık düşürdüğü bir denetim mesajını gizleyebilir.
Bağlantıyı doğrudan denetleyin, ardından dışlanan yolun hâlâ başarısız olduğunu denetleyin:
ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf
Yeniden başlatmadan sonra da eksiksiz kalan komşu tablosu, keşfin hâlâ çalıştığının işaretidir. Boşalıp bir daha dolmayan tablo, onu filtrelediğinizin işaretidir. Üçüncü komut, kural kümesinin sözdizimini uygulamadan doğrular ve bunu oturumunuz varken yapmaya değer.
Kendinizi dışarıda bıraktığınız ana makineyi kurtarın
Kendi yönetim oturumunuzu taşıyan güvenlik duvarı kurallarını değiştirmeden önce ikinci bir kanal tutun: bir konsol, seri bağlantı ya da iptal etmezseniz yeni kuralları kaldıran zamanlanmış bir geri alma.
Değişiklik sizi gerçekten kilitlerse, kurtarma o kanaldan yapılır, az önce kaldırdığınız ağdan değil. Önceki kural kümesini kaydedilmiş bir kopyadan geri yükleyin, ana makineye yeniden erişilebildiğini doğrulayın ve ancak ondan sonra amaçlanan politikayı daha küçük parçalar hâlinde uygulayın.
Nihai politika evrensel değildir. Adresleme, yönlendirme ve güvenlik duvarı uygulaması dağıtım girdileridir, ama sınır her yerde aynıdır: yetkilendirilmiş tüneli taşıyan denetim trafiğini korurken istenmeyen uygulama erişimini reddedin.