โฮมเพจ » ทำอย่างไร » การใช้ Iptables บน Linux

    การใช้ Iptables บน Linux

    คู่มือนี้จะพยายามอธิบายวิธีการใช้ iptables บน linux ในภาษาที่เข้าใจง่าย.

    สารบัญ

    [ซ่อน]

    • 1 ภาพรวม
    • 2 การใช้งาน
      • 2.1 การบล็อกที่อยู่ IP เดียว
      • 2.2 การอนุญาตการรับส่งข้อมูลทั้งหมดจากที่อยู่ IP
      • 2.3 การบล็อกพอร์ตจากที่อยู่ทั้งหมด
      • 2.4 การอนุญาตให้ใช้พอร์ตเดียวจาก IP เดียว
      • 2.5 การดูกฎปัจจุบัน
      • 2.6 การล้างกฎปัจจุบัน
    • 3 การจัดจำหน่ายเฉพาะ
      • 3.1 Gentoo

    ภาพรวม

    Iptables เป็นไฟร์วอลล์ตามกฎซึ่งจะประมวลผลแต่ละกฎตามลำดับจนกว่าจะพบกฎที่ตรงกัน.

    สิ่งที่ต้องทำ: รวมตัวอย่างที่นี่

    การใช้

    โดยทั่วไปแล้วยูทิลิตี้ iptables จะถูกติดตั้งไว้ล่วงหน้าในการแจกจ่าย linux ของคุณ แต่ไม่ได้ใช้กฎใด ๆ คุณจะพบโปรแกรมอรรถประโยชน์ที่นี่ในการกระจายส่วนใหญ่:

    / sbin / iptables

    การบล็อกที่อยู่ IP เดียว

    คุณสามารถบล็อก IP ได้โดยใช้พารามิเตอร์ -s แทนที่ 10.10.10.10 ด้วยที่อยู่ที่คุณพยายามบล็อก คุณจะทราบในตัวอย่างนี้ว่าเราใช้พารามิเตอร์ -I (หรือ - แทรกการทำงานด้วย) แทนการผนวกเพราะเราต้องการให้แน่ใจว่ากฎนี้ปรากฏขึ้นก่อนก่อนที่จะอนุญาตกฎใด ๆ.

    / sbin / iptables -I INPUT -s 10.10.10.10 -j DROP

    การอนุญาตการรับส่งข้อมูลทั้งหมดจากที่อยู่ IP

    คุณสามารถอนุญาตการรับส่งข้อมูลทั้งหมดจากที่อยู่ IP ได้โดยใช้คำสั่งเดียวกับด้านบน แต่แทนที่ DROP ด้วย ACCEPT คุณต้องตรวจสอบให้แน่ใจว่ากฎนี้ปรากฏขึ้นก่อนที่จะถึงกฎ DROP ใด ๆ.

    / sbin / iptables - อินพุต -s 10.10.10.10 -j ได้รับการยอมรับ

    การบล็อกพอร์ตจากที่อยู่ทั้งหมด

    คุณสามารถบล็อกพอร์ตทั้งหมดจากการเข้าถึงผ่านเครือข่ายโดยใช้สวิตช์ -dport และเพิ่มพอร์ตของบริการที่คุณต้องการบล็อก ในตัวอย่างนี้เราจะบล็อกพอร์ต mysql:

    / sbin / iptables -A อินพุต -p tcp - พอร์ต 3306 -j DROP

    การอนุญาตให้ใช้พอร์ตเดียวจาก IP เดียว

    คุณสามารถเพิ่มคำสั่ง -s พร้อมกับคำสั่ง -dport เพื่อ จำกัด กฎต่อไปยังพอร์ตเฉพาะ:

    / sbin / iptables -A อินพุต -p tcp -s 10.10.10.10 - พอร์ต 3306 -j ยอมรับ

    การดูกฎปัจจุบัน

    คุณสามารถดูกฎปัจจุบันโดยใช้คำสั่งต่อไปนี้:

    / sbin / iptables -L

    สิ่งนี้จะให้ผลลัพธ์ที่คล้ายกับต่อไปนี้:

    Chain INPUT (policy ACCEPT) เป้าหมาย prot prot opt ​​ปลายทางต้นทางยอมรับทั้งหมด - 192.168.1.1/24 ทุกที่ยอมรับทั้งหมด - 10.10.10.0/24 ทุกที่ DROP tcp - ทุกที่ทุก tcp dpt: ssh DROP tcp: ทุกที่ทุก tcp dpt: MySQL

    แน่นอนผลลัพธ์ที่ได้จะนานขึ้นอีกเล็กน้อย.

    การล้างกฎปัจจุบัน

    คุณสามารถล้างกฎปัจจุบันทั้งหมดโดยใช้พารามิเตอร์ flush สิ่งนี้มีประโยชน์มากหากคุณจำเป็นต้องวางกฎในลำดับที่ถูกต้องหรือเมื่อคุณทำการทดสอบ.

    / sbin / iptables - ล้างข้อมูล

    จัดจำหน่ายเฉพาะ

    ในขณะที่ลีนุกซ์ส่วนใหญ่มีรูปแบบของ iptables, บางตัวก็มี wrapper ซึ่งทำให้การจัดการง่ายขึ้นเล็กน้อย ส่วนใหญ่มักจะ“ addons” เหล่านี้อยู่ในรูปแบบของสคริปต์เริ่มต้นที่ดูแลการเริ่มต้น iptables เมื่อเริ่มต้นถึงแม้ว่าการแจกแจงบางอย่างยังรวมถึงแอปพลิเคชัน wrapper เต็มเป่าซึ่งพยายามที่จะลดความซับซ้อนของกรณีทั่วไป.

    Gentoo

     iptables สคริปต์เริ่มต้นบน Gentoo สามารถจัดการสถานการณ์ทั่วไปมากมาย สำหรับ starters จะช่วยให้คุณกำหนดค่า iptables ให้โหลดเมื่อเริ่มต้น (โดยปกติคือสิ่งที่คุณต้องการ):

    rc-update เพิ่ม iptables เป็นค่าเริ่มต้น

    เมื่อใช้สคริปต์เริ่มต้นคุณสามารถโหลดและล้างไฟร์วอลล์ด้วยคำสั่งที่จดจำได้ง่าย:

    /etc/init.d/iptables เริ่ม /etc/init.d/iptables หยุด

    สคริปต์ init จัดการกับรายละเอียดของการคงการกำหนดค่าไฟร์วอลล์ปัจจุบันของคุณเมื่อเริ่ม / หยุด ดังนั้นไฟร์วอลล์ของคุณจะอยู่ในสถานะที่คุณทิ้งไว้เสมอ หากคุณต้องการบันทึกกฎใหม่ด้วยตนเองสคริปต์เริ่มต้นสามารถจัดการสิ่งนี้ได้เช่นกัน:

    /etc/init.d/iptables บันทึก

    นอกจากนี้คุณสามารถกู้คืนไฟร์วอลล์ของคุณไปยังสถานะที่บันทึกไว้ก่อนหน้า (สำหรับกรณีที่คุณกำลังทดลองกับกฎและตอนนี้ต้องการคืนค่าการทำงานก่อนหน้านี้):

    /etc/init.d/iptables โหลดซ้ำ

    ในที่สุดสคริปต์ init สามารถทำให้ iptables เข้าสู่โหมด“ ตกใจ” ซึ่งการรับส่งข้อมูลขาเข้าและขาออกทั้งหมดถูกปิดกั้น ฉันไม่แน่ใจว่าทำไมโหมดนี้จึงมีประโยชน์ แต่ไฟร์วอลล์ Linux ทั้งหมดดูเหมือนจะมี.

    /etc/init.d/iptables ตกใจ

    คำเตือน: อย่าเริ่มต้นโหมดตื่นตระหนกหากคุณเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน SSH คุณ จะ ถูกตัดการเชื่อมต่อ! ครั้งเดียวที่คุณควรวาง iptables เข้าสู่โหมดตกใจคือขณะที่คุณอยู่ ทางร่างกาย ด้านหน้าของคอมพิวเตอร์.