วิธีตรวจสอบพอร์ตที่เปิดอยู่บน Linux

How Check Open Ports Linux



การตรวจสอบพอร์ตที่เปิดอยู่เป็นหนึ่งในขั้นตอนแรกในการรักษาความปลอดภัยให้กับอุปกรณ์ของคุณ บริการรับฟังอาจเป็นทางเข้าสำหรับผู้โจมตีที่อาจใช้ประโยชน์จากช่องโหว่ของบริการเพื่อเข้าถึงหรือขัดขวางระบบ บริการการรับฟังหรือพอร์ตการรับฟังเป็นพอร์ตเปิดที่มีแอปพลิเคชันที่รอให้ไคลเอนต์เชื่อมต่อ (เช่น เซิร์ฟเวอร์ FTP ที่รอไคลเอนต์ FTP) ไม่จำเป็นต้องให้เว็บเซิร์ฟเวอร์ทำงานหากคุณไม่ได้ให้บริการเว็บไซต์หรือ เพื่อให้พอร์ต 22 เปิดอยู่หากคุณไม่ได้ใช้ ssh บทช่วยสอนนี้แสดงวิธีการตรวจสอบพอร์ตที่เปิดอยู่ทั้งในระยะไกลและในเครื่อง และวิธีปิดพอร์ตเหล่านั้น

คำสั่ง netstat มีอยู่ในระบบปฏิบัติการคอมพิวเตอร์ทุกเครื่อง (ระบบปฏิบัติการ) เพื่อตรวจสอบการเชื่อมต่อเครือข่าย คำสั่งต่อไปนี้ใช้ netstat เพื่อแสดงพอร์ตการรับฟังทั้งหมดโดยใช้โปรโตคอล TCP:







netstat -lt



ที่ไหน:
เน็ตสแตท: เรียกโปรแกรม
-NS: แสดงรายการพอร์ตการฟัง
-NS: ระบุโปรโตคอล TCP



เอาต์พุตเป็นมิตรกับมนุษย์ มีการจัดลำดับอย่างดีในคอลัมน์ที่แสดงโปรโตคอล แพ็กเก็ตที่รับและส่ง ที่อยู่ IP ในพื้นที่และระยะไกล และสถานะพอร์ต





หากคุณเปลี่ยนโปรโตคอล TCP สำหรับ UDP ผลลัพธ์ อย่างน้อยบน Linux จะแสดงเฉพาะพอร์ตที่เปิดอยู่โดยไม่ระบุสถานะเพราะตรงกันข้ามกับโปรโตคอล TCP โปรโตคอล UDP นั้นไร้สัญชาติ .

netstat -lu



คุณสามารถหลีกเลี่ยงการระบุโปรโตคอลและใช้เฉพาะตัวเลือก -l หรือ –listen เพื่อรับข้อมูลบนพอร์ตทั้งหมดที่ฟังโดยไม่ขึ้นกับโปรโตคอล:

netstat --ฟัง

ตัวเลือกด้านบนจะแสดงข้อมูลสำหรับโปรโตคอลซ็อกเก็ต TCP, UDP และ Unix

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

netstat -น้ำ

ที่ไหน:
เน็ตสแตท: เรียกโปรแกรม
-v: ฟุ่มเฟือย
-ถึง: แสดงการเชื่อมต่อที่ใช้งานอยู่
-NS: แสดงการเชื่อมต่อ tcp
-NS: แสดงพอร์ตเป็นค่าตัวเลข

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

lsof-ผม 4 -ถึง -NS <กระบวนการ-หมายเลข>

ในตัวอย่างต่อไป ฉันจะตรวจสอบกระบวนการ 19327:

lsof-ผม 4 -ถึง -NS 19327

ที่ไหน:
lsof : เรียกโปรแกรม
-ผม: แสดงรายการไฟล์ที่โต้ตอบกับอินเทอร์เน็ต ตัวเลือก 4 สั่งให้พิมพ์เฉพาะ IPv4 ตัวเลือก 6 สามารถใช้ได้กับ IPv6
-ถึง: สั่งให้เอาต์พุตเป็น ANDed
-NS: ระบุหมายเลข PID ของกระบวนการที่คุณต้องการตรวจสอบ

อย่างที่คุณเห็นกระบวนการนี้เชื่อมโยงกับพอร์ต smtp ที่รับฟัง

วิธีตรวจสอบพอร์ตที่เปิดอยู่บน linux จากระยะไกล


หากคุณต้องการตรวจจับพอร์ตบนระบบระยะไกล เครื่องมือที่ใช้กันอย่างแพร่หลายคือ Nmap (Network Mapper) ตัวอย่างต่อไปนี้แสดงการสแกนพอร์ตเดียวกับ Linuxhint.com:

nmaplinuxhint.com

เอาต์พุตถูกเรียงลำดับใน 3 คอลัมน์ที่แสดงพอร์ต สถานะพอร์ต และการบริการที่รอรับด้านหลังพอร์ต

