İzin kuralını yanlış konuma koyarsanız hiç kural yokmuş gibi davranır. nftables'da insert ile add arasındaki seçim, yeni ifadenin başvurulan kuralın hangi tarafına düşeceğini belirler ve tutamaç kuralı canlı kural kümesinde adlandırır, satır numarasını değil. Yerleşimi yanlış yaparsanız paket önce drop'a ulaşır.

Aşağıdaki karşılaştırma tek bir sabit eş ve tek bir dış dinleyici değişimi kullanır. Bilerek dardır; tüm zinciri değiştirmek farklı risk profiline sahip başka bir değişikliktir.

İki yerleşim, iki farklı sonuç

insert kuralı başvurulan kuralın önüne yerleştirir. add arkasına yerleştirir. Başvurulan kural akış için terminal drop ise, kural metni aynı olsa bile bu iki komut birbirine zıt sonuç verir.

Konumun atlanmasının kendi varsayılan davranışı vardır; bu da bir komutu neye sabitlendiğini okumadan forumdan kopyalamamak için başka bir nedendir. Sabitleme noktası bütün karardır. Komutu yazmadan önce amaçlanan tarafı not edin. Dosyada insert ile add arasında tek kelime fark vardır.

Yerleşim belirli bir zincirdeki kurala görelidir. Aynı ifadeyi başka bir zincire veya başka bir hook önceliğine taşımak, kural sözdizimi doğru görünse bile hangi paketleri gördüğünü değiştirir.

Tutamaç bir kuralı tanımlar, satır numarasını değil

42 gibi bir tutamaç, kural kümesinin geçerli durumundaki bir tanımlayıcıdır. Kırk ikinci kural değildir ve ana bilgisayarlar, yeniden derlemeler veya yapılandırmasını yeniden yükleyen bir yönetici arasında kararlı değildir.

Sabitleme noktasını seçmeden önce zinciri ve gerçek terminal drop'u bulun. Ardından drop'u gösteren aynı listede o kural üzerindeki tutamacı doğrulayın, böylece numara ve kural birlikte okunsun. Eski bir listeden okunan tutamaç artık başka bir kurala ait olabilir. Değişikliği uygulayacak oturumda yeniden okuyun.

iptables --version
nft -a list ruleset

iptables sürümü hangi backend'in kullanıldığını bildirir. Bir iptables-nft kural kümesi ile bağımsız yönetilen yerel tablo bir arada bulunabilir, bu yüzden tek bir frontend'den alınan liste otomatik olarak tam filtreleme resmi değildir. Zincir seçmeden önce iki görünümü de denetleyin.

Gerçekten drop yapan zinciri ve kuralı bulun

input hook'u, zincir önceliğini ve bu dinleyici akışını reddeden kuralı okuyun. inet tablosu iki adres ailesini de taşıyabilir, ancak tek bir kural yine de yalnızca IPv4 ile eşleşebilir.

Onaylanmış tek bir eş alın, örnek olarak belge aralığından 198.51.100.25 kullanın. İncelenmiş bir yerel dosya, 42 tutamacından önce dış izin yerleştirebilir:

insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept

Denetimden sonra aileyi, tabloyu, zinciri, tutamacı, giriş arayüzünü ve eşi değiştirin. Örnek, nft 1.0.9 için belgelenen tutamaç-konum biçimini kullanır ve bu bir giriş dosyasına aittir; komut etkileşimli yazıldığında süslü parantezlerin tırnaklanması ayrı bir konudur.

Yapılandırma sahibini net tutun. Kurallarını yeniden oluşturan bir yönetici çalışma zamanı düzenlemesinin üzerine yazabilir ve eski bir tutamacı sabit kodlayan açılış betiği ya başarısız olur ya da yanlış kurala bağlanır.

İzin kapsamlıdır, drop terminaldir

İzin kararı değerlendirmeyi mevcut yolunda bitirir, ancak daha sonra uygulanabilir bir temel zincir paketi yine de drop edebilir. Drop kararı terminaldir. Bu yüzden artan izin sayacı akışın başarılı olduğunun kanıtı değildir.

Tek bir zinciri yalıtılmış incelemek yerine ilgili tüm hook önceliklerini inceleyin. Bir paket input filtresini geçip yine de başka bir tablonun hook'u tarafından farklı bir öncelikte reddedilebilir. Akışı görebilen her temel zinciri listeleyin.

O kural yalnızca dış dinleyici değişimini kapsar. Taşıma kapsüllemeli ESP, yerel ESP, IPv6 eşleri ve tünelin içindeki çözülmüş trafik hepsi kendi politikalarına ihtiyaç duyar. Bu, sitenin tam bir VPN güvenlik duvarı değildir.

Dosyayı denetleyin, sonra canlı sonucu doğrulayın

Uygulamadan önce incelenmiş dosyada sözdizimi ve işlem denetimi çalıştırın. Denetim modu nft'nin değişikliği ayrıştırıp hazırlayıp hazırlayamayacağını bildirir; değişikliği uygulamaz ve başka bir hook'un pakete izin vereceğini kanıtlamaz. Dosya, sahibi uygulayana kadar öneri olarak kalır:

nft -c -f reviewed-vpn-rule.nft

Sahibin kontrollü süreci üzerinden uygulayın ve kurtarma erişimini koruyun. Kural yanlışsa, önüne geçmeye çalıştığınız drop onu düzeltmek için kullandığınız yolu da kesebilir.

Değişiklikten sonra yeni bir izinli eş denemesini gözlemleyin ve onaylanmış eş dışındaki kaynakların hâlâ reddedildiğini denetleyin. Kalıcı kuralı kural kümesine sahip olan yöneticiye taşıyın, çünkü çalışma zamanı tutamaçları geçerli nesneleri bulur, onları önyüklemeler arasında tanımlamaz.

İlgili makaleler