วิธีการแสดงรายการพอร์ตที่เปิดอยู่ใน Firewalld

How List Open Ports Firewalld



ไฟร์วอลล์ เป็นโปรแกรมไฟร์วอลล์เริ่มต้นบน CentOS 7 , Red Hat Enterprise Linux 7 (RHEL 7) , เฟโดร่า 18+ และลีนุกซ์รุ่นอื่นๆ ที่ได้รับความนิยม มีประสิทธิภาพมากสำหรับการจัดการเครือข่าย IPv4 และ IPv6 มีอินเทอร์เฟซบรรทัดคำสั่ง (CLI) ที่ใช้งานง่ายและเป็นทางเลือกแทน iptables .

ในบทความนี้ ผมจะแสดงวิธีการแสดงรายการพอร์ตที่เปิดอยู่ใน ไฟร์วอลล์ . ฉันจะใช้ CentOS 7.4 สำหรับการสาธิต แต่คำสั่งเดียวกันควรทำงานกับการแจกจ่าย Linux ด้วย ไฟร์วอลล์ ติดตั้ง มาเริ่มกันเลย.







Open Port คืออะไร?

อันดับแรก เรามาคุยกันก่อนว่า open port คืออะไร เห็นได้ชัดว่าเป็นคำศัพท์เกี่ยวกับเครือข่าย



คุณสามารถติดตั้งแพ็คเกจซอฟต์แวร์เซิร์ฟเวอร์จำนวนมากบนคอมพิวเตอร์เครื่องเดียว เช่น เซิร์ฟเวอร์ HTTP, เซิร์ฟเวอร์ DNS, เซิร์ฟเวอร์ฐานข้อมูล และอื่นๆ แต่อาจมีอินเทอร์เฟซเครือข่ายจำนวนจำกัด สมมติว่ามีอินเทอร์เฟซเครือข่ายที่มีอยู่จริงหนึ่งอินเทอร์เฟซและกำหนดค่าให้มีที่อยู่ IP 10.0.1.11 และคุณมีเซิร์ฟเวอร์ฐานข้อมูล HTTP และ MySQL ติดตั้งอยู่ ดังนั้นเมื่อคุณเชื่อมต่อกับ 10.0.1.11 จากคอมพิวเตอร์เครื่องอื่น คอมพิวเตอร์เซิร์ฟเวอร์ของคุณทราบได้อย่างไรว่าคุณต้องการใช้บริการใด บริการ HTTP หรือบริการฐานข้อมูล MySQL



เพื่อแยกความแตกต่างระหว่างบริการ HTTP และบริการฐานข้อมูล MySQL ที่อยู่ IP ยังมีคุณสมบัติอื่นที่เรียกว่าพอร์ต พอร์ตเป็นจำนวนเต็ม 16 บิต ซึ่งหมายความว่าสามารถเป็นตัวเลขได้ตั้งแต่ 0 ถึง 65536 ดังนั้นคอมพิวเตอร์เซิร์ฟเวอร์ของคุณจึงเรียกใช้บริการต่างๆ หรือซอฟต์แวร์เซิร์ฟเวอร์บนพอร์ตต่างๆ ตัวอย่างเช่น เซิร์ฟเวอร์ HTTP ทำงานบนพอร์ต 80 เซิร์ฟเวอร์ฐานข้อมูล MySQL ทำงานบนพอร์ต 3306 เป็นต้น





เมื่อต้องการพูดคุยกับบริการเฉพาะบนคอมพิวเตอร์เซิร์ฟเวอร์ของคุณ สมมติว่าเซิร์ฟเวอร์ HTTP คอมพิวเตอร์ไคลเอนต์ต้องผ่านพอร์ต 80 พร้อมกับที่อยู่ IP 10.0.1.11 ดังนั้นพอร์ต 80 จึงเป็นพอร์ตเปิดเพราะคอมพิวเตอร์ไคลเอนต์สามารถพูดคุยกับมันได้

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



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

การค้นหา Open Ports ด้วย Firewalld:

ตรวจสอบก่อนว่า ไฟร์วอลล์ บริการกำลังทำงานด้วยคำสั่งต่อไปนี้:

$sudoไฟร์วอลล์สถานะ systemctl

ดังที่คุณเห็นจากส่วนที่ทำเครื่องหมายไว้ของภาพหน้าจอด้านล่าง ไฟร์วอลล์ บริการกำลังทำงาน ดังนั้นเราจึงดีที่จะไป

ถ้าคุณ ไฟร์วอลล์ บริการไม่ทำงาน คุณสามารถเริ่มได้ ไฟร์วอลล์ บริการด้วยคำสั่งต่อไปนี้:

$sudosystemctl start firewalld

ตอนนี้คุณสามารถใช้ firewall-cmd คำสั่งกำหนดค่าและรับข้อมูลเกี่ยวกับ ไฟร์วอลล์ .

คุณสามารถพิมพ์การกำหนดค่า Firewalld ทั้งหมดโดยใช้คำสั่งต่อไปนี้:

$sudofirewall-cmd--list-all

พอร์ตและบริการที่เปิดอยู่ในรายการ บริการ: และ พอร์ต: บรรทัดตามที่ทำเครื่องหมายในภาพหน้าจอด้านล่าง

ใน บริการ: ไลน์, ssh และ dhcpv6-client เปิดใช้งานบริการแล้ว หมายความว่าพอร์ตที่สอดคล้องกับบริการเหล่านี้เปิดอยู่ด้วย

คุณสามารถค้นหาว่าพอร์ตใดที่บริการเหล่านี้เปิดด้วยคำสั่งต่อไปนี้:

$กริปผึ้ง>SERVICE_NAME/ฯลฯ/บริการ

บันทึก: ที่นี่, SERVICE_NAME เป็นบริการที่คุณต้องการดูพอร์ตของ

ตัวอย่างเช่น หากต้องการดูพอร์ตที่ ssh เปิดบริการแล้ว รันคำสั่งต่อไปนี้:

$กริป ssh /ฯลฯ/บริการ

ดังที่คุณเห็นจากส่วนที่ทำเครื่องหมายไว้ของภาพหน้าจอด้านล่าง ssh เปิดบริการ TCP ท่า 22 และ UDP ท่า 22 .

คำสั่ง sudo firewall-cmd –list-all , แสดงให้คุณเห็นทั้งหมด ไฟร์วอลล์ การกำหนดค่า

หากคุณต้องการดูว่าบริการใดบ้างที่ได้รับอนุญาตให้เปิดพอร์ตได้ ให้รันคำสั่งต่อไปนี้:

$sudofirewall-cmd--list-services

บริการที่อนุญาตให้เปิดพอร์ตได้แสดงไว้ดังที่คุณเห็นจากภาพหน้าจอด้านล่าง

หากคุณต้องการดูเฉพาะพอร์ตที่เปิดอยู่ ให้รันคำสั่งต่อไปนี้:

$sudofirewall-cmd--list-ports

พอร์ตที่เปิดอยู่จะแสดงรายการตามที่คุณเห็นจากภาพหน้าจอด้านล่าง

หากคุณต้องการเปิดพอร์ตหรือบริการอื่นๆ โดยใช้ ไฟร์วอลล์ จากนั้นตรวจสอบบทความอื่นของฉัน วิธีเปิดพอร์ต 80 บน CentOS7 (https://linuxhint.com/open-port-80-centos7/)

นั่นเป็นวิธีที่คุณแสดงรายการพอร์ตที่เปิดอยู่ใน ไฟร์วอลล์ . ขอบคุณที่อ่านบทความนี้