คู่มือสำหรับผู้เริ่มต้นใช้งาน iptables, Linux Firewall

Aug 27, 2025
ความเป็นส่วนตัวและความปลอดภัย

Iptables เป็นยูทิลิตี้ไฟร์วอลล์ที่มีความยืดหยุ่นสูงซึ่งสร้างขึ้นสำหรับระบบปฏิบัติการ Linux ไม่ว่าคุณจะเป็นมือใหม่ Linux geek หรือผู้ดูแลระบบอาจมีบางวิธีที่ iptables สามารถใช้งานได้ดีสำหรับคุณ อ่านต่อในขณะที่เราแสดงวิธีกำหนดค่าไฟร์วอลล์ Linux ที่หลากหลายที่สุด

เกี่ยวกับ iptables

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

iptables มักจะติดตั้งไว้ล่วงหน้าในการแจกจ่าย Linux ใด ๆ ในการอัปเดต / ติดตั้งเพียงแค่ดึงแพ็คเกจ iptables:

sudo apt-get ติดตั้ง iptables

มีทางเลือก GUI สำหรับ iptables เช่น Firestarter แต่ iptables ไม่ใช่เรื่องยากเมื่อคุณมีคำสั่งไม่กี่คำสั่ง คุณต้องใช้ความระมัดระวังอย่างยิ่งในการกำหนดค่ากฎ iptables โดยเฉพาะอย่างยิ่งหากคุณใช้ SSH ในเซิร์ฟเวอร์เนื่องจากคำสั่งที่ไม่ถูกต้องอาจล็อกคุณอย่างถาวรจนกว่าจะมีการแก้ไขด้วยตนเองที่เครื่องจริง

ประเภทของโซ่

iptables ใช้โซ่ที่แตกต่างกันสามแบบ: อินพุตส่งต่อและเอาต์พุต

อินพุต - ห่วงโซ่นี้ใช้เพื่อควบคุมพฤติกรรมสำหรับการเชื่อมต่อที่เข้ามา ตัวอย่างเช่นหากผู้ใช้พยายาม SSH ในพีซี / เซิร์ฟเวอร์ของคุณ iptables จะพยายามจับคู่ที่อยู่ IP และพอร์ตกับกฎในห่วงโซ่อินพุต

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

มีวิธีหนึ่งที่แน่นอนในการตรวจสอบว่าระบบของคุณใช้ / ต้องการโซ่ส่งต่อหรือไม่

iptables -L -v

ภาพหน้าจอด้านบนเป็นของเซิร์ฟเวอร์ที่ใช้งานมาสองสามสัปดาห์และไม่มีข้อ จำกัด ในการเชื่อมต่อขาเข้าหรือขาออก อย่างที่คุณเห็นสายป้อนได้ประมวลผลแพ็กเก็ต 11GB และสายการส่งออกประมวลผลแล้ว 17GB ในทางกลับกันโซ่ส่งต่อไม่จำเป็นต้องประมวลผลแพ็กเก็ตเดียว เนื่องจากเซิร์ฟเวอร์ไม่ได้ทำการส่งต่อหรือใช้เป็นอุปกรณ์ส่งต่อใด ๆ

เอาต์พุต - โซ่นี้ใช้สำหรับการเชื่อมต่อขาออก ตัวอย่างเช่นหากคุณพยายาม ping howtogeek.com iptables จะตรวจสอบสายการส่งออกเพื่อดูว่ากฎเกี่ยวกับ ping และ howtogeek.com เป็นอย่างไรก่อนที่จะตัดสินใจอนุญาตหรือปฏิเสธการพยายามเชื่อมต่อ

ข้อแม้

แม้ว่าการ ping โฮสต์ภายนอกดูเหมือนจะเป็นสิ่งที่จำเป็นต้องใช้ในการสำรวจสายการส่งออกเท่านั้นโปรดทราบว่าในการส่งคืนข้อมูลจะใช้สายป้อนข้อมูลด้วยเช่นกัน เมื่อใช้ iptables เพื่อล็อกระบบของคุณโปรดจำไว้ว่าโปรโตคอลจำนวนมากจะต้องใช้การสื่อสารสองทางดังนั้นทั้งอินพุทและเอาท์พุตจะต้องได้รับการกำหนดค่าอย่างเหมาะสม SSH เป็นโปรโตคอลทั่วไปที่ผู้คนลืมอนุญาตในเครือข่ายทั้งสอง

