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.