การใช้ FirewallD เพื่อจัดการไฟร์วอลล์ของคุณบน CentOS 7

FirewallD เป็นไฟร์วอลล์ที่จัดการแบบไดนามิกที่ให้การสนับสนุนกฎไฟร์วอลล์ IPv4 และ IPv6 และโซนไฟร์วอลล์ที่มีอยู่ในเซิร์ฟเวอร์ที่ใช้ RHEL 7 มันเป็นการแทนที่โดยตรงiptablesและทำงานกับnetfilterรหัสของเคอร์เนล

ในบทความนี้จะกล่าวถึงการจัดการไฟร์วอลล์บน CentOS 7 โดยใช้firewall-cmdคำสั่ง

ตรวจสอบว่า FirewallD ทำงานอยู่หรือไม่

ขั้นตอนแรกคือการตรวจสอบว่ามีการติดตั้งและรัน FirewallD หรือไม่ สิ่งนี้สามารถทำได้systemdโดยการเรียกใช้สิ่งต่อไปนี้:

$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-03-10 15:07:00 UTC; 1min 30s ago
   ...

หรือคุณสามารถตรวจสอบโดยใช้firewall-cmdเครื่องมือ:

$ firewall-cmd --state
running

ผู้จัดการโซน

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

ทุกอย่างเสร็จสิ้นในpublicโซนเริ่มต้นแต่ยังมีโซนอื่นที่กำหนดค่าไว้ล่วงหน้าอีกหลายโซนที่สามารถใช้ได้เช่นกัน

รายชื่อโซนทั้งหมดที่มี

คุณอาจจำเป็นต้องได้รับรายชื่อของโซนทั้งหมดที่มีอยู่ซึ่งมีหลายกล่อง อีกครั้งสามารถทำได้โดยใช้firewall-cmd:

$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work

ตรวจสอบโซนเริ่มต้น

คุณสามารถค้นหาโซนเริ่มต้นที่กำหนดค่าโดยใช้firewall-cmd:

$ firewall-cmd --get-default-zone
public

หากคุณต้องการเปลี่ยนโซนเริ่มต้น (ตัวอย่างเช่นเป็นhome) คุณสามารถทำได้โดยเรียกใช้:

$ firewall-cmd --set-default-zone=home
success

ข้อมูลนี้จะแสดงให้เห็นในไฟล์กำหนดค่าหลัก, /etc/firewalld/firewalld.conf. firewall-cmdแต่ก็ขอแนะนำว่าคุณไม่ได้ด้วยตนเองปรับเปลี่ยนไฟล์นี้และแทนที่จะใช้

��รวจสอบโซนที่กำหนดในปัจจุบัน

คุณสามารถรับรายการของโซนที่คุณได้รับอินเทอร์เฟซที่กำหนดโดยการเรียกใช้:

$ firewall-cmd --get-active-zones
public
  interfaces: eth0

คุณยังสามารถตรวจสอบโซนของอินเทอร์เฟซเดียว ( eth0ในกรณีนี้) โดยเรียกใช้:

$  firewall-cmd --get-zone-of-interface=eth0
public

กำลังสร้างโซน

หากโซนเริ่มต้นที่กำหนดค่าไว้ล่วงหน้าไม่เหมาะสมกับความต้องการของคุณวิธีที่ง่ายที่สุดในการสร้างโซนใหม่ ( zone1) คืออีกครั้งผ่านfirewall-cmd:

$ firewall-cmd --permanent --new-zone=zone1
success

หลังจากสร้างแล้วคุณจะต้องโหลดซ้ำ:

$ firewall-cmd --reload
success

การใช้โซนกับอินเตอร์เฟส

ในการกำหนดอินเทอร์เฟซเครือข่ายให้กับโซนอย่างถาวรคุณสามารถใช้firewall-cmdแม้ว่าจะจำไว้เพื่อรวมการ--permanentตั้งค่าสถานะเพื่อรักษาการเปลี่ยนแปลง หากใช้NetworkManagerคุณควรใช้nmcliการตั้งค่าโซนการเชื่อมต่อด้วย

$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success

รับการกำหนดค่าถาวรของโซน

ในการตรวจสอบการกำหนดค่าถาวรของโซน ( publicในกรณีนี้) รวมถึงอินเทอร์เฟซที่กำหนดบริการที่อนุญาตการตั้งค่าพอร์ตและอื่น ๆ เรียกใช้:

$ firewall-cmd --permanent --zone=public --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

ผู้จัดการบริการ

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

รายชื่อบริการที่มีอยู่

บริการทั่วไปจำนวนหนึ่งได้รับการกำหนดค่าล่วงหน้าภายในไฟร์วอลล์ สามารถแสดงรายการเหล่านี้:

$ firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

นอกจากนี้คุณยังสามารถรับรายการบริการที่เปิดใช้งานสำหรับโซนเริ่มต้น:

