ดังนั้นฉันจึงได้มองไปรอบ ๆ บนอินเทอร์เน็ตเพื่อหาสคริปต์ที่จะลดทราฟฟิกทั้งหมดไปยังพอร์ตทั้งหมดยกเว้นพอร์ต 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