ตัวกรองสุทธิ อย่างที่เราทราบกันดีว่าเป็นไฟร์วอลล์ใน Linux ไฟร์วอลล์ เป็น daemon แบบไดนามิกสำหรับจัดการไฟร์วอลล์ด้วยการสนับสนุนโซนเครือข่าย ในเวอร์ชันก่อนหน้านี้ เรเชล & เซ็นโอเอส เราได้ใช้ iptables เป็น daemon สำหรับกรอบการกรองแพ็กเก็ต
ในเวอร์ชันที่ใหม่กว่าของ การแจกแจงตาม RHEL เช่น เฟดอร่า, ร็อคกี้ ลินุกซ์, สตรีม CentOS, AlmaLinux, และ openSUSE – เดอะ iptables อินเทอร์เฟซถูกแทนที่ด้วย ไฟร์วอลล์.
[ คุณอาจชอบ: 10 ไฟร์วอลล์ความปลอดภัยโอเพ่นซอร์สที่มีประโยชน์สำหรับระบบ Linux ]
ขอแนะนำให้เริ่มใช้ ไฟร์วอลล์ แทน iptables เนื่องจากสิ่งนี้อาจหยุดลงในอนาคต อย่างไรก็ตาม, iptables ยังคงรองรับและสามารถติดตั้งได้กับ ยำคำสั่ง. เรารักษาไม่ได้ ไฟร์วอลล์ และ iptables ทั้งที่เป็นระบบเดียวกันซึ่งอาจนำไปสู่ความขัดแย้งได้
ใน iptablesเราเคยกำหนดค่าเป็น ป้อนข้อมูล, เอาต์พุต & ส่งต่อโซ่ แต่ที่นี่ใน ไฟร์วอลล์แนวคิดใช้ โซน. ตามค่าเริ่มต้น มีโซนต่างๆ ให้เลือก ไฟร์วอลล์ซึ่งจะกล่าวถึงในบทความนี้
เดอะ โซนพื้นฐาน ซึ่งเป็นเหมือน โซนสาธารณะ และ โซนส่วนตัว. เพื่อให้สิ่งต่าง ๆ จัดการกับโซนเหล่านี้ เราจำเป็นต้องเพิ่มอินเทอร์เฟซด้วยการสนับสนุนโซนที่ระบุ จากนั้นจึงสามารถเพิ่มบริการต่าง ๆ ให้กับ ไฟร์วอลล์.
ตามค่าเริ่มต้น มีบริการมากมาย หนึ่งในคุณสมบัติที่ดีที่สุดของ ไฟร์วอลล์ คือมันมาพร้อมกับบริการที่กำหนดไว้ล่วงหน้า และเราสามารถนำบริการเหล่านี้มาเป็นตัวอย่างเพื่อเพิ่มบริการของเราได้โดยการคัดลอก
ไฟร์วอลล์ ใช้งานได้ดีกับ IPv4, IPv6, และ สะพานอีเธอร์เน็ต ด้วย. เราสามารถมีการกำหนดค่ารันไทม์และถาวรแยกต่างหากในไฟร์วอลล์
มาเริ่มกันที่วิธีการทำงานกับโซนต่างๆ และสร้างบริการของเราเองและการใช้งานที่น่าตื่นเต้นอีกมากมาย ไฟร์วอลล์ ในลินุกซ์
ระบบปฏิบัติการ: Red Hat Enterprise Linux รีลีส 9.0 (ไถ) ที่อยู่ IP: 192.168.0.159. ชื่อโฮสต์: tecmint-rhel9.
1.ไฟร์วอลล์ แพ็คเกจถูกติดตั้งโดยค่าเริ่มต้นใน เรเชล, เฟดอร่า, ร็อคกี้ ลินุกซ์, สตรีม CentOS, AlmaLinux, และ openSUSE. ถ้าไม่ คุณสามารถติดตั้งได้โดยใช้สิ่งต่อไปนี้ ยำคำสั่ง.
# ยำติดตั้งไฟร์วอลล์d -y.
2. หลังจาก ไฟร์วอลล์ ติดตั้งแพ็คเกจแล้ว ก็ถึงเวลาตรวจสอบว่า iptables บริการกำลังทำงานอยู่หรือไม่ ถ้ากำลังทำงานอยู่ คุณต้องหยุดและกำบัง (ไม่ใช้อีกต่อไป) iptables บริการด้วยคำสั่งด้านล่าง
# iptables สถานะ systemctl # systemctl หยุด iptables # systemctl มาสก์ iptables
3. ก่อนมุ่งหน้าสู่ ไฟร์วอลล์ การกำหนดค่า ฉันต้องการหารือเกี่ยวกับแต่ละโซน ตามค่าเริ่มต้น มีบางโซนที่ใช้งานได้ เราจำเป็นต้องกำหนดอินเทอร์เฟซให้กับโซน โซนกำหนดโซนที่ได้รับความไว้วางใจหรือปฏิเสธในระดับอินเทอร์เฟซเพื่อรับการเชื่อมต่อ โซนสามารถประกอบด้วยบริการและพอร์ต
ที่นี่เราจะอธิบายแต่ละโซนที่มีอยู่ใน ไฟร์วอลล์.
ตอนนี้คุณมีความคิดที่ดีขึ้นเกี่ยวกับโซนแล้ว ตอนนี้มาค้นหาโซนที่มีอยู่และโซนเริ่มต้น และแสดงรายการโซนทั้งหมดโดยใช้คำสั่งต่อไปนี้
# ไฟร์วอลล์ cmd --get-โซน
# firewall-cmd --get-default-zone.
# firewall-cmd --list-all-zones
บันทึก: ผลลัพธ์ของคำสั่งด้านบนจะไม่พอดีกับหน้าเดียวเนื่องจากจะแสดงรายการทุกโซนเช่น block, dmz, drop, external, home, internal, public, trust และ work หากโซนมีกฎที่สมบูรณ์ บริการหรือพอร์ตที่เปิดใช้งานจะแสดงรายการพร้อมกับข้อมูลโซนเหล่านั้นด้วย
4. หากคุณต้องการตั้งค่าโซนเริ่มต้นเป็นโซนภายใน ภายนอก ดรอป ทำงาน หรือโซนอื่นๆ คุณสามารถใช้คำสั่งด้านล่างเพื่อตั้งค่าโซนเริ่มต้น ที่นี่เราใช้ "ภายใน” โซนเป็นค่าเริ่มต้น
# ไฟร์วอลล์ cmd --set-default-zone=internal.
5. หลังจากตั้งค่าโซนแล้ว ให้ตรวจสอบโซนเริ่มต้นโดยใช้คำสั่งด้านล่าง
# firewall-cmd --get-default-zone.
6. นี่คืออินเทอร์เฟซของเรา enp0s3, หากเราต้องการตรวจสอบโซนที่มีขอบเขตของอินเตอร์เฟส เราสามารถใช้คำสั่งด้านล่าง
# firewall-cmd --get-zone-of-interface=enp0s3.
7. คุณลักษณะที่น่าสนใจอีกอย่างหนึ่งของ firewalld คือ ‘ประเภท icmp‘ เป็นหนึ่งในประเภท icmp ที่ไฟร์วอลล์รองรับ ในการรับรายการประเภท icmp ที่รองรับ เราสามารถใช้คำสั่งด้านล่าง
# ไฟร์วอลล์ cmd --get-icmptypes
8. บริการเป็นชุดของกฎที่มีพอร์ตและตัวเลือกที่ใช้โดย ไฟร์วอลล์. บริการที่เปิดใช้งานจะถูกโหลดโดยอัตโนมัติเมื่อ ไฟร์วอลล์ เปิดให้บริการแล้ว
ตามค่าเริ่มต้น บริการต่างๆ จะพร้อมใช้งาน หากต้องการดูรายการบริการที่มีทั้งหมด ให้ใช้คำสั่งต่อไปนี้
# firewall-cmd --get-services.
9. หากต้องการดูรายการบริการเริ่มต้นทั้งหมด ให้ไปที่ไดเร็กทอรีต่อไปนี้ ที่นี่คุณจะได้รับรายการบริการ
# ซีดี /usr/lib/firewalld/services/
10. หากต้องการสร้างบริการของคุณเอง คุณต้องกำหนดไว้ที่ตำแหน่งต่อไปนี้ ตัวอย่างเช่น ที่นี่ฉันต้องการเพิ่มบริการสำหรับ อาร์.ที.เอ็ม ท่าเรือ 1935ก่อนอื่นให้ทำสำเนาของบริการใดบริการหนึ่ง
# ซีดี /etc/firewalld/services/ # cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
จากนั้น, นำทางไปยังตำแหน่งที่ไฟล์บริการของเราถูกคัดลอก, ถัดไปเปลี่ยนชื่อไฟล์ ‘ssh.xml' ถึง 'rtmp.xml‘ ดังแสดงในภาพด้านล่าง.
# ซีดี /etc/firewalld/services/ #mv ssh.xml rtmp.xml # ls -l rtmp.xml
11. เปิดถัดไปและแก้ไขไฟล์เป็น หัวเรื่อง, คำอธิบาย, มาตรการ, และ ท่าเรือ เบอร์ที่เราต้องใช้สำหรับ อาร์.ที.เอ็ม บริการตามภาพด้านล่าง
12. หากต้องการเปิดใช้การเปลี่ยนแปลงเหล่านี้ ให้เริ่มบริการ firewalld ใหม่หรือโหลดการตั้งค่าใหม่
# ไฟร์วอลล์ cmd --reload.
13. เพื่อยืนยันว่ามีการเพิ่มบริการหรือไม่ ให้รันคำสั่งด้านล่างเพื่อดูรายการบริการที่มี
# firewall-cmd --get-services.
14. ที่นี่เราจะดูวิธีจัดการไฟร์วอลล์โดยใช้ ไฟร์วอลล์-cmd สั่งการ. หากต้องการทราบสถานะปัจจุบันของไฟร์วอลล์และโซนที่ใช้งานอยู่ทั้งหมด ให้พิมพ์คำสั่งต่อไปนี้
# ไฟร์วอลล์ cmd --state. # firewall-cmd --get-active-zones
15. เพื่อรับโซนสาธารณะสำหรับอินเทอร์เฟซ enp0s3นี่คืออินเทอร์เฟซเริ่มต้นซึ่งกำหนดไว้ใน /etc/firewalld/firewalld.conf ไฟล์เป็น DefaultZone=สาธารณะ.
เพื่อแสดงรายการบริการที่มีทั้งหมดในโซนอินเทอร์เฟซเริ่มต้นนี้
# firewall-cmd --get-service.
16. ในตัวอย่างข้างต้น เราได้เห็นวิธีสร้างบริการของเราเองด้วยการสร้าง rtmp บริการที่นี่เราจะดูวิธีการเพิ่ม rtmp บริการถึงโซนด้วย
# ไฟร์วอลล์-cmd --add-service=rtmp.
17. หากต้องการลบโซนที่เพิ่ม ให้พิมพ์
# ไฟร์วอลล์ cmd --zone=public --remove-service=rtmp
ขั้นตอนข้างต้นเป็นช่วงเวลาชั่วคราวเท่านั้น เพื่อให้เป็นแบบถาวรเราจำเป็นต้องเรียกใช้คำสั่งด้านล่างพร้อมตัวเลือก -ถาวร.
# ไฟร์วอลล์ cmd --add-service=rtmp --permanent. # ไฟร์วอลล์ cmd --reload.
18. กำหนดกฎสำหรับช่วงแหล่งที่มาของเครือข่ายและเปิดพอร์ตใดพอร์ตหนึ่ง ตัวอย่างเช่น หากคุณต้องการเปิดช่วงเครือข่าย ให้พูดว่า ‘192.168.0.0/24‘ และพอร์ต ‘1935‘ ใช้คำสั่งต่อไปนี้.
# firewall-cmd --permanent --add-source=192.168.0.0/24. # firewall-cmd --permanent --add-port=1935/tcp
ตรวจสอบให้แน่ใจว่าโหลดบริการ firewalld ใหม่หลังจากเพิ่มหรือลบบริการหรือพอร์ตใดๆ
# firewall-cmd --reload # firewall-cmd --list-ทั้งหมด
19. ถ้าฉันต้องการอนุญาตบริการเช่น http, https, vnc-server และ PostgreSQL ฉันจะใช้กฎต่อไปนี้ ขั้นแรก ให้เพิ่มกฎและทำให้เป็นกฎถาวร จากนั้นโหลดกฎใหม่และตรวจสอบสถานะ
# firewall-cmd --add-rich-rule 'rule family="ipv4" ที่อยู่แหล่งที่มา="192.168.0.0/24" service name="http" ยอมรับ' # firewall-cmd --add-rich-rule 'rule family แหล่งที่มา = "ipv4" ที่อยู่ = "192.168.0.0/24" ชื่อบริการ = "http" ยอมรับ ' --permanent # firewall-cmd --add-rich-rule 'rule family = "ipv4" ที่อยู่ต้นทาง = "192.168.0.0/24" ชื่อบริการ ="https" ยอมรับ' # firewall-cmd --add-rich-rule 'rule family="ipv4" ที่อยู่ต้นทาง = "192.168.0.0/24" ชื่อบริการ = "https" ยอมรับ ' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" ที่อยู่ต้นทาง = "192.168.0.0/24" ชื่อบริการ = "เซิร์ฟเวอร์ vnc" ยอมรับ' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" ยอมรับ' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" ที่อยู่ต้นทาง = "192.168.0.0/24" ชื่อบริการ = "postgresql" ยอมรับ' # firewall-cmd --add-rich-rule 'rule family="ipv4" ที่อยู่ต้นทาง = "192.168.0.0/24" ชื่อบริการ = "postgresql" ยอมรับ ' --permanent.
ตอนนี้ช่วงเครือข่าย 192.168.0.0/24 สามารถใช้บริการข้างต้นจากเซิร์ฟเวอร์ของฉัน ทางเลือก -ถาวร ใช้ได้กับทุกกฎ แต่เราต้องกำหนดกฎและตรวจสอบกับการเข้าถึงของไคลเอนต์ หลังจากนั้นเราต้องทำให้ถาวร
20. หลังจากเพิ่มกฎข้างต้นแล้ว อย่าลืมโหลดกฎไฟร์วอลล์ใหม่และแสดงรายการกฎโดยใช้:
# ไฟร์วอลล์ cmd --reload. # ไฟร์วอลล์ cmd --list-all.
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ Firewalld
#คนไฟร์วอลล์
เท่านี้เราก็ได้เห็นวิธีตั้งค่าแล้ว ตัวกรองสุทธิ โดยใช้ ไฟร์วอลล์ ในการแจกแจงตาม RHEL เช่น เฟดอร่า, ร็อคกี้ ลินุกซ์, สตรีม CentOS, AlmaLinux, และ openSUSE.
ตัวกรองสุทธิ เป็นเฟรมเวิร์กสำหรับไฟร์วอลล์สำหรับการแจกจ่าย Linux แต่ละตัวและทุกตัว กลับเข้ามาทุกๆ เรเชล และ เซ็นโอเอส ฉบับที่เราใช้ iptables แต่ในเวอร์ชันที่ใหม่กว่า พวกเขาได้แนะนำ ไฟร์วอลล์. ง่ายต่อการเข้าใจและใช้ไฟร์วอลล์ หวังว่าคุณจะสนุกกับการเขียน