พฤติกรรมเริ่มต้นของห่วงโซ่นโยบาย

ก่อนที่จะดำเนินการและกำหนดค่ากฎที่เฉพาะเจาะจงคุณต้องตัดสินใจว่าคุณต้องการให้พฤติกรรมเริ่มต้นของเครือข่ายทั้งสามเป็นอย่างไร กล่าวอีกนัยหนึ่งคือคุณต้องการให้ iptables ทำอย่างไรหากการเชื่อมต่อไม่ตรงกับกฎใด ๆ ที่มีอยู่

หากต้องการดูว่าเครือข่ายนโยบายของคุณได้รับการกำหนดค่าให้ทำอะไรกับการเข้าชมที่ไม่ตรงกันให้เรียกใช้ iptables -L คำสั่ง

อย่างที่คุณเห็นเรายังใช้คำสั่ง grep เพื่อให้ผลลัพธ์ที่สะอาดยิ่งขึ้น ในภาพหน้าจอดังกล่าวขณะนี้เครือข่ายของเราสามารถรองรับการเข้าชมได้

ยิ่งกว่านั้นคุณจะต้องให้ระบบของคุณยอมรับการเชื่อมต่อโดยค่าเริ่มต้น หากคุณไม่เคยเปลี่ยนแปลงกฎของห่วงโซ่นโยบายมาก่อนควรกำหนดค่าการตั้งค่านี้ไว้แล้ว ไม่ว่าจะด้วยวิธีใดนี่คือคำสั่งเพื่อยอมรับการเชื่อมต่อโดยค่าเริ่มต้น:

iptables - การยอมรับอินพุตนโยบาย
iptables - ยอมรับเอาท์พุทนโยบาย
iptables - นโยบายการยอมรับไปข้างหน้า

ตามค่าเริ่มต้นของกฎการยอมรับจากนั้นคุณสามารถใช้ iptables เพื่อปฏิเสธที่อยู่ IP หรือหมายเลขพอร์ตที่เฉพาะเจาะจงได้ในขณะที่ยังคงยอมรับการเชื่อมต่ออื่น ๆ ทั้งหมด เราจะไปถึงคำสั่งเหล่านั้นในไม่กี่นาที

หากคุณต้องการปฏิเสธการเชื่อมต่อทั้งหมดและระบุด้วยตนเองว่าคุณต้องการอนุญาตให้เชื่อมต่อใดคุณควรเปลี่ยนนโยบายเริ่มต้นของเครือข่ายของคุณที่จะลดลง การทำเช่นนี้อาจเป็นประโยชน์สำหรับเซิร์ฟเวอร์ที่มีข้อมูลที่ละเอียดอ่อนและจะมีเพียงที่อยู่ IP เดียวกันเท่านั้นที่เชื่อมต่อกับเซิร์ฟเวอร์เหล่านั้น

iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP

การตอบสนองเฉพาะการเชื่อมต่อ

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

ยอมรับ - อนุญาตการเชื่อมต่อ

วาง - วางการเชื่อมต่อทำเหมือนไม่เคยเกิดขึ้น วิธีนี้ดีที่สุดหากคุณไม่ต้องการให้แหล่งที่มารับรู้ว่าระบบของคุณมีอยู่

ปฏิเสธ - ไม่อนุญาตให้เชื่อมต่อ แต่ส่งข้อผิดพลาดกลับมา วิธีนี้ดีที่สุดหากคุณไม่ต้องการให้แหล่งใดแหล่งหนึ่งเชื่อมต่อกับระบบของคุณ แต่คุณต้องการให้พวกเขารู้ว่าไฟร์วอลล์ของคุณบล็อกพวกเขา

วิธีที่ดีที่สุดในการแสดงความแตกต่างระหว่างกฎทั้งสามนี้คือการแสดงให้เห็นว่ามีลักษณะอย่างไรเมื่อพีซีพยายาม ping เครื่อง Linux ด้วย iptables ที่กำหนดค่าไว้สำหรับการตั้งค่าเหล่านี้แต่ละรายการ

อนุญาตให้เชื่อมต่อ:

