วิธีการตั้งค่าไฟร์วอลล์ SLES 15 ด้วย firewall-cmd

บริการบางอย่างอาจทำงานอยู่บนเซิร์ฟเวอร์ SLES 15 แต่ยังคงเกิดการหมดเวลา (timeout) สำหรับไคลเอนต์ระยะไกล เนื่องจากไฟร์วอลล์บล็อกการรับส่งข้อมูลขาเข้าใหม่ วิธีแก้ไขโดยทั่วไปคือการระบุโซน firewalld ที่ใช้งานอยู่ และอนุญาตเฉพาะบริการหรือพอร์ตที่แอปพลิเคชันต้องการเท่านั้น เครื่องมือบรรทัดคำสั่ง SLES สำหรับงานนี้คือ `sudo apt- firewall-cmdin`

คู่มือนี้อ้างอิงจากคู่มือความปลอดภัยและการเสริมความแข็งแกร่งของ SLES 15 SP7 และเอกสารอ้างอิงคำสั่ง firewalld ของ SUSE ซึ่งตรวจสอบเมื่อวันที่ 7 ตุลาคม 2026 Service Pack รุ่นก่อนหน้าและระบบ SLES 12 ที่ได้รับการอัปเกรดอาจมีสถานะที่แตกต่างกันหรือมีการกำหนดค่าไฟร์วอลล์แบบเดิม ภาพในเทอร์มินัลแสดงตัวอย่าง ไม่ใช่ผลลัพธ์ที่บันทึกจากเซิร์ฟเวอร์จริง โปรดแทนที่ชื่ออินเทอร์เฟซ โซน และบริการด้วยค่าที่มีในเครื่องของคุณ

1. ตรวจสอบว่า firewalld กำลังทำงานอยู่หรือไม่

เอกสารของ SUSE ระบุว่า firewalld ถูกติดตั้งและเปิดใช้งานโดยค่าเริ่มต้นใน SLES 15 โดยปกติ YaST จะเริ่มต้นใช้งานหลังจากติดตั้งเสร็จและกำหนดอินเทอร์เฟซให้อยู่ในpublicโซนเริ่มต้น อย่างไรก็ตาม ควรตรวจสอบเครื่องจริงแทนที่จะคิดว่าค่าเริ่มต้นไม่ได้เปลี่ยนแปลง เรียกใช้คำสั่งเหล่านี้ด้วยบัญชีที่ได้รับอนุญาตให้ใช้งานsudo:

sudo systemctl status firewalld
sudo firewall-cmd --state

ตัวจัดการบริการควรรายงานว่าบริการนั้นfirewalldทำงานอยู่ และfirewall-cmd --stateควรรายงานสถานะrunningหากติดตั้งบริการแล้วแต่หยุดทำงาน ให้เริ่มบริการและเปิดใช้งานเมื่อบูตเครื่อง:

sudo systemctl enable --now firewalld

หากfirewall-cmdไฟล์ดังกล่าวหายไป ให้ตรวจสอบว่าได้firewalldติดตั้งแพ็กเกจนั้นแล้วและพร้อมใช้งานในที่เก็บซอฟต์แวร์ของ SUSE ที่เปิดใช้งานอยู่หรือไม่ อย่าติดตั้งหรือเปลี่ยนส่วนประกอบไฟร์วอลล์โดยพลการบนเซิร์ฟเวอร์ที่ได้รับการจัดการ

ตัวอย่างการใช้งานเทอร์มินัล SLES เพื่อตรวจสอบสถานะบริการ firewalld และแสดงรายการโซนสาธารณะที่ใช้งานอยู่บน eth0
เทอร์มินัลตัวอย่างจะตรวจสอบสถานะของ firewalld และแสดงตัวอย่างโซนสาธารณะที่ใช้งานอยู่โดยใช้ส่วนต่อประสาน eth0

2. ค้นหาโซนที่ปกป้องอินเทอร์เฟซของเซิร์ฟเวอร์

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

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --zone=public --list-all