$ firewall-cmd --list-services
dhcpv6-client ssh

การเพิ่มบริการลงในโซน

คุณสามารถเปิดใช้งานบริการที่กำหนดสำหรับโซน ( public) อย่างถาวรโดยใช้การ--add-serviceตั้งค่าสถานะ:

$ firewall-cmd --permanent --zone=public --add-service=http
success

จากนั้นโหลดเซสชันไฟร์วอลล์ปัจจุบันอีกครั้ง:

$ firewall-cmd --reload
success

จากนั้นเพื่อยืนยันว่าถูกเพิ่ม:

$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

การลบบริการออกจากโซน

คุณสามารถลบบริการที่กำหนดสำหรับโซน ( public) อย่างถาวรโดยใช้การ--remove-serviceตั้งค่าสถานะ:

$ firewall-cmd --permanent --zone=public --remove-service=http
success

จากนั้นโหลดเซสชันไฟร์วอลล์ปัจจุบันอีกครั้ง:

$ firewall-cmd --reload
success

จากนั้นเพื่อยืนยันว่าถูกเพิ่ม:

$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh

การเพิ่ม / ลบบริการหลายรายการจากโซน

คุณสามารถเพิ่มหรือลบบริการหลาย (ตัวอย่างเช่นhttpและhttps) จากโซนอย่างใดอย่างหนึ่งในเวลาหนึ่งหรือทั้งหมดในครั้งเดียวโดยการตัดชื่อบริการที่ต้องการในวงเล็บปีกกา ( {, }):

$ firewall-cmd --permanent --zone=public --add-service=
success

$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh

การสร้างบริการใหม่

บางครั้งคุณอาจต้องเพิ่มบริการที่กำหนดเองใหม่ - ตัวอย่างเช่นหากคุณเปลี่ยนพอร์ตสำหรับ SSH daemon บริการถูกกำหนดโดยใช้ไฟล์ XML เล็กน้อยโดยมีไฟล์เริ่มต้นที่พบใน/usr/lib/firewalld/services:

$  tree /usr/lib/firewalld/services
/usr/lib/firewalld/services
├── amanda-client.xml
├── bacula-client.xml
├── bacula.xml
├── dhcpv6-client.xml
├── dhcpv6.xml
├── dhcp.xml
├── dns.xml
├── freeipa-ldaps.xml
├── freeipa-ldap.xml
├── freeipa-replication.xml
├── ftp.xml
├── high-availability.xml
├── https.xml
├── http.xml
...

วิธีที่ง่ายที่สุดในการสร้างบริการใหม่คือการคัดลอกหนึ่งในไฟล์บริการที่มีอยู่เหล่านี้และแก้ไขมัน /etc/firewalld/servicesบริการที่กำหนดเองควรอยู่ใน ตัวอย่างเช่นการปรับแต่งบริการ SSH:

$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml

เนื้อหาของไฟล์ที่คัดลอกนี้ควรมีลักษณะดังนี้:

$ cat /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

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

$ nano /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH-Custom</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="1234"/>
</service>

เมื่อบันทึกแล้วคุณจะต้องโหลดไฟร์วอลล์ใหม่จากนั้นคุณสามารถใช้กฎของคุณกับโซนของคุณ:

$ firewall-cmd --reload
success

$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success

การจัดการพอร์ต

นอกเหนือจากการใช้บริการคุณยังสามารถอนุญาตพอร์ตด้วยตนเองโดยใช้โปรโตคอล หากต้องการอนุญาตพอร์ต TCP 7777สำหรับpublicโซน:

$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success

คุณยังสามารถเพิ่มช่วงพอร์ต:

$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success

ในการลบ (และปฏิเสธ) พอร์ต TCP 7777สำหรับpublicโซน:

$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success

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

$ firewall-cmd --zone=public --list-ports
7000-8000/tcp

เปิดใช้งาน FirewallD

เมื่อคุณกำหนดค่าไฟร์วอลล์ตามความชอบของคุณแล้วคุณควรเปิดใช้งานผ่าน systemd เพื่อให้แน่ใจว่าเริ่มต้นเมื่อเริ่มต้น:

$ systemctl enable firewalld

ข้อสรุป

มีการตั้งค่าและตัวเลือกมากมายภายใน FirewallD เช่นการส่งต่อพอร์ตการปลอมแปลงและการสื่อสารกับไฟร์วอลล์ผ่านทาง D-Bus หวังว่าคู่มือนี้จะช่วยให้คุณเข้าใจถึงพื้นฐานและให้เครื่องมือในการเริ่มต้นกับไฟร์วอลล์นอกเซิร์ฟเวอร์ของคุณ การอ่านเพิ่มเติมด้านล่างบางส่วนจะช่วยให้คุณได้รับประโยชน์สูงสุดจากไฟร์วอลล์ของคุณ

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

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

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true