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

วิธีเปิดพอร์ตสำหรับที่อยู่ IP เฉพาะใน Firewalld


ฉันจะอนุญาตการรับส่งข้อมูลจากที่อยู่ IP เฉพาะในเครือข่ายส่วนตัวของฉันหรืออนุญาตการรับส่งข้อมูลจากเครือข่ายส่วนตัวเฉพาะผ่าน ไฟร์วอลล์ ไปยังพอร์ตหรือบริการเฉพาะบน Red Hat Enterprise Linux (RHEL) หรือ CentOS เซิร์ฟเวอร์?

ในบทความสั้นๆ นี้ คุณจะได้เรียนรู้วิธีเปิดพอร์ตสำหรับที่อยู่ IP หรือช่วงเครือข่ายเฉพาะในเซิร์ฟเวอร์ RHEL หรือ CentOS ที่ใช้ไฟร์วอลล์ ไฟร์วอลล์

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

เปิดพอร์ตสำหรับที่อยู่ IP เฉพาะใน Firewalld

ขั้นแรกให้สร้างชื่อโซนที่เหมาะสม (ในกรณีของเรา เราได้ใช้ mariadb-access เพื่ออนุญาตการเข้าถึงเซิร์ฟเวอร์ฐานข้อมูล MySQL)

firewall-cmd --new-zone=mariadb-access --permanent

จากนั้น โหลดการตั้งค่า ไฟร์วอลล์ อีกครั้งเพื่อใช้การเปลี่ยนแปลงใหม่ หากคุณข้ามขั้นตอนนี้ คุณอาจได้รับข้อผิดพลาดเมื่อคุณพยายามใช้ชื่อโซนใหม่ คราวนี้ โซนใหม่ควรปรากฏในรายการโซนตามที่ไฮไลต์ในภาพหน้าจอต่อไปนี้

firewall-cmd --reload
firewall-cmd --get-zones

จากนั้น เพิ่มที่อยู่ IP ต้นทาง (10.24.96.5/20) และพอร์ต (3306) ที่คุณต้องการเปิดบนเซิร์ฟเวอร์ภายในเครื่องดังที่แสดง จากนั้นโหลดการตั้งค่าไฟร์วอลล์ใหม่เพื่อใช้การเปลี่ยนแปลงใหม่

firewall-cmd --zone=mariadb-access --add-source=10.24.96.5/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp  --permanent
firewall-cmd --reload

หรือคุณสามารถอนุญาตการรับส่งข้อมูลจากเครือข่ายทั้งหมด (10.24.96.0/20) ไปยังบริการหรือพอร์ต

firewall-cmd --zone=mariadb-access --add-source=10.24.96.0/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent
firewall-cmd --reload

เพื่อยืนยันว่าโซนใหม่มีการตั้งค่าที่จำเป็นตามที่เพิ่มไว้ข้างต้น ให้ตรวจสอบรายละเอียดด้วยคำสั่งต่อไปนี้

firewall-cmd --zone=mariadb-access --list-all 

ลบพอร์ตและโซนออกจาก Firewalld

คุณสามารถลบที่อยู่ IP ต้นทางหรือเครือข่ายได้ตามที่แสดง

firewall-cmd --zone=mariadb-access --remove-source=10.24.96.5/20 --permanent
firewall-cmd --reload

หากต้องการลบพอร์ตออกจากโซน ให้ออกคำสั่งต่อไปนี้ และโหลดการตั้งค่าไฟร์วอลล์ใหม่:

firewall-cmd --zone=mariadb-access --remove-port=3306/tcp --permanent
firewall-cmd --reload

หากต้องการลบโซน ให้รันคำสั่งต่อไปนี้ และโหลดการตั้งค่าไฟร์วอลล์ใหม่:

firewall-cmd --permanent --delete-zone=mariadb-access
firewall-cmd --reload

สุดท้ายแต่ไม่ใช่รายการ คุณยังสามารถใช้กฎแบบสมบูรณ์ของไฟร์วอลล์ได้ นี่คือตัวอย่าง:

firewall-cmd --permanent –zone=mariadb-access --add-rich-rule='rule family="ipv4" source address="10.24.96.5/20" port protocol="tcp" port="3306" accept'

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