ใช้ผลลัพธ์ของคำสั่ง active-zone เพื่อค้นหาโซนที่เชื่อมต่อกับอินเทอร์เฟซที่รับส่งข้อมูลของไคลเอ็นต์ ชื่ออินเทอร์เฟซอาจเป็นeth0, ens160, หรือชื่ออื่น หากคุณต้องการตรวจสอบอินเทอร์เฟซเดียว ให้รันคำสั่ง:

sudo firewall-cmd --get-zone-of-interface=eth0

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

ตัวอย่างเทอร์มินัล SLES ที่แสดงโซนสาธารณะเริ่มต้น อินเทอร์เฟซ eth0 บริการ SSH และกฎโซนปัจจุบัน
รายการโซนแสดงให้เห็นว่าอินเทอร์เฟซและบริการใดบ้างที่เชื่อมโยงกับโซนสาธารณะตัวอย่างก่อนที่จะมีการเปลี่ยนแปลงใดๆ

3. เลือกบริการที่มีชื่อหรือพอร์ตที่เฉพาะเจาะจง

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

sudo firewall-cmd --get-services
sudo firewall-cmd --info-service=http

สำหรับเว็บเซิร์ฟเวอร์httpบริการที่กำหนดไว้ล่วงหน้าโดยทั่วไปจะครอบคลุมพอร์ต TCP 80 httpsส่วนบริการสำหรับทราฟฟิกเว็บ TLS จะแยกต่างหาก เอกสารประกอบของ SLES แสดงวิธีการแบบบริการเดียวกันนี้พร้อมตัวอย่างเช่น DHCP ใช้บริการที่แอปพลิเคชันของคุณต้องการจริง และตรวจสอบคำจำกัดความของบริการในเครื่องหากคุณไม่แน่ใจ

หากไม่มีบริการที่กำหนดไว้ล่วงหน้าที่เหมาะสม ให้เปิดเฉพาะพอร์ตและโปรโตคอลที่จำเป็นเท่านั้น ตัวอย่างเช่น แอปพลิเคชันที่รับฟังบนพอร์ต TCP 8443 สามารถอนุญาตได้โดยใช้--add-port=8443/tcpการเปิดพอร์ตในไฟร์วอลล์ไม่ได้เป็นการเริ่มต้นแอปพลิเคชัน ผูกแอปพลิเคชันเข้ากับเครือข่าย หรือทำให้ปลอดภัย โปรดตรวจสอบให้แน่ใจว่าบริการนั้นได้รับการกำหนดค่าให้รับฟังบนที่อยู่ดังกล่าวแล้ว

ทดสอบกฎชั่วคราวก่อน

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

sudo firewall-cmd --zone=public --add-service=http --timeout=5m

สำหรับการทดสอบพอร์ตแบบครั้งเดียว ให้ใช้--add-port=8443/tcp --timeout=5mแทน--add-service=httpเลือกโซนที่ประกอบด้วยอินเทอร์เฟซของเซิร์ฟเวอร์จริง ๆ อย่าคัดลอกpublicหากโฮสต์ของคุณใช้โซนอื่น

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

4. บันทึกกฎและรีโหลด firewalld

เมื่อคุณพร้อมที่จะใช้กฎนี้ ให้เพิ่มกฎนั้นลงในการตั้งค่าถาวร ตัวอย่างต่อไปนี้อนุญาตให้ใช้ HTTP ในโซนสาธารณะ:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

สำหรับ HTTPS ให้ทำซ้ำคำสั่งถาวรด้วย--add-service=https. สำหรับพอร์ตแอปพลิเคชันที่กำหนดเอง ให้ใช้คำสั่งเช่น:

sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp
sudo firewall-cmd --reload

ตัวอย่างเหล่านี้จะแก้ไขการตั้งค่าถาวรก่อน จากนั้นจึงโหลดการตั้งค่าใหม่เพื่อให้กฎใหม่มีผลใช้งาน การโหลดใหม่จะแทนที่การตั้งค่าขณะทำงานด้วยการตั้งค่าถาวร ดังนั้นการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นขณะทำงานเท่านั้นอาจถูกยกเลิก ก่อนที่จะโหลดระบบที่ใช้งานจริงใหม่ โปรดตรวจสอบกฎขณะทำงานและกฎถาวรที่สำคัญ โดยเฉพาะอย่างยิ่งการเข้าถึงการดูแลระบบจากระยะไกล

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