ไม่แสดง:988พอร์ตปิด
บริการของรัฐพอร์ต
22/tcp เปิดssh
25/tcp เปิด smtp
80/TCP เปิด http
161/tcp กรอง snmp
443/tcp เปิด https
1666/tcp กรอง netview-aix-6
1723/tcp กรอง pptp
6666/tcp กรอง irc
6667/tcp กรอง irc
6668/tcp กรอง irc
6669/tcp กรอง irc
9100/tcp กรอง jetdirect

โดยค่าเริ่มต้น nmap จะสแกนพอร์ตที่พบบ่อยที่สุด 1,000 พอร์ตเท่านั้น หากคุณต้องการให้ nmap สแกนพอร์ตทั้งหมดที่ทำงาน:

nmap -NS-linuxhint.com

ที่ บทความที่เกี่ยวข้อง ส่วนของบทช่วยสอนนี้ คุณจะพบบทช่วยสอนเพิ่มเติมเกี่ยวกับ Nmap เพื่อสแกนพอร์ตและเป้าหมายด้วยตัวเลือกเพิ่มเติมมากมาย

การลบบริการใน Debian 10 buster

นอกจากนี้ ขอแนะนำให้ใช้กฎไฟร์วอลล์เพื่อป้องกันไม่ให้พอร์ตของคุณลบบริการที่ไม่จำเป็นออก ภายใต้ Debian 10 Buster สิ่งนี้สามารถทำได้ด้วย apt.
ตัวอย่างต่อไปนี้แสดงวิธีการลบบริการ Apache 2 โดยใช้ apt:

apt ลบ apache2

หากได้รับการร้องขอให้กด และ เพื่อยุติการถอด

วิธีปิดพอร์ตที่เปิดอยู่บน Linux โดยใช้ UFW

หากคุณพบพอร์ตที่เปิดอยู่ คุณไม่จำเป็นต้องเปิด วิธีที่ง่ายที่สุดคือปิดโดยใช้ UFW (Uncomplicated Firewall)
มีสองวิธีในการบล็อกพอร์ตโดยใช้ตัวเลือก ปฏิเสธ และด้วยตัวเลือก ปฏิเสธ ความแตกต่างคือคำสั่งปฏิเสธจะแจ้งด้านที่สองว่าการเชื่อมต่อถูกปฏิเสธ

เพื่อบล็อกพอร์ต 22 โดยใช้กฎ ปฏิเสธ แค่วิ่ง:

ufw ปฏิเสธ22

เพื่อบล็อกพอร์ต 22 โดยใช้กฎ ปฏิเสธ แค่วิ่ง:

ufw ปฏิเสธ22

บน บทความที่เกี่ยวข้อง ส่วนท้ายของบทช่วยสอนนี้ คุณจะพบกับบทช่วยสอนที่ดีเกี่ยวกับไฟร์วอลล์ที่ไม่ซับซ้อน

วิธีปิดพอร์ตที่เปิดอยู่บน Linux โดยใช้ iptables

แม้ว่า UFW จะเป็นวิธีที่ง่ายที่สุดในการจัดการพอร์ต แต่ก็เป็นส่วนหน้าสำหรับ IPtables
ตัวอย่างต่อไปนี้แสดงวิธีการปฏิเสธการเชื่อมต่อกับพอร์ต 22 โดยใช้ iptables:

iptables-ผมป้อนข้อมูล-NStcp--dport 22 -NSปฏิเสธ

กฎข้างต้นแนะนำให้ปฏิเสธการเชื่อมต่อ TCP ขาเข้า (INPUT) ทั้งหมดไปยังพอร์ตปลายทาง (dport) 22 การถูกปฏิเสธแหล่งที่มาจะได้รับแจ้งว่าการเชื่อมต่อถูกปฏิเสธ

กฎต่อไปนี้เพียงดรอปแพ็กเก็ตทั้งหมดโดยไม่แจ้งต้นทางว่าการเชื่อมต่อถูกปฏิเสธ:

iptables-ถึงป้อนข้อมูล-NStcp--dport 22 -NSหยด

ฉันหวังว่าคุณจะพบว่าบทช่วยสอนสั้น ๆ นี้มีประโยชน์ ติดตาม LinuxHint เพื่อรับการอัปเดตและเคล็ดลับเพิ่มเติมเกี่ยวกับ Linux และเครือข่าย

บทความที่เกี่ยวข้อง:

  • การทำงานกับ UFW (ไฟร์วอลล์ที่ไม่ซับซ้อน)
  • พื้นฐาน NMAP กวดวิชา
  • วิธีการแสดงรายการพอร์ตที่เปิดอยู่ใน Firewalld
  • การสแกนเครือข่าย Nmap
  • การติดตั้งและใช้งาน Zenmap (Nmap GUI) บน Ubuntu และ Debian
  • Nmap: สแกนช่วง IP
  • การใช้สคริปต์ nmap: แบนเนอร์ Nmap grab
  • 30 Nmap ตัวอย่าง