กฎไฟร์วอลล์ iptables และ UFW
เขียนกฎไฟร์วอลล์เพื่ออนุญาต ปฏิเสธ และบันทึกการรับส่งข้อมูลด้วย iptables และอินเทอร์เฟซ UFW ที่ใช้งานง่ายกว่า
กฎไฟร์วอลล์ iptables และ UFW เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมไฟร์วอลล์ Linux
Linux กรองการรับส่งข้อมูลเครือข่ายผ่านเฟรมเวิร์กเคอร์เนล netfilter โดย iptables เป็นเครื่องมือแบบพื้นที่ผู้ใช้ดั้งเดิม ส่วน nftables เป็นเครื่องมือรุ่นใหม่ที่มาแทนที่ UFW (Uncomplicated Firewall) เป็นส่วนหน้าที่ทำให้ iptables ใช้งานง่ายขึ้น เหมาะสำหรับเซิร์ฟเวอร์ Ubuntu/Debian
เชนของ iptables
iptables ใช้เชนเพื่อประมวลผลแพ็กเก็ต:
- INPUT — แพ็กเก็ตที่ส่งมายังเครื่องภายในเครื่องนั้น
- OUTPUT — แพ็กเก็ตที่มีต้นทางจากเครื่องนั้น
- FORWARD — แพ็กเก็ตที่ถูกกำหนดเส้นทางผ่านเครื่องนั้น
กฎในแต่ละเชนจะถูกประเมินจากบนลงล่าง โดยใช้กฎแรกที่ตรงเงื่อนไข
นโยบาย iptables เริ่มต้น
นโยบายเริ่มต้นจะมีผลเมื่อไม่มีกฎใดตรงเงื่อนไข ค่าตั้งต้นที่ปลอดภัยคือ:
# Default deny all, allow established connections
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPTกฎ iptables ที่ใช้บ่อย
กฎอนุญาตที่จำเป็น:
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow HTTP/HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Allow from specific IP
iptables -A INPUT -s 10.0.0.5 -j ACCEPT
# List rules
iptables -L -n -v --line-numbersการบันทึกและคงอยู่ของกฎ iptables
โดยค่าเริ่มต้น กฎ iptables จะไม่คงอยู่ถาวรและจะถูกรีเซ็ตเมื่อเริ่มระบบใหม่:
# Debian/Ubuntu:
aptitude install iptables-persistent
netfilter-persistent save
# RHEL/CentOS:
service iptables saveพื้นฐาน UFW
UFW ช่วยให้การจัดการไฟร์วอลล์บน Ubuntu ง่ายขึ้น ขั้นตอนการใช้งานทั่วไป:
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verboseโปรไฟล์แอปพลิเคชันของ UFW
UFW รองรับโปรไฟล์ที่มีชื่อ ซึ่งจะเปิดพอร์ตที่จำเป็นสำหรับแอปพลิเคชัน:
ufw app list
ufw allow "Nginx Full" # opens 80 and 443
ufw allow "OpenSSH"
ufw app info "Nginx Full"การจำกัดอัตราของ UFW
UFW สามารถจำกัดอัตราการเชื่อมต่อเพื่อป้องกันการโจมตีด้วยการเดารหัสผ่าน:
# Allow SSH but rate-limit (max 6 connections per 30 seconds per IP)
ufw limit ssh
# This triggers after 6 connection attempts in 30 secondsการบันทึกเหตุการณ์ไฟร์วอลล์
เปิดใช้การบันทึกเพื่อ ตรวจสอบการรับส่งข้อมูลที่ถูกบล็อก:
ufw logging on
ufw logging medium
# Logs appear in /var/log/ufw.log
tail -f /var/log/ufw.log | grep BLOCKnftables: ทางเลือกสมัยใหม่
nftables เข้ามาแทนที่ iptables ในดิสทริบิวชัน Linux รุ่นใหม่ ใช้ไวยากรณ์ที่สะอาดกว่าและมีประสิทธิภาพดีกว่าสำหรับชุดกฎที่ซับซ้อน:
nft list ruleset
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input dropไฟร์วอลล์แบบติดตามสถานะเทียบกับแบบไร้สถานะ
ไฟร์วอลล์แบบ ติดตามสถานะ จะติดตามสถานะการเชื่อมต่อ (NEW, ESTABLISHED, RELATED) และอนุญาตการตอบกลับของการเชื่อมต่อขาออกโดยอัตโนมัติ ส่วนกฎแบบ ไร้สถานะ จะจับคู่แพ็กเก็ตแต่ละรายการอย่างเป็นอิสระ จึงต้องมีกฎอย่างชัดเจนสำหรับทั้งสองทิศทาง netfilter ของ Linux เป็นแบบติดตามสถานะผ่านโมดูล conntrack
ตรวจสอบความเข้าใจ: กฎไฟร์วอลล์
คำสั่ง UFW ใดกำหนด นโยบายเริ่มต้น ให้บล็อกการเชื่อมต่อขาเข้าทั้งหมด เว้นแต่จะอนุญาตไว้อย่างชัดเจน
ทบทวนบทเรียน
iptables (และ nftables รุ่นใหม่) ควบคุมการกรองแพ็กเก็ตของ Linux ผ่านเชน INPUT/OUTPUT/FORWARD UFW ช่วยให้การทำงานนี้ง่ายขึ้นด้วยโปรไฟล์ที่มีชื่อ การจำกัดอัตรา และการบันทึก นโยบายเริ่มต้นควรเป็น deny incoming ควรอนุญาตการเชื่อมต่อที่สร้างแล้วและการเชื่อมต่อแบบวนกลับเสมอ และควรบันทึกกฎให้คงอยู่หลังการเริ่มระบบใหม่
คำถามที่พบบ่อย
บทเรียน “กฎไฟร์วอลล์ iptables และ UFW” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กฎไฟร์วอลล์ iptables และ UFW” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กฎไฟร์วอลล์ iptables และ UFW”
เขียนกฎไฟร์วอลล์เพื่ออนุญาต ปฏิเสธ และบันทึกการรับส่งข้อมูลด้วย iptables และอินเทอร์เฟซ UFW ที่ใช้งานง่ายกว่า คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “กฎไฟร์วอลล์ iptables และ UFW” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สิทธิ์และความเป็นเจ้าของไฟล์
- การจัดการผู้ใช้และกลุ่ม
- การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์
- กฎไฟร์วอลล์ iptables และ UFW