0Pricing
Linux Server Deployment & SSH Mastery · บทเรียน

กฎไฟร์วอลล์ขั้นสูง (IPTables)

เชี่ยวชาญการใช้ IPTables เพื่อสร้างกฎไฟร์วอลล์แบบซับซ้อนและติดตามสถานะ ใช้การแปลงที่อยู่เครือข่าย (NAT) และปกป้องเซิร์ฟเวอร์จากการโจมตีที่ซับซ้อน

กฎไฟร์วอลล์ขั้นสูง (IPTables) เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

เจาะลึก IPTables

IPTables คือไฟร์วอลล์ในตัวอันทรงพลังของ Linux แม้เราจะได้เห็นพื้นฐานไปแล้ว แต่ยังมีฟีเจอร์ขั้นสูงสำหรับควบคุมได้อย่างแม่นยำ

บทเรียนนี้จะสอนกฎที่ซับซ้อน การกรองแบบติดตามสถานะ และการแปลที่อยู่เครือข่าย (NAT) เพื่อรักษาความปลอดภัยและจัดการเครือข่ายของเซิร์ฟเวอร์อย่างแท้จริง

ทำความเข้าใจตารางและสายโซ่

IPTables จัดระเบียบกฎไว้ในตาราง โดยแต่ละตารางมีจุดประสงค์เฉพาะ ภายในตารางจะมีสายโซ่ ซึ่งเป็นรายการกฎที่ประเมินตามลำดับ

  • ตาราง filter: ตารางเริ่มต้นที่ใช้กรอง (บล็อกหรืออนุญาต) แพ็กเก็ต ประกอบด้วยสายโซ่ INPUT, OUTPUT, FORWARD
  • ตาราง nat: ใช้สำหรับการแปลที่อยู่เครือข่าย (NAT) ประกอบด้วยสายโซ่ PREROUTING, POSTROUTING, OUTPUT
  • ตารางอื่น ๆ เช่น mangle และ raw มีไว้สำหรับแก้ไขแพ็กเก็ตเฉพาะทาง

เปิดเผยการทำงานของไฟร์วอลล์แบบติดตามสถานะ

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

สถานะการเชื่อมต่อที่สำคัญ

  • NEW: แพ็กเก็ตแรกของการเชื่อมต่อใหม่
  • ESTABLISHED: แพ็กเก็ตที่เป็นส่วนหนึ่งของการเชื่อมต่อที่มีอยู่และกำลังทำงาน
  • RELATED: แพ็กเก็ตที่เริ่มการเชื่อมต่อใหม่ซึ่งเกี่ยวข้องกับการเชื่อมต่อที่มีอยู่ (เช่น การถ่ายโอนข้อมูลผ่าน FTP)

นำกฎแบบติดตามสถานะไปใช้

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

กฎนี้อนุญาตแพ็กเก็ตขาเข้าทั้งหมดที่เป็นส่วนหนึ่งของการเชื่อมต่อที่สร้างขึ้นแล้วหรือเกี่ยวข้องกัน

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

สร้างตรรกะของกฎที่ซับซ้อน

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

ตัวอย่าง: อนุญาต SSH (พอร์ต 22) จากซับเน็ตที่ระบุ (192.168.1.0/24) เฉพาะการเชื่อมต่อใหม่

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m state --state NEW -j ACCEPT

แนะนำการแปลที่อยู่เครือข่าย

การแปลที่อยู่เครือข่าย (NAT)จะปรับเปลี่ยนข้อมูลที่อยู่เครือข่ายในส่วนหัว IP ของแพ็กเก็ตขณะที่แพ็กเก็ตกำลังถูกส่งผ่าน ซึ่งมีความสำคัญสำหรับ

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

มีสองประเภทหลัก ได้แก่ Source NAT (SNAT) และ Destination NAT (DNAT)

ใช้ SNAT สำหรับการเชื่อมต่อขาออก

Source NAT (SNAT)จะเปลี่ยนที่อยู่ IP ต้นทางของแพ็กเก็ต โดยทั่วไปใช้เมื่อเซิร์ฟเวอร์ภายในต้องเข้าถึงอินเทอร์เน็ตผ่านเซิร์ฟเวอร์เกตเวย์ที่มี IP สาธารณะ

การพรางที่อยู่เป็นรูปแบบหนึ่งของ SNAT ซึ่งใช้ที่อยู่ IP ของอินเทอร์เฟซขาออกเป็น IP ต้นทางโดยอัตโนมัติ เหมาะสำหรับที่อยู่ IP แบบไดนามิก

