Ubuntu IPTable'ları yalnızca 1 ülkeye izin verir


10

Bu nedenle, http (80) ve https (443) bağlantı noktaları dışındaki tüm bağlantı noktalarına tüm trafiği bırakacak bir komut dosyası için etrafa baktım ve sonra yalnızca x ülkesinden diğer tüm bağlantı noktalarında trafiğe izin verdim ( durum ülkesi ABD'dir).

Her ülkeden tüm IP'leri eklemek istemiyorum, sadece ülkemden gelen ips'lere izin vermek ve sonra dış dünyadan neredeyse tüm diğer trafiği engellemek istiyorum. Ülkemin dışında hiç kimse ssh, ftp, smtp, vb. kendimden başka. Eğer bu değişirse, yaklaştığında bunun için özel bir durum ekleyeceğim.

Kenar notu

Ben ip tabloları kullanarak ülkeye ip yasaklamak için bir komut dosyası içeren bir soru buldum dikkat etmeliyim ama bu yapmak zorunda kalacak ekstra ekleme bir sürü.

En iyi yanıt olarak işaretlenen komut dosyası, bu IP'lerden gelen tüm trafiği engeller. Yalnızca 80 ve 443 dışındaki tüm bağlantı noktalarına erişimi engellemek istiyorum.

Güncelleme

Aşağıdaki kural ile,

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

değiştirebilir ve benzer bir şey yapabilir miyim

iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Bu Çin ips 80 ve 443 numaralı bağlantı noktasına erişmek için izin verecek ve geri kalanı düşer varsayalım. Bu varsayım doğru olur mu? Değilse, neden olmasın?

Güncelleme 2

Biraz karışıklıktan sonra Ubuntu versiyonumun bu --dportözelliği sevmediğini fark ettim . Bu yüzden Ubuntu 14+ çalıştıranları kullanmak yerine (en azından, sadece bazı makinelerde Ubuntu 14.04, 14.10 ve 15.04 yüklü) kullanmak zorunda kalacak-p PORT_NUMBER_OR_NAME

Yani bu benziyor

iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT

veya gelen trafik için,

iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT

Yanıtlar:


7

Coğrafi konum için iptables desteğini eklemeniz gerekecektir. Bunu yapmak için şu adımları uygulamanız gerekir:

# apt-get install xtables-addons-common
# mkdir /usr/share/xt_geoip
# apt-get install libtext-csv-xs-perl unzip
# /usr/lib/xtables-addons/xt_geoip_dl
# /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

Bu, aşağıdakileri yapmanızı sağlar:

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Bu, Çin'e (CN) giden trafiği engelleyecektir. Kuralların karmaşıklığı size bağlıdır, temel olarak bir komut dosyasına ihtiyacınız yoktur, sadece uygulamak istediğiniz kuralları not edin ve sonra iptables-saveher yeniden başlattığınızda yüklenecek şekilde kullanın .


Teşekkür ederim! Başka bir sorum daha var, yukarıdaki sorumu yansıtacak şekilde güncelledim. Bunun cevabını biliyor musunuz?
Austin Kregel

Kural işe yarayacaktı, ancak yönünü değiştirmeniz gerekiyor, şimdi öyle OUTPUTve onu INPUTkullanmanız --dst-ccdeğil, --src-cckullanmanız gerekiyor. Ancak soru, mevcut herhangi bir iptableskuralla birlikte çalışması gerekip gerekmediği ise , cevap evettir.
nKn

xt_geoip_dlKomut artık artık doesnt var olduğunu bir zip gerektirir işleri
Martijn
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.