ค้นหาเว็บไซต์

กฎ 'FirewallD' ที่เป็นประโยชน์ในการกำหนดค่าและจัดการไฟร์วอลล์ใน Linux


ไฟร์วอลล์ให้วิธีกำหนดค่ากฎไฟร์วอลล์แบบไดนามิกใน Linux ที่สามารถใช้งานได้ทันที โดยไม่จำเป็นต้องรีสตาร์ทไฟร์วอลล์ และยังสนับสนุนแนวคิด D-BUS และโซนซึ่งทำให้การกำหนดค่าทำได้ง่าย

ไฟร์วอลล์ เข้ามาแทนที่กลไกไฟร์วอลล์ของ Fedora ตัวเก่า (Fedora 18 เป็นต้นไป) กลไก RHEL/CentOS 7 และการกระจายล่าสุดอื่นๆ อาศัย กลไกใหม่นี้ แรงจูงใจที่ใหญ่ที่สุดประการหนึ่งของการแนะนำระบบไฟร์วอลล์ใหม่คือไฟร์วอลล์เก่าจำเป็นต้องรีสตาร์ทหลังจากทำการเปลี่ยนแปลงแต่ละครั้ง ซึ่งจะทำให้การเชื่อมต่อที่ใช้งานอยู่ทั้งหมดเสียหาย ตามที่กล่าวไว้ข้างต้น ไฟร์วอลล์ล่าสุดรองรับโซนไดนามิกซึ่งมีประโยชน์ในการกำหนดค่าชุดโซนและกฎต่างๆ สำหรับสำนักงานหรือเครือข่ายในบ้านของคุณผ่านทางบรรทัดคำสั่งหรือใช้วิธี GUI

ในตอนแรก แนวคิดไฟร์วอลล์ดูกำหนดค่าได้ยากมาก แต่บริการและโซนช่วยให้ง่ายขึ้นโดยการรวมทั้งสองอย่างไว้ด้วยกันดังที่กล่าวถึงในบทความนี้

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

  1. การกำหนดค่าไฟร์วอลล์ใน RHEL/CentOS 7

ตัวอย่างทั้งหมดที่กล่าวถึงในบทความนี้ได้รับการทดสอบในทางปฏิบัติบนการกระจาย CentOS 7 และยังใช้ได้กับการกระจาย RHEL และ Fedora อีกด้วย

ก่อนที่จะใช้กฎไฟร์วอลล์ โปรดตรวจสอบก่อนว่าบริการไฟร์วอลล์เปิดใช้งานและทำงานอยู่หรือไม่

systemctl status firewalld

ภาพด้านบนแสดงว่า firewalld กำลังทำงานอยู่ ถึงเวลาตรวจสอบโซนและบริการที่ใช้งานอยู่ทั้งหมดแล้ว

firewall-cmd --get-active-zones
firewall-cmd --get-services

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

yum install firewalld firewall-config

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

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

firewall-cmd --zone=public --list-all

ในภาพด้านบน ยังไม่มีการเพิ่มกฎที่ใช้งานอยู่ มาดูวิธีเพิ่ม ลบ และแก้ไขกฎในส่วนที่เหลือของบทความนี้….

1. การเพิ่มและการลบพอร์ตใน Firewalld

หากต้องการเปิดพอร์ตใด ๆ สำหรับโซนสาธารณะ ให้ใช้คำสั่งต่อไปนี้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะเปิดพอร์ต 80 สำหรับโซนสาธารณะ

firewall-cmd --permanent --zone=public --add-port=80/tcp

ในทำนองเดียวกัน หากต้องการลบพอร์ตที่เพิ่ม เพียงใช้ตัวเลือก '–remove' พร้อมด้วยคำสั่ง firewalld ดังที่แสดงด้านล่าง

firewall-cmd --zone=public --remove-port=80/tcp

หลังจากเพิ่มหรือลบพอร์ตเฉพาะ ตรวจสอบให้แน่ใจว่าได้เพิ่มหรือลบพอร์ตโดยใช้ตัวเลือก '–list-ports'

firewall-cmd --zone=public --list-ports

2. การเพิ่มและการลบบริการในไฟร์วอลล์

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

ตัวอย่างเช่น คำสั่งต่อไปนี้จะช่วยให้คุณเพิ่มหรือลบบริการเฉพาะได้ เช่นเดียวกับที่เราทำกับ FTP ในตัวอย่างนี้

firewall-cmd --zone=public --add-service=ftp
firewall-cmd --zone=public --remove-service=ftp
firewall-cmd --zone=public --list-services

3. บล็อกแพ็คเก็ตขาเข้าและขาออก (โหมดตื่นตระหนก)

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

firewall-cmd --panic-on

หลังจากเปิดใช้งานโหมดตกใจแล้ว ให้ลองส่ง Ping ไปที่โดเมนใดก็ได้ (เช่น google.com) และตรวจสอบว่าโหมดตกใจ เปิด โดยใช้ '–query-panic >' ตัวเลือกตามรายการด้านล่าง

ping google.com -c 1
firewall-cmd --query-panic

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

firewall-cmd --query-panic
firewall-cmd --panic-off
ping google.com -c 1

ตอนนี้คราวนี้จะมีการขอ Ping จาก google.com ครับ..