เปิดใช้งาน iptables บนอินเทอร์เฟซเดียว


16

ฉันต้องการ iptables เพื่อกรองเพียงหนึ่งอินเตอร์เฟส eth0 ซึ่งหันหน้าไปทาง WAN สิ่งนี้สามารถทำได้? และฉันต้องการเปิดพอร์ต ftp และ ssh บน eth0


โปรดอ่าน iptables man pages - หรือในกรณีที่ฉันเข้าใจผิดปัญหาของคุณโปรดตั้งคำถามให้เจาะจงยิ่งขึ้น
Jari Jokinen

คำตอบ:


25

ดังนั้นสำหรับอินเทอร์เฟซทั้งหมด แต่อย่างใดอย่างหนึ่งที่คุณต้องการยอมรับการรับส่งข้อมูลทั้งหมดและบน eth0 คุณต้องการปล่อยทราฟฟิกที่เข้ามาทั้งหมดยกเว้น ftp และ ssh

ก่อนอื่นเราสามารถกำหนดนโยบายให้ยอมรับปริมาณการใช้งานทั้งหมดโดยค่าเริ่มต้น

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

จากนั้นเราสามารถรีเซ็ตกฎไฟร์วอลล์ของคุณ

iptables -F

ตอนนี้เราสามารถพูดได้ว่าเราต้องการอนุญาตการรับส่งข้อมูลขาเข้าบน eth0 ซึ่งเป็นส่วนหนึ่งของการเชื่อมต่อที่เราอนุญาตแล้ว

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

นอกจากนี้เราต้องการอนุญาตการเชื่อมต่อ ssh ขาเข้าบน eth0

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

แต่สิ่งใดก็ตามที่เข้ามาใน eth0 ควรถูกทิ้งไว้

iptables -A INPUT -i eth0 -j DROP

สำหรับความลึกที่มากกว่าเล็กน้อยดูรายการ wiki CentOSนี้

FTP เป็น trickier กว่า SSH เพราะมันสามารถใช้พอร์ตแบบสุ่มเพื่อดูคำถามก่อนหน้านี้


5
คำเตือน!!! ทำ "iptables -P ... " ก่อน "iptables -F" หากคุณตั้งกฎปัจจุบันให้ลดปริมาณการใช้งานการเรียกใช้ -F จะล็อคคุณออกจากกล่องของคุณ นี่คือเหตุผลที่ทำให้นโยบายเริ่มต้นการอนุญาตและการเพิ่มกฎเพื่อปล่อยการรับส่งข้อมูลอื่น ๆ ทั้งหมดเป็นการปฏิบัติที่ดีที่สุด
Coops

8

สิ่งนี้ควรทำงาน:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT

1
จุดที่ค่อนข้างสวย (แม้ว่าอาจจะดีกว่า "Drop EVERYTHING" บนอินเตอร์เฟส WAN ใช่มั้ย) - เขียนกฎเพื่อกรองอินเตอร์เฟสที่คุณต้องการกรองและACCEPTทุกอย่างในอินเทอร์เฟซอื่น
voretaq7


4

มันง่ายมากเมื่อคุณสร้างiptablesกฎจากนั้นคุณต้องระบุส่วนต่อประสาน ตัวเลือกในการระบุการ์ด LAN ที่iptablesควรใช้คือ-i

กฎต่อไปนี้เป็นตัวอย่างที่ดีให้กับคุณ

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset 

กฎข้อสุดท้ายคือการปฏิเสธแพ็กเก็ตอื่นที่ไม่ตรงกับกฎ 2 ข้อแรก กฎทั้งหมดiptablesจะถูกดำเนินการตามลำดับที่กำหนดดังนั้นกฎในการปฏิเสธแพ็กเก็ตจะเป็นกฎสุดท้ายเสมอ

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