การลดการเชื่อมต่อ:

การปฏิเสธการเชื่อมต่อ:

อนุญาตหรือบล็อกการเชื่อมต่อเฉพาะ

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

หมายเหตุ: ในตัวอย่างเหล่านี้เราจะใช้ iptables -A เพื่อผนวกกฎเข้ากับห่วงโซ่ที่มีอยู่ iptables เริ่มต้นที่ด้านบนสุดของรายการและดำเนินการตามกฎแต่ละข้อจนกว่าจะพบกฎที่ตรงกัน หากคุณต้องการแทรกกฎไว้เหนือกฎอื่นคุณสามารถใช้ iptables -I [chain] [number] เพื่อระบุหมายเลขที่ควรอยู่ในรายการ

การเชื่อมต่อจากที่อยู่ IP เดียว

ตัวอย่างนี้แสดงวิธีบล็อกการเชื่อมต่อทั้งหมดจากที่อยู่ IP 10.10.10.10

iptables -A INPUT -s 10.10.10.10 -j DROP

การเชื่อมต่อจากช่วงของที่อยู่ IP

ตัวอย่างนี้แสดงวิธีบล็อกที่อยู่ IP ทั้งหมดในช่วงเครือข่าย 10.10.10.0/24 คุณสามารถใช้ netmask หรือเครื่องหมายทับมาตรฐานเพื่อระบุช่วงของที่อยู่ IP

iptables -A INPUT -s 10.10.10.0/24 -j DROP

หรือ

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

การเชื่อมต่อกับพอร์ตเฉพาะ

ตัวอย่างนี้แสดงวิธีบล็อกการเชื่อมต่อ SSH จาก 10.10.10.10

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

คุณสามารถแทนที่“ ssh” ด้วยโปรโตคอลหรือหมายเลขพอร์ตใดก็ได้ -p tcp ส่วนหนึ่งของรหัสจะบอก iptables ว่าโปรโตคอลใช้การเชื่อมต่อแบบใด หากคุณกำลังบล็อกโปรโตคอลที่ใช้ UDP แทนที่จะเป็น TCP แสดงว่า -p udp จะจำเป็นแทน

ตัวอย่างนี้แสดงวิธีบล็อกการเชื่อมต่อ SSH จากที่อยู่ IP ใด ๆ

iptables -A INPUT -p tcp --dport ssh -j DROP

สถานะการเชื่อมต่อ

ดังที่เราได้กล่าวไว้ก่อนหน้านี้โปรโตคอลจำนวนมากจำเป็นต้องมีการสื่อสารสองทาง ตัวอย่างเช่นหากคุณต้องการอนุญาตการเชื่อมต่อ SSH กับระบบของคุณโซ่อินพุตและเอาต์พุตจะต้องมีการเพิ่มกฎเข้าไป แต่ถ้าคุณต้องการให้ SSH เข้ามาในระบบของคุณเท่านั้นที่จะได้รับอนุญาตล่ะ? การไม่เพิ่มกฎในสายการส่งออกยังอนุญาตให้พยายามส่ง SSH ออกไปด้วยหรือไม่

นั่นคือที่มาของสถานะการเชื่อมต่อซึ่งทำให้คุณมีความสามารถในการอนุญาตการสื่อสารสองทาง แต่อนุญาตให้สร้างการเชื่อมต่อทางเดียวเท่านั้น ดูตัวอย่างนี้ซึ่งอนุญาตให้ใช้การเชื่อมต่อ SSH จาก 10.10.10.10 ได้ แต่การเชื่อมต่อ SSH ถึง 10.10.10.10 ไม่ได้รับอนุญาต อย่างไรก็ตามระบบได้รับอนุญาตให้ส่งข้อมูลย้อนกลับผ่าน SSH ได้ตราบเท่าที่มีการสร้างเซสชันแล้วซึ่งทำให้การสื่อสาร SSH เป็นไปได้ระหว่างสองโฮสต์นี้

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW, ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

กำลังบันทึกการเปลี่ยนแปลง

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

Ubuntu:

sudo / sbin / iptables-save

หมวกแดง / CentOS:

/ sbin / บริการ iptables บันทึก

หรือ

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

คำสั่งอื่น ๆ