คุณจะตรวจสอบได้อย่างไรว่าการเปลี่ยนแปลงนั้นได้ผล?

ตรวจสอบทั้งกฎรันไทม์ที่ใช้งานอยู่และกฎที่บันทึกไว้ สำหรับบริการ HTTP ในโซนสาธารณะ ให้รันคำสั่ง:

sudo firewall-cmd --zone=public --query-service=http
sudo firewall-cmd --permanent --zone=public --list-services
sudo firewall-cmd --check-config

การค้นหาควรส่งคืนyesค่า รายการบริการถาวรควรมีhttpและการตรวจสอบการกำหนดค่าควรเสร็จสมบูรณ์อย่างประสบความสำเร็จ สำหรับกฎพอร์ต ให้ใช้--query-port=8443/tcpและ--list-portsในคำสั่งที่เทียบเท่ากัน ทดสอบจากไคลเอนต์อื่นที่สามารถเข้าถึงเซิร์ฟเวอร์ได้ด้วย การตรวจสอบไฟร์วอลล์ภายในเครื่องยืนยันว่ากฎมีอยู่จริง ไม่ใช่ว่า DNS การกำหนดเส้นทาง ไฟร์วอลล์ต้นทาง หรือตัวรับฟังแอปพลิเคชันถูกต้อง

ตัวอย่างเทอร์มินัล SLES ที่ยืนยันว่าอนุญาตให้ใช้ HTTP ในการตั้งค่าขณะรันไทม์และการตั้งค่าถาวร และตรวจสอบการตั้งค่า firewalld
คำสั่งตรวจสอบจะตรวจสอบกฎบริการที่ใช้งานอยู่ รายการบริการที่บันทึกไว้ และไวยากรณ์การกำหนดค่าถาวร

ปัญหาที่พบได้ทั่วไปและวิธีแก้ไขที่ปลอดภัย

  • กฎดังกล่าวมีอยู่แล้ว แต่การเชื่อมต่อยังคงหมดเวลา:ตรวจสอบให้แน่ใจว่าได้เพิ่มกฎนั้นลงในโซนที่เชื่อมต่อกับอินเทอร์เฟซที่ลูกค้าใช้งานอยู่ จากนั้นตรวจสอบว่าแอปพลิเคชันกำลังรับฟังอยู่ที่ที่อยู่และพอร์ตที่คาดไว้ และตรวจสอบไฟร์วอลล์เครือข่ายต้นทางด้วย
  • กฎดังกล่าวใช้งานได้จนกระทั่งโหลดหน้าเว็บใหม่:น่าจะถูกเพิ่มเข้าไปเฉพาะในระหว่างการทำงานเท่านั้น ให้เพิ่มกฎนั้นเข้าไป--permanentแล้วโหลดหน้าเว็บใหม่ จากนั้นจึงสอบถามการตั้งค่าทั้งสองแบบ
  • การเข้าถึง SSH มีความเสี่ยง:ตรวจสอบบริการในโซนที่ใช้งานอยู่และบริการถาวรก่อนทำการรีโหลด หากจำเป็นต้องใช้ SSH และไม่มีอยู่ ให้เพิ่มsshบริการลงในโซนที่ถูกต้องอย่างถาวรก่อนทำการรีโหลด อย่าปิดเซสชันระยะไกลปัจจุบันของคุณจนกว่าคุณจะทดสอบการเชื่อมต่อครั้งที่สองแล้ว
  • คุณกำลังย้ายระบบจาก SUSE เวอร์ชันเก่ากว่า: SLES 15 ได้แทนที่ SuSEfirewall2 ด้วย firewalld แล้ว SUSE เตือนว่าโปรไฟล์ไฟร์วอลล์แบบเก่ามีความเข้ากันได้กับเวอร์ชันเก่าอย่างจำกัด โปรดตรวจสอบคู่มือการย้ายระบบแทนที่จะคิดว่ากฎเก่าทุกข้อได้รับการแปลงแล้ว
  • ดูเหมือนว่ากฎจะขัดแย้งกัน: firewalld มีจุดประสงค์เพื่อจัดการกฎไฟร์วอลล์ของโฮสต์ SUSE เตือนไม่ให้แก้ไขกฎเดียวกันแยกต่างหากด้วยเครื่องมือต่างๆ เช่นiptablesซึ่งอาจทำให้การกำหนดค่าที่ใช้งานอยู่สับสนได้

