nftables içinde ayarlanan bir işaret, bir trafik sınıfını tünelden göndermelidir, ancak trafik fiziksel arayüzden çıkmaya devam eder. Kural kümesi tek başına doğru görünür. Genellikle olan şey, başka bir şeyin aynı işareti yazmış olması ya da yönlendirme kuralının yeni değerin artık karşılamadığı bir maskeyle eşleşmesidir.

Denetim 1: çekirdeğin eşleştirdiği kuralı okuyun

Güvenlik duvarından değil, ilke kuralından başlayın. Çekirdek kuralları öncelik sırasına göre inceler ve ilk eşleşme tabloyu belirler. fwmark değerini ve maskeyi kuralın kendisinden okuyun, ardından ayarladığınız işareti taşıyan paketin gerçekten onunla eşleştiğini doğrulayın. Tam 32 bitlik bir değer bekleyen kural, yalnızca tek bir bit taşıyan paketle eşleşmez.

Ardından o kuralın hangi tabloyu seçtiğini ve tablonun ne içerdiğini doğrulayın. Boş bir tabloyu gösteren kural, başarısız bir aramaya yol açar; bu da birçok sistemde paketin bir sonraki kurala düşüp fiziksel arayüzden çıktığı anlamına gelir.

Bunu iki komut belirler: kural listesi ve o tablodaki hedef için rota araması.

Denetim 2: paket işareti mi bağlantı işareti mi

nftables pakete bir işaret ve bağlantı izleme girdisine bir işaret koyabilir, bunlar farklı nesnelerdir. Paket işareti paketin işleme geçişi boyunca yaşar, bağlantı işareti ise akış için kalır ve bilinçli olarak kopyalanmalıdır. Birini ayarlayıp diğerini beklemek yaygın bir yarım çözümdür.

Yönlendirme kuralı paket işaretine dayanıyorsa, bağlantı işaretini yolun ilerisinde geri yüklemek bu karar için hiçbir şey yapmaz, çünkü karar çoktan verilmiştir.

Yönlendirme sinyalinin hangi nesneye ait olduğuna karar verin, sonra onu yönlendirme kararının verildiği noktada ayarlayın.

Denetim 3: bu işareti başka kim yazıyor

WireGuard'ın kendi araçları UDP paketlerini işaretler, böylece şifreli taşıma ait olduğu tünele geri yönlendirilmez. Kural kümeniz aynı alana ilgisiz bir değer atarsa bu dışlama kaybolur ve tünelin dış trafiği kendine girmeye çalışır. Belirti, kurulan ve sonra trafik geçirmeyi bırakan bir tüneldir.

İşaretler ayrıca diğer güvenlik duvarı araçları, konteyner ağları ve başka amaçlar için ilke yönlendirmesi tarafından kullanılır, bu nedenle iki alt sistemin alanın tamamını yazması, her biri tek tek doğru olsa bile bir çatışmadır.

Bir tane daha eklemeden önce yazıcıları listeleyin.

Denetim 4: maskeyi neyi tutacağınıza karar verir

İşaret 32 bitlik bir alandır ve maskeler birden çok sahibin onu paylaşma biçimidir. Bir değeri maskeyle ayarlamak sahip olmadığınız bitleri korur; alanın tamamını ayarlamak herkesin bitlerini yok eder. Alana dokunan her kuralda maskeyi okuyun, yazmadıklarınız dahil.

Bit dağılımını kural kümesinin yanında belgeleyin.

Aksi halde bir sonraki kişi zaten sahibi olan bir değeri yeniden kullanır ve buradaki çatışma yönlendirme hatası gibi görünürken aslında adresleme hatasıdır. nftables belgelerinin paket üstverileri hakkındaki bölümü işaret işlemlerinin kendisini açıklar.

Denetim 5: aramayla değil, gerçek akışla doğrulayın

Düz bir rota araması işaret taşımaz, bu yüzden gerçek paketten farklı bir yol gösterebilir. Önemsediğiniz trafiği üretin ve sayaçları, bağlantı izleme girdisini ve gerçekten çıktığı arayüzü gözlemleyin. Hem dahil edilen sınıfı hem de hariç tutulan sınıfı test edin, çünkü çok geniş bir işaret başarılı görünürken dışlamayı bozar. Dahil edilen sınıf çalışıyor ve hariç tutulan sınıf da tünele giriyorsa, işaret çok dar değil çok geniştir.

Canlı bir oturum sırasında yenilemeyi zorlamak için bağlantı durumunu temizlemekten kaçının, çünkü yeni ve mevcut akışlar meşru olarak farklı yollar izleyebilir.

İşareti, maskeyi ve tabloyu tek bir yerde kaydedin, o zaman sonraki düzenleme gözden geçirilebilir olur.

İlgili makaleler