Güvenlik duvarı kurallarını yarıya indir - tcp ve udp için bir iptables kuralı


12

Güvenlik duvarımda şöyle görünen bir dizi iptables kuralı var:

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT

Her adres için biri tcp diğeri udp olmak üzere iki kuralın olması için bir kısayol var mı? Yani böyle bir şey yapabilir miyim:

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT

Yanıtlar:


22

TCP ve UDP paketlerini kabul edecek yeni bir zincir oluşturun ve ayrı IP / bağlantı noktası izin veren kurallarından bu zincire atlayın:

iptables -N ACCEPT_TCP_UDP
iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT
iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT

iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP

Bu, birkaç fazla satır ek yükü ekler, ancak TCP / UDP kurallarının sayısını yarıya indirir.

Ben ediyorum değil ihmal -pyalnızca ICMP için güvenlik duvarı açılıyor, aynı zamanda başka bir protokol değil çünkü, argüman. İptables man sayfasından -p:

Belirtilen protokol, tcp, udp, icmp veya hepsinden biri olabilir veya bu protokollerden birini veya farklı bir protokolü temsil eden sayısal bir değer olabilir. / Etc / protokollerinden bir protokol adına da izin verilir.

Sen TCP, UDP, ICMP ve dışında herhangi protokoller dinleyen olmayabilir şu an , ama kim gelecek ne bilir. Güvenlik duvarını gereksiz yere açık bırakmak kötü bir uygulamadır.

Yasal Uyarı: iptables komutları kafamın üstünde; ATM'yi test etmek için bir kutuya erişimim yok.


Bu, güvenlik duvarını gereksiz yere açık bırakmayan çok zarif bir çözümdür.
Büyük McLargeHuge

4
Ancak, filtreleme hedef bağlantı noktası numarasıyla yapılırsa, bu yeni zincir oluşturma yöntemi başarısız olur. Herkes yukarıda bahsedilen sorunun üstesinden nasıl geleceğini önerebilir mi?
Amor

@Amor Bu örnekte zincirdeki -p alltüm --dportkurallarda kullandıysanız , zone_lan_forwardaradığınız şeyi başarabilir. Tabii ki zincir nedeniyle TCP olmayan bir / UDP protokolü ile bu zinciri almak için başka bir yol olduğunu varsayalım ACCEPT_TCP_UDP. Açıkçası, eğer birden fazla kişi kuralları değiştirme erişimine sahipse ve birisi bu inceliği anlamadan kurallarınızı düzenler ve düzenlerse riskli bir stratejidir.
Samuel Harmer

Hata. Zincirlerin sırasını fark etmedi. Düzgün çalışması için söylediklerim için bu örnekte zincirlerin sırasını da değiştirmeniz gerekir. Böylece ACCEPT_TCP_UDPatlar zone_lan_forwardsonra atlar ACCEPT.
Samuel Harmer

2

ICMP trafiğini gerçekten önemsemiyorsanız (yine de bir kuralla küresel olarak engelleyebilirsiniz), -p bayrağını atlayabilirsiniz ve tüm protokolleri kapsayacaktır.


ICMP trafiğini önemsemeli miyim? Çoğunlukla HTTP erişimi ile ilgileniyorum.
Büyük McLargeHuge

Pek sayılmaz. İsterseniz ICMP'yi (ping) engelleyebilirsiniz, ancak yine de HTTP trafiğini sunduğu için fazla bir nokta yoktur.
Nathan C

@NathanC, OP kurallarını nasıl yarıya indireceğini sorduğunda TÜM bağlantı noktalarını açma tavsiyesinin şimdi veya gelecekte sorun yaratabileceğini düşünüyorum.
Jed Daniels

@JedDaniels -p anahtarı bağlantı noktalarını değil protokolleri belirtir. Aşağıdaki cevabın, tcp & udp dışında herhangi bir şeyi kilitlemeyi düşünmeleri durumunda bir alternatifi vardır.
Nathan C

@NathanC Evet ve -p'yi kaldırmak, "tcp veya udp'yi değil, tüm protokolleri açmak" anlamına gelir;
Jed Daniels
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.