หากต้องการลบเซอร์วิสหรือพอร์ตถาวรที่ไม่จำเป็น ให้ใช้ตัวเลือกที่ตรงกัน--remove-serviceหรือ--remove-portตัวเลือกอื่นร่วมกับ--permanentจากนั้นโหลดใหม่และตรวจสอบอีกครั้ง ตัวอย่างเช่น ลบ HTTP ออกจากโซนสาธารณะโดยsudo firewall-cmd --permanent --zone=public --remove-service=httpใช้ ตามsudo firewall-cmd --reloadด้วย

ตรวจสอบตัวเองก่อนเสร็จสิ้น

  • firewalldโปรแกรมนี้ทำงานอยู่และจะเริ่มต้นเมื่อเซิร์ฟเวอร์บูตเครื่อง
  • คุณได้ระบุโซนที่ใช้งานอยู่สำหรับอินเทอร์เฟซที่รับทราฟฟิกแล้ว
  • เฉพาะบริการหรือพอร์ตที่แอปพลิเคชันต้องการเท่านั้นที่จะได้รับอนุญาตในโซนนั้น
  • การบริหารจัดการจากระยะไกลยังคงได้รับอนุญาตทั้งก่อนและหลังการรีโหลด
  • กฎดังกล่าวปรากฏในแบบสอบถามทั้งแบบรันไทม์และแบบถาวร และการตรวจสอบการกำหนดค่าก็ผ่านเกณฑ์
  • การทดสอบการเชื่อมต่อจากโฮสต์อื่นยืนยันว่าสามารถเข้าถึงแอปพลิเคชันได้

สำหรับรายละเอียดเฉพาะรุ่น โปรดดูคู่มือไฟร์วอลล์ SUSE SLES 15 SP7 , คู่มือ firewall-cmdและหมายเหตุของ firewalld เกี่ยวกับการกำหนดค่าขณะทำงานและการกำหนดค่าถาวรรวมถึงการเปิดพอร์ตหรือบริการ

ฝากความเห็น

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Intel graphics screen tearing in Pardus Linux by checking X11 vs. Wayland, compositor settings, refresh rate, active Xorg driver, and TearFree only when appropriate.

วิธีการตั้งค่าไฟร์วอลล์ SLES 15 ด้วย firewall-cmd

วิธีการตั้งค่าไฟร์วอลล์ SLES 15 ด้วย firewall-cmd

กำหนดค่า firewalld บน SLES 15: ตรวจสอบโซน อนุญาตบริการหรือพอร์ต บันทึกกฎถาวร โหลดใหม่ได้อย่างปลอดภัย และตรวจสอบการเข้าถึง

คู่มือการตั้งค่าการอัปเดต SLES Live Patching: อัปเดตเคอร์เนลโดยไม่ต้องรีบูตเครื่อง

คู่มือการตั้งค่าการอัปเดต SLES Live Patching: อัปเดตเคอร์เนลโดยไม่ต้องรีบูตเครื่อง

เปิดใช้งานการแพตช์เคอร์เนลแบบเรียลไทม์บน SLES 15 SP7 ใช้การแก้ไขที่รองรับโดยไม่ต้องรีบูต ตรวจสอบแพตช์ที่ใช้งานอยู่ และทำความเข้าใจว่าเมื่อใดที่ยังจำเป็นต้องรีสตาร์ทเคอร์เนล

