İptables -A ve -I seçeneği arasındaki fark


20

DNS sunucusuna DNS sorgularına izin vermek için iptables yapılandırmaya çalışıyorum (saatlerdir) ve sadece benim iptables kullandığım kural ekleme seçeneği nedeniyle erişimi engellemeye devam etti. Çoğu forum aşağıdakine benzer bir kural önerir:

iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT

Ancak, benim durumumda, çalışması için kuralı bir inserttüre değiştirmek zorunda kaldım :

iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

Bir kuralın ekleme ve diğerinin ekleme için olduğunu ve her iki terimin de ne anlama geldiğini biliyorum, ancak birisi ikisi arasındaki farkı ve aynı zamanda ne zaman kullanılacağını açıklayabilir mi? Nasıl Ubuntu iptables baktı ama orada fazla bilgi görmüyorum.

Yanıtlar:


24

iptables -Akural kümesinin sonuna kurallar eklerken iptables -I, kuralın işaret ettiğiniz gibi kural kümesinde belirli bir konuma ekler.

İptables için adam girişine bakıldığında şunu gösterir:

-I, --insert zinciri [rulenum] kural spesifikasyonu Seçilen zincire verilen kural numarası olarak bir veya daha fazla kural ekleyin. Kural numarası 1 ise kural veya kurallar zincirin başına eklenir. Kural numarası belirtilmezse bu da varsayılan değerdir.

Ve işte -Isizin için çalışıyor ve -Açalışmıyor. Herhangi bir rulenum sağlamazsanız, kuralınız ilk konuma yerleştirilir. Bu durumda, kural kümenizde bir yerde DNS paketlerini yasaklayan bir kural olması gerektiği anlamına gelir (belki UDP'yi yasaklayan bir kural mıdır?) Çünkü iptables ilk kuralları sondan sona kadar tüm kuralları işler, ilk eşleşmeyi ve durdurmaları uygular.
Btw, aynı zamanda çoğu paketle eşleşmesi amaçlanan kuralları en üste koymanızın nedeni de budur: ve en çok kullanılan kuralı ve parametresine koyarsanız, paket çok fazla kaynak tüketebilecek her kurala göre kontrol edilir.

Ve kullanım için: -ASonunda bir kural eklemek istediğinizde veya kuralınızın nerede olacağı önemli olmadığında güvenle kullanabilirsiniz. Kuralınızın belirli bir konumda olmasını istiyorsanız, -Iörneğin şöyle kullanın : iptables -I INPUT 6 -p tcp -j DROP(bu, INPUT kural kümesindeki 6. konumda ana bilgisayara gönderilen tüm tcp paketleri için bir DROP ifadesi ekler.)

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.