แสดงรายการกฎ iptables ที่กำหนดค่าไว้ในปัจจุบัน:

iptables -L

การเพิ่มไฟล์ -ที่ ตัวเลือกจะให้ข้อมูลแพ็คเก็ตและไบต์และการเพิ่ม - น จะแสดงรายการทุกอย่างเป็นตัวเลข กล่าวอีกนัยหนึ่ง - ชื่อโฮสต์โปรโตคอลและเครือข่ายแสดงเป็นตัวเลข

หากต้องการล้างกฎที่กำหนดค่าไว้ทั้งหมดคุณสามารถใช้คำสั่ง flush

iptables -F

Iptables Walkthrough (Linux Firewall)

Introduction To Linux IPTables

Introduction To Linux Firewall

Using `iptables` On Linux

Iptables Firewall Examples (ITS335, L23, Y14)

07 Iptables Firewall Rules

Firewalling In Linux Using IPtables Sp8scorp

Introduction To Linux: #15 - Iptables

Introduction To Iptables

Introduction To IPTables

Linux Firewall Configurations - Intro To Firewalld (RHCE Topic)

Linux Iptables - Configuring And Implementing Linux Iptables - Learn About Ip Values And Ranges #41

Advanced Linux Firewall Config. With Firewalld Rich Rules And IPset - Rich Rules + Ipset

Ubuntu Server 18.04 Administration Guide Part 11 - Configuring Firewall Rules With UFW

Intro To IPTables With Jason

Understand The Security At OS & Network Level | Configure Linux Firewall | DevOps Tutorial | Edureka


ความเป็นส่วนตัวและความปลอดภัย - บทความยอดนิยม

Zoombombing คืออะไรและคุณจะหยุดมันได้อย่างไร?

ความเป็นส่วนตัวและความปลอดภัย Apr 10, 2025

Tada รูปภาพ / Shutterstock ท่ามกลางการแพร่ระบาดทั่วโลกนั่นคือ COV..


วิธีหยุด LinkedIn ไม่ให้บอกคนที่คุณดูโปรไฟล์ของพวกเขา

ความเป็นส่วนตัวและความปลอดภัย Apr 25, 2025

LinkedIn มักจะบอกคนอื่นเมื่อคุณดูโปรไฟล์และแสดงชื่อของคุณ บุคคลนั้น..


HTTPS เกือบทุกที่ เหตุใดอินเทอร์เน็ตจึงไม่ปลอดภัยในขณะนี้

ความเป็นส่วนตัวและความปลอดภัย Nov 30, 2024

ขณะนี้การเข้าชมเว็บส่วนใหญ่ทางออนไลน์ถูกส่งผ่านการเชื่อมต่อ HTT..


Nest หลายตัวป้องกันสัญญาณเตือนควันทำงานร่วมกันอย่างไร

ความเป็นส่วนตัวและความปลอดภัย Aug 17, 2025

เนื้อหาที่ไม่ถูกแคช การมีเครื่องเตือนควันในบ้านเพียงเครื่องเ�..


วิธีถอนการติดตั้งแอพพลิเคชั่นบน Mac: ทุกสิ่งที่คุณต้องรู้

ความเป็นส่วนตัวและความปลอดภัย Mar 31, 2025

การถอนการติดตั้งแอปบน Mac นั้นง่ายมากคุณอาจไม่รู้วิธีการทำด้วยซ�..


เป็นเจ้าของ Registry Key ใน Windows 7

ความเป็นส่วนตัวและความปลอดภัย Oct 26, 2025

เนื้อหาที่ไม่ถูกแคช ก่อนหน้านี้เราได้เขียนเกี่ยวกับวิธีการ ..


วิธีการตั้งค่าเซิร์ฟเวอร์ VPN โดยใช้ DD-WRT Router

ความเป็นส่วนตัวและความปลอดภัย Apr 4, 2025

เราได้กล่าวถึงก่อนหน้านี้ วิธีตั้งค่าเซิร์ฟเวอร์ PPTP VPN โดยใช้ Debian Linux..


ใช้ Word 2007 เป็นเครื่องมือบล็อก

ความเป็นส่วนตัวและความปลอดภัย Sep 26, 2025

เนื้อหาที่ไม่ถูกแคช Microsoft Word เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการเขี�..


หมวดหมู่