วิธีเปิดใช้งานโหมด FIPS บน SUSE Linux Enterprise Server 15

วิธีเปิดใช้งานโหมด FIPS บน SUSE Linux Enterprise Server 15

เปิดใช้งานโหมด FIPS บน SLES 15 โดยใช้ยูทิลิตี้การตั้งค่าที่ SUSE รองรับ รีบูตอย่างปลอดภัย ตรวจสอบสถานะเคอร์เนลและนโยบายการเข้ารหัส และตรวจสอบขีดจำกัดการรับรอง

วิธีการติดตั้ง Google Chrome บน Gooroom OS โดยไม่ละเมิดนโยบายความปลอดภัย

วิธีการติดตั้ง Google Chrome บน Gooroom OS โดยไม่ละเมิดนโยบายความปลอดภัย

ติดตั้ง Google Chrome บน Gooroom OS อย่างปลอดภัยด้วยแพ็กเกจ .deb อย่างเป็นทางการ, APT, การตรวจสอบนโยบาย, คำแนะนำในการอัปเดต และการแก้ไขสำหรับอุปกรณ์ที่ได้รับการจัดการ

วิธีการส่งออกบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ Syslog ระยะไกลอย่างปลอดภัย

วิธีการส่งออกบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ Syslog ระยะไกลอย่างปลอดภัย

ส่งต่อบันทึกระบบ SLES ไปยังเซิร์ฟเวอร์ syslog ระยะไกลอย่างปลอดภัยด้วย rsyslog, ใบรับรอง TLS, การตรวจสอบชื่อคู่ค้า, คิว, การตรวจสอบความถูกต้อง และการทดสอบ

การผสานรวม Active Directory กับ SSSD ใน SLES 15: คู่มือทีละขั้นตอน

การผสานรวม Active Directory กับ SSSD ใน SLES 15: คู่มือทีละขั้นตอน

เชื่อมต่อ SLES 15 เข้ากับ Active Directory ด้วย SSSD โดยใช้ YaST เตรียม DNS และเวลา กำหนดค่าการเข้าสู่ระบบโดเมน ตรวจสอบ Kerberos และเปรียบเทียบ SSSD, Winbind และ realmd

แก้ไขปัญหาไดรเวอร์ Wi-Fi Realtek RTL8821CE บน Pardus Linux

แก้ไขปัญหาไดรเวอร์ Wi-Fi Realtek RTL8821CE บน Pardus Linux

แก้ไขปัญหา Wi-Fi RTL8821CE บน Pardus Linux โดยตรวจสอบไดรเวอร์ rtw88 ในตัว เฟิร์มแวร์ Realtek คำสั่ง rfkill, NetworkManager และตัวเลือกการสำรองข้อมูลที่ปลอดภัย

แก้ไขปัญหา "ความล้มเหลวชั่วคราวในการแก้ไข DNS" ใน Debian 12 ด้วย systemd-resolved

แก้ไขปัญหา "ความล้มเหลวชั่วคราวในการแก้ไข DNS" ใน Debian 12 ด้วย systemd-resolved

วินิจฉัยและแก้ไขปัญหาการแก้ไขชื่อโดเมน (DNS resolution) บน Debian 12 ที่ใช้ systemd-resolved รวมถึง resolv.conf, NetworkManager, networkd, cache และการตรวจสอบความถูกต้อง

วิธีการติดตั้งระบบปฏิบัติการ Pardus Linux ควบคู่กับ Windows 11 อย่างปลอดภัย

วิธีการติดตั้งระบบปฏิบัติการ Pardus Linux ควบคู่กับ Windows 11 อย่างปลอดภัย

ติดตั้ง Pardus 25.2 ควบคู่ไปกับ Windows 11 โดยทำการสำรองข้อมูล ลดขนาดไดรฟ์ Windows บูตจาก USB UEFI และปกป้องพาร์ติชั่น EFI และพาร์ติชั่นกู้คืนที่มีอยู่เดิม