ตัวอย่าง: อนุญาตให้เครือข่ายภายใน 192.168.0.0/24 เข้าถึงอินเทอร์เน็ตผ่าน eth0

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

DNAT สำหรับบริการขาเข้า

Destination NAT (DNAT) ใช้เปลี่ยนที่อยู่ IP ปลายทางของแพ็กเก็ต เหมาะอย่างยิ่งสำหรับ การส่งต่อพอร์ต ซึ่งทำให้บริการที่ทำงานอยู่บนเซิร์ฟเวอร์ภายในสามารถเข้าถึงได้จากอินเทอร์เน็ตผ่าน IP สาธารณะของเซิร์ฟเวอร์เกตเวย์

ตัวอย่าง: ส่งต่อคำขอเว็บขาเข้า (พอร์ต 80) บน eth0 ไปยังเซิร์ฟเวอร์เว็บภายในที่ 192.168.1.100

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

การป้องกันการโจมตีแบบเดารหัสผ่าน

IPTables ช่วยป้องกันการโจมตีทั่วไป เช่น ความพยายามเข้าสู่ระบบแบบเดารหัสผ่าน (เช่น SSH) ได้ โดยจำกัดอัตราการยอมรับการเชื่อมต่อใหม่จาก IP ต้นทาง

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

ตัวอย่าง: จำกัดการเชื่อมต่อ SSH ใหม่ไว้ที่ 3 ครั้งต่อนาที โดยอนุญาตให้มีการเชื่อมต่อชุดแรก 3 ครั้ง จากนั้นทิ้งการเชื่อมต่ออื่น ๆ

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/minute --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

ตรรกะของกฎ IPTables

ลองพิจารณาเซิร์ฟเวอร์ที่ทำหน้าที่เป็นเกตเวย์ เซิร์ฟเวอร์นี้มีอินเทอร์เฟซสาธารณะ eth0 และอินเทอร์เฟซภายใน eth1 (เชื่อมต่อกับ 192.168.1.0/24)

คำสั่ง IPTables ใดที่จะทำให้เซิร์ฟเวอร์เว็บภายในที่ 192.168.1.50 สามารถเข้าถึงได้จากอินเทอร์เน็ตผ่านพอร์ต 80

สรุปการใช้งาน IPTables ขั้นสูง

ยินดีด้วยครับ คุณได้เรียนรู้แนวคิดขั้นสูงของ IPTables แล้ว:

  • ไฟร์วอลล์แบบติดตามสถานะ ด้วยสถานะ ESTABLISHED, RELATED และ NEW
  • การสร้าง กฎที่ซับซ้อน ด้วยการรวมเกณฑ์การจับคู่หลายรายการ
  • การใช้ การแปลที่อยู่เครือข่าย (NAT) กับการรับส่งข้อมูลทั้งขาออก (SNAT/การทำ Masquerade) และขาเข้า (DNAT/การส่งต่อพอร์ต)
  • การใช้โมดูล limit เพื่อ ป้องกันการโจมตี เบื้องต้น

ทักษะเหล่านี้สำคัญอย่างยิ่งต่อการสร้างสภาพแวดล้อมเซิร์ฟเวอร์ Linux ที่แข็งแกร่งและปลอดภัย โปรดอย่าลืมบันทึกกฎ IPTables หลังแก้ไข เนื่องจากกฎเหล่านี้จะไม่คงอยู่โดยค่าเริ่มต้น

คำถามที่พบบ่อย

บทเรียน “กฎไฟร์วอลล์ขั้นสูง (IPTables)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กฎไฟร์วอลล์ขั้นสูง (IPTables)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กฎไฟร์วอลล์ขั้นสูง (IPTables)”

เชี่ยวชาญการใช้ IPTables เพื่อสร้างกฎไฟร์วอลล์แบบซับซ้อนและติดตามสถานะ ใช้การแปลงที่อยู่เครือข่าย (NAT) และปกป้องเซิร์ฟเวอร์จากการโจมตีที่ซับซ้อน คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “กฎไฟร์วอลล์ขั้นสูง (IPTables)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตรวจสอบความปลอดภัยเซิร์ฟเวอร์
  2. กฎไฟร์วอลล์ขั้นสูง (IPTables)
  3. การตรวจจับและป้องกันการบุกรุก
  4. การบันทึกแบบรวมศูนย์และการผสานรวม SIEM
← กลับไปที่ Linux Server Deployment & SSH Mastery