Rsyslog
สารบัญ:
- ข้อกำหนดเบื้องต้น
- แนวคิดไฟร์วอลล์พื้นฐาน
- โซนไฟร์วอลล์
- บริการไฟร์วอลล์
- Firewalld Runtime และการตั้งค่าถาวร
- การติดตั้งและเปิดใช้งาน FirewallD
- การทำงานกับ Firewalld Zones
- การเปลี่ยนโซนของอินเทอร์เฟซ
- การเปลี่ยนโซนเริ่มต้น
- การเปิดพอร์ตหรือบริการ
- การสร้างบริการ FirewallD ใหม่
- การส่งต่อพอร์ตด้วยไฟร์วอลล์
- การสร้าง Ruleset ด้วย FirewallD
- ข้อสรุป
ไฟร์วอลล์ที่ตั้งค่าไว้อย่างเหมาะสมเป็นหนึ่งในส่วนที่สำคัญที่สุดของความปลอดภัยของระบบโดยรวม
FirewallD เป็นโซลูชั่นไฟร์วอลล์ที่สมบูรณ์ที่จัดการกฎ iptables ของระบบและจัดให้มีอินเตอร์เฟส D-Bus สำหรับการใช้งาน เริ่มต้นด้วย CentOS 7, FirewallD จะแทนที่ iptables เป็นเครื่องมือจัดการไฟร์วอลล์เริ่มต้น
ในบทช่วยสอนนี้เราจะแสดงวิธีตั้งค่าไฟร์วอลล์ด้วย FirewallD ในระบบ CentOS 7 ของคุณและอธิบายแนวคิดพื้นฐาน FirewallD ให้คุณทราบ
ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้นด้วยบทช่วยสอนนี้ตรวจสอบให้แน่ใจว่าคุณได้ลงชื่อเข้าใช้เซิร์ฟเวอร์ด้วยบัญชีผู้ใช้ที่มีสิทธิ์ sudo หรือกับผู้ใช้รูท แนวปฏิบัติที่เหมาะสมที่สุดคือการรันคำสั่งการควบคุมดูแลในฐานะผู้ใช้ sudo แทนที่จะเป็นรูท หากคุณไม่มีผู้ใช้ sudo บนระบบ CentOS ของคุณคุณสามารถสร้างได้โดยทำตามคำแนะนำเหล่านี้
แนวคิดไฟร์วอลล์พื้นฐาน
FirewallD ใช้แนวคิดของโซนและบริการแทน iptables chain และ rules ขึ้นอยู่กับโซนและบริการที่คุณกำหนดค่าคุณสามารถควบคุมการรับส่งข้อมูลที่อนุญาตหรือไม่อนุญาตให้เข้าและออกจากระบบ
FirewallD สามารถกำหนดค่าและจัดการโดยใช้ยูทิลิตีบรรทัดคำสั่ง
firewall-cmd
โซนไฟร์วอลล์
โซนเป็นชุดของกฎที่กำหนดไว้ล่วงหน้าซึ่งระบุว่าปริมาณการใช้ข้อมูลใดที่ควรได้รับอนุญาตตามระดับความน่าเชื่อถือบนเครือข่ายที่คอมพิวเตอร์ของคุณเชื่อมต่ออยู่ คุณสามารถกำหนดอินเทอร์เฟซเครือข่ายและแหล่งที่มาให้กับโซน
ด้านล่างนี้เป็นโซนที่ FirewallD สั่งให้ตามระดับความน่าเชื่อถือของโซนตั้งแต่ไม่น่าเชื่อถือถึงเชื่อถือได้:
- ดร็อป: การเชื่อมต่อขาเข้าทั้งหมดจะถูกดร็อปโดยไม่มีการแจ้งเตือนใด ๆ อนุญาตการเชื่อมต่อขาออกเท่านั้น บล็อก: การเชื่อมต่อขาเข้าทั้งหมดถูกปฏิเสธพร้อมกับข้อความที่
icmp-host-prohibited
ใช้icmp6-adm-prohibited
icmp-host-prohibited
สำหรับIPv4
และicmp6-adm-prohibited
ใช้งาน icmp6 สำหรับ IPv6n อนุญาตการเชื่อมต่อขาออกเท่านั้น พับลิก: สำหรับใช้ในพื้นที่สาธารณะที่ไม่น่าเชื่อถือ คุณไม่เชื่อถือคอมพิวเตอร์เครื่องอื่นในเครือข่าย แต่คุณสามารถอนุญาตการเชื่อมต่อขาเข้าที่เลือก ภายนอก: สำหรับใช้บนเครือข่ายภายนอกที่เปิดใช้งานการปลอมแปลง NAT เมื่อระบบของคุณทำหน้าที่เป็นเกตเวย์หรือเราเตอร์ อนุญาตเฉพาะการเชื่อมต่อขาเข้าที่เลือก ภายใน: สำหรับใช้กับเครือข่ายภายในเมื่อระบบของคุณทำหน้าที่เป็นเกตเวย์หรือเราเตอร์ ระบบอื่น ๆ ในเครือข่ายมักเชื่อถือได้ อนุญาตเฉพาะการเชื่อมต่อขาเข้าที่เลือก dmz: ใช้สำหรับคอมพิวเตอร์ที่อยู่ในเขตปลอดทหารของคุณซึ่งมีการ จำกัด การเข้าถึงเครือข่ายที่เหลือของคุณ อนุญาตเฉพาะการเชื่อมต่อขาเข้าที่เลือก ทำงาน: ใช้สำหรับเครื่องจักรทำงาน คอมพิวเตอร์เครื่องอื่น ๆ ในเครือข่ายมักเชื่อถือได้ อนุญาตเฉพาะการเชื่อมต่อขาเข้าที่เลือก home: ใช้สำหรับเครื่องที่บ้าน คอมพิวเตอร์เครื่องอื่น ๆ ในเครือข่ายมักเชื่อถือได้ อนุญาตเฉพาะการเชื่อมต่อขาเข้าที่เลือก ความน่าเชื่อถือ: การเชื่อมต่อเครือข่ายทั้งหมดได้รับการยอมรับ เชื่อถือคอมพิวเตอร์ทุกเครื่องในเครือข่าย
บริการไฟร์วอลล์
บริการ Firewalld เป็นกฎที่กำหนดไว้ล่วงหน้าที่ใช้ภายในโซนและกำหนดการตั้งค่าที่จำเป็นเพื่ออนุญาตทราฟฟิกขาเข้าสำหรับบริการเฉพาะ
Firewalld Runtime และการตั้งค่าถาวร
Firewalld ใช้ชุดการกำหนดค่าที่แยกกันสองชุดรันไทม์และการกำหนดค่าถาวร
การกำหนดค่ารันไทม์คือการกำหนดค่าการทำงานจริงและจะไม่คงอยู่กับการรีบูต เมื่อเซอร์วิส Firewalld เริ่มทำงานจะโหลดการกำหนดค่าถาวรซึ่งกลายเป็นการกำหนดค่ารันไทม์
โดยค่าเริ่มต้นเมื่อทำการเปลี่ยนแปลงการกำหนดค่า Firewalld โดยใช้ยูทิลิตี้
firewall-cmd
การเปลี่ยนแปลงจะถูกนำไปใช้กับการกำหนดค่ารันไทม์ ในการเปลี่ยนแปลงอย่างถาวรคุณต้องใช้ตัวเลือก
--permanent
การติดตั้งและเปิดใช้งาน FirewallD
-
Firewalld ถูกติดตั้งตามค่าเริ่มต้นบน CentOS 7 แต่หากไม่ได้ติดตั้งไว้ในระบบของคุณคุณสามารถติดตั้งแพ็กเกจโดยพิมพ์:
sudo yum install firewalld
บริการ Firewalld ถูกปิดใช้งานโดยค่าเริ่มต้น คุณสามารถตรวจสอบสถานะไฟร์วอลล์ด้วย:
sudo firewall-cmd --state
ในการเริ่มบริการ FirewallD และเปิดใช้งานกับประเภทการบู๊ต:
sudo systemctl start firewalld
sudo systemctl enable firewalld
การทำงานกับ Firewalld Zones
หลังจากเปิดใช้งานบริการ FirewallD เป็นครั้งแรกโซน
public
จะถูกตั้งค่าเป็นโซนเริ่มต้น คุณสามารถดูโซนเริ่มต้นได้โดยพิมพ์:
sudo firewall-cmd --get-default-zone
public
ในการรับรายการของโซนทั้งหมดที่มีให้พิมพ์:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
ตามค่าเริ่มต้นอินเตอร์เฟสเครือข่ายทั้งหมดจะถูกกำหนดเป็นโซนเริ่มต้น ในการตรวจสอบประเภทของอินเทอร์เฟซเครือข่ายที่ใช้โซนของคุณ:
sudo firewall-cmd --get-active-zones
public interfaces: eth0 eth1
ผลลัพธ์ข้างต้นบอกเราว่าส่วนต่อประสาน
eth0
และ
eth1
ถูกกำหนดให้กับเขตสาธารณะ
คุณสามารถพิมพ์การตั้งค่าการกำหนดโซนได้ด้วย:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
จากผลลัพธ์ข้างต้นเราจะเห็นว่าเขตสาธารณะมีการใช้งานและตั้งเป็นค่าเริ่มต้นใช้โดยทั้งอินเตอร์เฟส
eth0
และ
eth1
นอกจากนี้ยังอนุญาตการเชื่อมต่อที่เกี่ยวข้องกับไคลเอ็นต์ DHCP และ SSH
sudo firewall-cmd --list-all-zones
คำสั่งพิมพ์รายการขนาดใหญ่ด้วยการตั้งค่าของโซนที่มีอยู่ทั้งหมด
การเปลี่ยนโซนของอินเทอร์เฟซ
คุณสามารถเปลี่ยนโซนอินเทอร์เฟซได้อย่างง่ายดายโดยใช้ตัวเลือก
--zone
ร่วมกับตัวเลือก
--zone
--change-interface
คำสั่งต่อไปนี้จะกำหนดอินเตอร์เฟส
eth1
ให้กับโซนงาน:
sudo firewall-cmd --zone=work --change-interface=eth1
ตรวจสอบการเปลี่ยนแปลงโดยการพิมพ์:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
การเปลี่ยนโซนเริ่มต้น
หากต้องการเปลี่ยนโซนเริ่มต้นให้ใช้ตัวเลือก
--set-default-zone
ตามด้วยชื่อของโซนที่คุณต้องการให้เป็นค่าเริ่มต้น
ตัวอย่างเช่นหากต้องการเปลี่ยนโซนเริ่มต้นเป็นหน้าแรกคุณควรเรียกใช้คำสั่งต่อไปนี้:
sudo firewall-cmd --set-default-zone=home
ตรวจสอบการเปลี่ยนแปลงด้วย:
sudo firewall-cmd --get-default-zone
การเปิดพอร์ตหรือบริการ
ด้วย FirewallD คุณสามารถอนุญาตการรับส่งข้อมูลสำหรับพอร์ตเฉพาะตามกฎที่กำหนดไว้ล่วงหน้าที่เรียกว่าบริการ
วิธีรับรายการประเภทบริการที่เป็นค่าเริ่มต้นทั้งหมด:
sudo firewall-cmd --get-services
คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับแต่ละบริการได้โดยการเปิดไฟล์. xml ที่เชื่อมโยงภายในไดเร็กทอรี
/usr/lib/firewalld/services
ตัวอย่างเช่นบริการ HTTP มีการกำหนดดังนี้:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
ในการอนุญาตการรับส่งข้อมูล HTTP ขาเข้า (พอร์ต 80) สำหรับอินเทอร์เฟซในโซนสาธารณะเฉพาะสำหรับประเภทเซสชันปัจจุบัน (การกำหนดค่ารันไทม์):
sudo firewall-cmd --zone=public --add-service=http
หากคุณกำลังปรับเปลี่ยนโซนเริ่มต้นคุณสามารถออกจากตัวเลือก -
--zone
ในการตรวจสอบว่ามีการเพิ่มบริการสำเร็จให้ใช้ตัวเลือก
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
sudo firewall-cmd --permanent --zone=public --add-service=http
ใช้
--list-services
พร้อมกับตัวเลือก
--permanent
เพื่อยืนยันการเปลี่ยนแปลงของคุณ:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
ไวยากรณ์สำหรับการลบบริการเป็นเช่นเดียวกับเมื่อเพิ่มบริการ เพียงแค่ใช้
--remove-service
แทนตัวเลือก
--add-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
คำสั่งด้านบนจะลบบริการ http จากการกำหนดค่าถาวรของโซนสาธารณะ
ถ้าคุณใช้แอพพลิเคชั่นเช่น Plex Media Server ที่ไม่มีบริการที่เหมาะสม
ในสถานการณ์เช่นนี้คุณมีสองทางเลือก คุณสามารถเปิดพอร์ตที่เหมาะสมหรือกำหนดบริการ FirewallD ใหม่
ตัวอย่างเช่นเซิร์ฟเวอร์เพล็กซ์ฟังพอร์ต 32400 และใช้ TCP เพื่อเปิดพอร์ตในโซนสาธารณะสำหรับเซสชันปัจจุบันใช้ตัวเลือก
--add-port=
:
sudo firewall-cmd --zone=public --add-port=32400/tcp
โปรโตคอลสามารถเป็น
tcp
หรือ
udp
ในการตรวจสอบว่าพอร์ตถูกเพิ่มสำเร็จให้ใช้ตัวเลือก
--list-ports
:
sudo firewall-cmd --zone=public --list-ports
32400/tcp
หากต้องการให้พอร์ต
32400
เปิดหลังจากรีบูตให้เพิ่มกฎลงในการตั้งค่าถาวรโดยใช้คำสั่งเดียวกันโดยใช้ตัวเลือก
--permanent
ไวยากรณ์สำหรับการลบพอร์ตเป็นเช่นเดียวกับเมื่อเพิ่มพอร์ต เพียงใช้
--remove-port
แทนตัวเลือก
--add-port
sudo firewall-cmd --zone=public --remove-port=32400/tcp
การสร้างบริการ FirewallD ใหม่
ดังที่เราได้กล่าวไปแล้วบริการเริ่มต้นจะถูกเก็บไว้ใน
/usr/lib/firewalld/services
วิธีที่ง่ายที่สุดในการสร้างบริการใหม่คือการคัดลอกไฟล์บริการที่มีอยู่ไปยังไดเร็กทอรี
/etc/firewalld/services
ซึ่งเป็นตำแหน่งสำหรับบริการที่ผู้ใช้สร้างขึ้นและแก้ไขการตั้งค่าไฟล์
ตัวอย่างเช่นในการสร้างคำนิยามบริการสำหรับ Plex Media Server เราสามารถใช้ไฟล์บริการ SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
เปิดไฟล์
plexmediaserver.xml
สร้างขึ้นใหม่และเปลี่ยนชื่อย่อและคำอธิบายสำหรับบริการภายใน
port
ซึ่งกำหนดหมายเลขพอร์ตและโปรโตคอลที่คุณต้องการเปิด
ในตัวอย่างต่อไปนี้เรากำลังเปิดพอร์ต
1900
UDP และ
32400
TCP
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
บันทึกไฟล์และโหลดบริการ FirewallD อีกครั้ง:
sudo firewall-cmd --reload
ตอนนี้คุณสามารถใช้บริการ
plexmediaserver
ในโซนของคุณเหมือนกับบริการอื่น ๆ..
การส่งต่อพอร์ตด้วยไฟร์วอลล์
หากต้องการส่งต่อทราฟฟิกจากพอร์ตหนึ่งไปยังอีกพอร์ตหนึ่งหรือที่อยู่อื่นก่อนอื่นให้เปิดใช้งาน masquerading สำหรับโซนที่ต้องการโดยใช้
--add-masquerade
ตัวอย่างเช่นการเปิดใช้งานการปลอมแปลงสำหรับโซนโซน
external
:
sudo firewall-cmd --zone=external --add-masquerade
- ส่งต่อทราฟฟิกจากพอร์ตหนึ่งไปอีกพอร์ตหนึ่งบนเซิร์ฟเวอร์เดียวกัน
ในตัวอย่างต่อไปนี้เรากำลังส่งต่อทราฟฟิกจากพอร์ต
80
ไปยังพอร์ต
8080
บนเซิร์ฟเวอร์เดียวกัน:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
- ส่งต่อทราฟฟิกไปยังเซิร์ฟเวอร์อื่น
ในตัวอย่างต่อไปนี้เรากำลังส่งต่อทราฟฟิกจากพอร์ต
80
ไปยังพอร์ต
80
บนเซิร์ฟเวอร์ที่มี IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
- ส่งต่อทราฟฟิกไปยังเซิร์ฟเวอร์อื่นบนพอร์ตอื่น
ในตัวอย่างต่อไปนี้เรากำลังส่งต่อทราฟฟิกจากพอร์ต
80
ไปยังพอร์ต
8080
บนเซิร์ฟเวอร์ที่มี IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
การสร้าง Ruleset ด้วย FirewallD
ในตัวอย่างต่อไปนี้เราจะแสดงวิธีกำหนดค่าไฟร์วอลล์ของคุณหากคุณใช้งานเว็บเซิร์ฟเวอร์ เราสมมติว่าเซิร์ฟเวอร์ของคุณมีอินเทอร์เฟซเดียว
eth0
และคุณต้องการอนุญาตทราฟฟิกขาเข้าบนพอร์ต SSH, HTTP และ HTTPS เท่านั้น
-
เปลี่ยนโซนเริ่มต้นเป็น dmz
เราจะใช้โซน dmz (ปลอดทหาร) เพราะโดยปกติจะอนุญาตเฉพาะทราฟฟิก SSH เท่านั้น หากต้องการเปลี่ยนโซนเริ่มต้นเป็น dmz และกำหนดให้กับอินเตอร์เฟส
eth0
ให้รันคำสั่งต่อไปนี้:sudo firewall-cmd --set-default-zone=dmz
sudo firewall-cmd --zone=dmz --add-interface=eth0
เปิดพอร์ต HTTP และ
หากต้องการเปิดพอร์ต HTTP และ HTTPS ให้เพิ่มกฎการบริการถาวรลงในโซน dmz:
sudo firewall-cmd --permanent --zone=dmz --add-service=http
sudo firewall-cmd --permanent --zone=dmz --add-service=https
ทำการเปลี่ยนแปลงมีผลทันทีโดยการโหลดไฟร์วอลล์อีกครั้ง:
sudo firewall-cmd --reload
ตรวจสอบการเปลี่ยนแปลง
วิธีตรวจสอบประเภทการตั้งค่าการกำหนดค่าโซน dmz:
sudo firewall-cmd --zone=dmz --list-all
dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
เอาต์พุตข้างต้นบอกเราว่า dmz เป็นโซนเริ่มต้นถูกนำไปใช้กับอินเตอร์เฟส
eth0
และพอร์ต ssh (22) http (80) และ https (443) เปิด
ข้อสรุป
คุณได้เรียนรู้วิธีกำหนดค่าและจัดการบริการ FirewallD บนระบบ CentOS ของคุณ
ตรวจสอบให้แน่ใจว่าการเชื่อมต่อขาเข้าทั้งหมดที่จำเป็นสำหรับการทำงานของระบบของคุณเหมาะสมในขณะที่ จำกัด การเชื่อมต่อที่ไม่จำเป็นทั้งหมด
firewalld firewall iptables centos securityMicrosoft Tweaks Ad หลังจากที่ Apple บ่น

เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีตั้งค่าไฟร์วอลล์ด้วย ufw บนเดเบียน 9

UFW (Uncomplicated Firewall) เป็น front-end ที่ใช้งานง่ายสำหรับการจัดการกฎไฟร์วอลล์ iptables และเป้าหมายหลักคือการทำให้การจัดการ iptables ง่ายขึ้นหรือตามชื่อที่ไม่ซับซ้อน ในบทช่วยสอนนี้เราจะแสดงวิธีติดตั้งไฟร์วอลล์ด้วย UFW บน Debian 9
วิธีหยุดและปิดการใช้งาน firewalld บน centos 7

เริ่มต้นด้วย CentOS 7, FirewallD จะแทนที่ iptables เป็นเครื่องมือจัดการไฟร์วอลล์เริ่มต้น ในบทช่วยสอนนี้เราจะแสดงวิธีปิดการใช้งาน FirewallD บนระบบ CentOS 7