Ubuntu IPTables อนุญาตให้ 1 ประเทศเท่านั้น


10

ดังนั้นฉันจึงได้มองไปรอบ ๆ บนอินเทอร์เน็ตเพื่อหาสคริปต์ที่จะลดทราฟฟิกทั้งหมดไปยังพอร์ตทั้งหมดยกเว้นพอร์ต http (80) และ https (443) จากนั้นอนุญาตเฉพาะทราฟฟิกบนพอร์ตอื่น ๆ ทั้งหมดจากประเทศ x กรณีประเทศ x คือสหรัฐอเมริกา)

ฉันไม่ต้องการเพิ่ม IP ทั้งหมดจากทุกประเทศฉันแค่ต้องการอนุญาตให้ IPS จากประเทศของฉันปิดกั้นการรับส่งข้อมูลอื่น ๆ จากโลกภายนอกเกือบทั้งหมด ไม่มีใครที่อยู่นอกประเทศของฉันควรเข้าถึง ssh, ftp, smtp, ect นอกเหนือจากตัวฉัน หากสิ่งนี้เปลี่ยนไปฉันจะเพิ่มเคสพิเศษเมื่อมันเข้าใกล้

หมายเหตุด้านข้าง

ฉันต้องทราบว่าฉันได้พบคำถามที่มีสคริปต์เพื่อห้าม ip ตามประเทศโดยใช้ตาราง ipแต่นั่นเป็นการแทรกจำนวนมากที่ฉันต้องทำ

สคริปต์ที่ทำเครื่องหมายเป็นคำตอบที่ดีที่สุดจะบล็อกการรับส่งข้อมูลทั้งหมดจาก IP เหล่านั้น ฉันต้องการบล็อกการเข้าถึงพอร์ตทั้งหมดยกเว้น 80 และ 443 เท่านั้น

ปรับปรุง

ด้วยกฎต่อไปนี้

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

ฉันจะสามารถแก้ไขได้และทำสิ่งที่ต้องการ

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

ฉันจะสมมติว่านี่จะอนุญาตให้ IPS จากจีนเข้าถึงพอร์ต 80 และพอร์ต 443 และจะปล่อยส่วนที่เหลือ สมมติฐานนี้จะถูกต้องหรือไม่ ถ้าไม่ทำไมล่ะ

อัปเดต 2

หลังจากที่สับสนรอบ ๆ ฉันพบว่าอูบุนตูเวอร์ชันของฉันไม่ชอบ--dportคุณลักษณะ ดังนั้นแทนที่จะใช้สิ่งที่พวกเราที่ใช้ Ubuntu 14+ (อย่างน้อยฉันมี Ubuntu 14.04, 14.10 และ 15.04 ติดตั้งในเครื่องบางเครื่อง) จะต้องใช้-p PORT_NUMBER_OR_NAME

เพื่อที่จะมีลักษณะ

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

หรือสำหรับทราฟฟิกที่เข้ามา

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

คำตอบ:


7

คุณจะต้องเพิ่มการสนับสนุน iptables สำหรับตำแหน่งทางภูมิศาสตร์ ในการทำเช่นนั้นคุณจะต้องทำตามขั้นตอนเหล่านี้:

# 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

สิ่งนี้จะช่วยให้คุณทำสิ่งต่าง ๆ เช่น:

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

นั่นจะบล็อกการรับส่งข้อมูลไปยังประเทศจีน (CN) ความซับซ้อนของกฎนั้นขึ้นอยู่กับคุณโดยทั่วไปคุณไม่จำเป็นต้องใช้สคริปต์เพียงแค่เขียนกฎที่คุณต้องการใช้จากนั้นใช้iptables-saveเพื่อที่จะถูกโหลดทุกครั้งที่คุณรีบูต


ขอบคุณ! ฉันมีคำถามอื่นฉันอัปเดตคำถามของฉันด้านบนเพื่อสะท้อน คุณจะรู้คำตอบไหม?
Austin Kregel

กฎจะใช้งานได้ แต่คุณต้องเปลี่ยนทิศทางของมันตอนนี้มันเป็นOUTPUTและคุณจะต้องตั้งค่าเป็นINPUTและไม่ใช้--dst-ccแต่--src-ccแทน แต่ถ้าคำถามคือถ้ามันควรทำงานร่วมกับiptablesกฎที่มีอยู่อื่น ๆคำตอบคือใช่
nKn

xt_geoip_dlคำสั่งไม่ทำงานก็ต้องใช้ซิปที่ไม่ได้มีอยู่อีกต่อไป
Martijn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.