İptables firewall kuralları kullanılırken, neden izin verilen tüm portlarda YENİ durumu belirtiyor?


23

Sık sık tüm paketler İLGİLİ bağlantılara ve belirli servis bağlantı noktalarına YENİ bağlantılara izin verecek şekilde yapılandırılmış iptables görüyorum.

YENİ belirtmenin nedeni nedir? Bir bağlantı YENİ değilse, İLGİLİDİR sanırım, bu nedenle belirli bağlantı noktası kuralı da yürütülmeyecek. Öyleyse neden sadece protokol ve port numarasıyla değil, servis portlarını açıkça YENİ ile tanımlamalısınız?

Yanıtlar:


21

Bir ağ filtresi güvenlik duvarındaki kurallar (iptables) sırayla kontrol edilir ve paketin kaderi (ACCEPT, DROP, REJECT vb.) İlk maç esasına göre belirlenir.

Güvenlik duvarı durumunu ve ilk kuralı -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTyaparak, sunucunuza giden meşru trafiğin büyük çoğunluğu yalnızca bu tek kuralı geçtikten sonra kabul edilir. Bu trafiğin diğer kuralları geçmesi gerekmez.

Kural tabanınızın boyutuna bağlı olarak, bu, güvenlik duvarı performansınızda önemli bir fark anlamına gelebilir.

Güvenlik duvarının şimdi doğrulaması gereken tek trafik açıkça yeni bağlantılar.

Yani, iş istasyonlarından bir avuç web yöneticisine erişime sahip genel bir web sunucusu için güvenlik duvarını karşılaştırın:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -m iprange --src-range 10.9.8.7-10.9.8.10 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Meşru paketlerin kabaca% 99'u yalnızca ilk kurala vuran yerleşik bağlantılara ait olacak. Bu kurala uymayan paketlerden çoğunluğunun web sitenize yeni bağlantılar olması gerekir, çoklu bağlantı modülü tek bir kuralla HTTP veya HTTPS'ye erişim sağlayabilir. Web yöneticileri, ssh ve sftp komutlarını kullanarak sabit adresleri olan birkaç iş istasyonundan oturum açar ve diğer her şey reddedilir.

Kuralların mantıksal olarak TCP port tarafından sıralandığı bir güvenlik duvarı:

-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.7 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.8 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.9 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 22  --source 10.9.8.10 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp  -m tcp --dport 443 -j ACCEPT

Burada , HTTP web sunucunuza her paketin, erişim izni verilmeden önce 5 kuralla kontrol edilmesi gerekir. Ve bir sunucu üzerinde çalışan daha fazla servisle, örneğin fail2ban veya benzer ürünler kullandığınızda kolayca 50 kural veya daha fazlası olabilen.


1
Mükemmel bir cevap (benden +1!) " İlk eşleşme esasına erişime izin verilir " demeniz dışında . İlk eşleşme bir DROP veya REJECT olacaksa, bu erişime izin vermez; Eğer bir LOG ise, daha sonra bir eşleşme bulmaya devam etmeniz gerekir; ve özel zincirler karışırsa işler barok olabilir. Ben " paketin kaderi birinci-eğilim-eşleşme esasına göre belirlenir " demeyi tercih ederim .
MadHatter, 16

5
related/establishedÇizginin bulunduğu durumu yansıtabilir misiniz , ancak sonraki kurallar öne sürülmez NEWmi?
Daniel Widrick

13

NEW Paketin yeni bir bağlantı kurduğu anlamına gelir.

ip_conntrack_*Firewall'ınızı durum bilgili kılan çekirdek modülleri tarafından yönetilir . Durum bilgisi olan güvenlik duvarları trafik akışlarını izleyebilir.

Yalnızca protokol ve bağlantı noktası numarası belirtirseniz, Güvenlik Duvarınız durumlu değil durumsuzdur. Sadece paketleri kısıtladığı veya engellediği anlamına gelir. Bu tür güvenlik duvarları veri akışlarının farkında değildir.

İyi bir örnek FTP'dir: aktif FTP, kontrol kanalı için 21 numaralı bağlantı noktasını kullanır ancak daha sonra veri kanalı için 20 numaralı bağlantı noktasını kullanır. Durum bilgisi olan bir Güvenlik Duvarı durumunda, 20 numaralı bağlantı noktasını açıkça açmanıza gerek yoktur, çünkü 21 numaralı bağlantı noktasında daha önce kurulmuş yeni bir bağlantıyla ilgilidir.

İşte iptablesman sayfasının bir özeti:

YENİ - yani, paketin yeni bir bağlantı başlattığı veya her iki yönde de paket görmemiş bir bağlantıyla ilişkilendirildiği anlamına gelir.

KURULAN - paketin her iki yönde de paketler görmüş bir bağlantıyla ilişkili olduğu anlamına gelir.

İLGİLİ - paketin yeni bir bağlantı başlattığı, ancak FTP veri aktarımı veya bir ICMP hatası gibi mevcut bir bağlantıyla ilişkili olduğu anlamına gelir.


1
Hangi bağlantı noktasını 20 bağlantı noktasını 21 bağlantı noktası ile 'ilişkilendirir'? Açık bir IP bağlantısı başka bir porta aktarılabilir mi?
dronus

nf_conntrack_ftp.ko
mateusza

7
-A INPUT -m tcp -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -DROP

Yukarıdaki kural kümesi, paketlerin geçiş durumu 22 olan TCP bağlantı noktasına 22 izin vermesini INVALIDsağlar.ACCEPT

Geçersiz : Önceki durumlardan hiçbiri geçerli değilse, paket INVALID durumundadır. Bu, çeşitli gizli ağ probu türlerinden kaynaklanabilir veya CONNTRACK girişlerinin (günlüklerinde de belirtilmesi gerektiğini de görmeniz gerekir) tükeniyor olabilir. Veya sadece tamamen iyi huylu olabilir.

/unix/57423/how-to-understand-why-the-packet-was-considered-invalid-by-the-iptables


STATE NEWbelirtilmesi INVALID paketlerinin yanlışlıkla yerleştirilmemesini sağlar.

Ve anlamları netleştirmek için:

  • YENİ : Bu yeni bir Bağlantı
  • KURULDU : Bu mevcut bağlantıya dahil olan bir pakettir
  • İLGİLİ : Bu yeni bir bağlantı, ancak mevcut bir bağlantı tarafından belirlendi
  • GEÇERSİZ : Yukarıdakilerin hiçbiri geçerli değil.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.