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