เรียนรู้ Linux ตอนที่ 6 จัดการ Firewall บน Linux Server
สิ่งที่เปลี่ยนไปอีกอย่างใน CentOS 8 เมื่อเทียบกับเวอร์ชันเดิม (5, 6) คือเปลี่ยนมาใช้ firewalld เพื่อช่วยให้การคอนฟิก firewall ในลีนุกซ์ทำได้ง่ายขึ้น โดยมีการจัดแบ่งเป็นโซน (zone) จัดกลุ่มพอร์ต (port) เป็นเซอร์วิส (service) และอื่นๆ
คำสั่งแรกคือให้ทุกคน Start ตัว Firewall ขึ้นมาก่อนด้วยคำสั่ง
#systemctl start firewalld
#firewall-cmd --get-zones → เข้าไปดู Zone ต่างๆ
หรือเราสามารถเข้าไปดูได้ใน Directory ตามนี้เลยครับ
#ls -l /usr/lib/firewalld/zones/
ซึ่งแต่ละโซนทำหน้าที่อะไรบ้างสามารถดูได้ตามนี้เลยครับ
เครดิต https://linuxize.com/post/how-to-setup-a-firewall-with-firewalld-on-centos-7/
ซึ่งเราสามารถดูโซนที่ถูกใช้งาน ณ ปัจจุปันได้ด้วยคำสั่ง
#firewall-cmd --get-active-zones
- โซนไหนที่มี interface เกาะอยู่จะ Active
ถ้าเราอยากรู้ว่า Zone ไหนถูกกำหนดเป็นค่า Default เราสามารถดูได้ด้วยคำสั่ง
#firewall-cmd --get-default-zone
จะเห็นได้ว่า Zone Public จะถูก set เป็นค่าเริ่มต้น
เราสามารถเช็คได้ว่าในตัว Firewalld ว่า Service ไหนบ้างถูก Enable ไว้ ด้วยคำสั่ง
#firewall-cmd --get-services
เราสามารถดูรายละเอียดภายในแต่ละ Zone ด้วยคำสั่ง
#firewall-cmd --list-all --zone=public
หรือเราสามารถดูเฉพาะ Service ใน Zone โดยเจาะจงด้วยคำสั่ง
#firewall-cmd --list-services --zone=public
ถ้าเราต้องการอนุญาติให้คนอื่นเข้ามาที่เครื่อง Server เราตาม Service ต่างๆ
ยกตัวอย่างเช่น ถ้าเรามีตัว Web Server และอยากให้คนอื่นเข้ามาใช้งานได้เราต้องอนุญาติตัว Firewall ก่อน โดยวิธีการทำดังต่อไปนี้
Step 1 : เราต้องเช็คก่อนว่า Web Server เราทำงานแล้วหรือยังด้วยคำสั่ง
#systemctl restart httpd
#systemctl status httpd
Step 2 : การเช็ค Port ของ Web Server ที่เราใช้งานด้วยคำสั่ง
#netstat -tuanp | grep httpd
ถ้าเราทดลองเข้าผ่าน Browser ด้วย http://192.168.10.212/ จะไม่สามารถใช้งานได้เพราะตัว Firewall ยังไม่อนุญาติให้ใครเข้ามาใช้งาน
Step 3 : มาทำการอนุญาติ Firewall ตาม port และ service นั่นๆให้เครื่องอื่นเข้ามาใช้งานได้
#firewall-cmd --zone=public --permanent --add-port=80/tcp
#firewall-cmd --zone=public --permanent --add-service=http
และทำการ Reload 1 รอบด้วยคำสั่ง
#firewall-cmd --reload
Step 4 : ทดลองเข้าใช้งานผ่าน Browser http://192.168.10.212/ เราก็จะสามารถใช้งานได้
ถ้าเราต้องการลบ Firewall ที่เราได้ใส่เข้าไป เราจะทำได้โดยใช้คำสั่ง
#firewall-cmd --zone=public --remove-service=http
#firewall-cmd --zone=public --remove-port=80/tcp
เมื่อลบแล้วเราต้องใส่คำสั่งไปให้ Firewall รับทราบว่าเราต้องการลบออกแล้วนะด้วยคำสั่ง
#firewall-cmd --runtime-to-permanent
ทดลองเข้า Browser http://192.168.10.212/ เราจะไม่สามารถใช้งานได้แล้ว
*ถ้ายังเข้าได้ ให้เราทำกาเปลี่ยน Browser เป็นแบบไม่ระบุตัวต้น เนื่องจาก Browser เดิมมันยังจำ Cacth อยู่