.## 1. บทนำ
สำหรับผู้ใช้หลายคนที่ทำงานกับ Ubuntu การจัดการพอร์ตเป็นส่วนสำคัญในการรักษาความปลอดภัยของระบบและประสิทธิภาพของเครือข่าย โดยเฉพาะการตรวจสอบพอร์ตที่เปิดอยู่เป็นสิ่งจำเป็นเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตเมื่อให้บริการหรือจัดการการสื่อสารเครือข่าย นอกจากนี้การตรวจสอบพอร์ตยังช่วยในการแก้ไขปัญหาและปรับแต่งการกำหนดค่าเครือข่ายให้เหมาะสม
บทความนี้ให้คำอธิบายโดยละเอียดเกี่ยวกับวิธีตรวจสอบพอร์ตใน Ubuntu และแนะนำวิธีการที่ใช้คำสั่งเพื่อทำเช่นนั้น ไม่ว่าคุณจะเป็นผู้ใช้ Ubuntu ระดับเริ่มต้นหรือระดับกลาง ข้อมูลที่นี่จะมีคุณค่าอย่างมาก
2. พอร์ตคืออะไร?
หมายเลขพอร์ตทำหน้าที่เหมือน “ประตูทางเข้า” ที่ทำให้คอมพิวเตอร์ส่งข้อมูลไปยังบริการหรือกระบวนการเฉพาะระหว่างการสื่อสาร เครือข่ายส่วนใหญ่ใช้โปรโตคอลสองประเภท: TCP และ UDP TCP เป็นโปรโตคอลแบบเชื่อมต่อที่สร้างการเชื่อมต่อก่อนการสื่อสารเพื่อรับประกันความน่าเชื่อถือของข้อมูล ส่วน UDP เป็นโปรโตคอลแบบไม่มีการเชื่อมต่อที่ส่งข้อมูลโดยไม่ต้องสร้างการเชื่อมต่อ ทำให้การส่งข้อมูลเร็วขึ้น
ความแตกต่างระหว่าง TCP และ UDP
- TCP (Transmission Control Protocol) : โปรโตคอลที่ออกแบบมาสำหรับการสื่อสารที่เชื่อถือได้ ซึ่งรับประกันว่าข้อมูลจะมาถึงอย่างถูกต้อง มักใช้กับบริการเช่นเว็บเซิร์ฟเวอร์ (HTTP/HTTPS) และ SSH
- UDP (User Datagram Protocol) : แตกต่างจาก TCP ที่ไม่รับประกันการสื่อสารที่เชื่อถือได้ แต่ให้การส่งข้อมูลที่มีความหน่วงต่ำ ใช้กับบริการเรียลไทม์เช่นการสตรีมและ VoIP
การเข้าใจหมายเลขพอร์ตมีบทบาทสำคัญในการจัดการความปลอดภัยและประสิทธิภาพของเครือข่าย
3. รายการคำสั่งเพื่อตรวจสอบพอร์ตใน Ubuntu
Ubuntu มีคำสั่งหลายตัวเพื่อเช็คพอร์ตที่เปิดอยู่ในขณะนี้ ด้านล่างเป็นคำสั่งที่นิยมใช้บ่อย
1. คำสั่ง netstat
netstat เป็นคำสั่งที่ทรงพลังซึ่งแสดงข้อมูลเกี่ยวกับการเชื่อมต่อเครือข่าย ตารางการกำหนดเส้นทาง และสถิติของอินเทอร์เฟซ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อตรวจสอบพอร์ตที่กำลังฟังอยู่:
sudo netstat -lntu
-l: แสดงเฉพาะพอร์ตที่กำลังฟัง-n: แสดงที่อยู่ IP และหมายเลขพอร์ตในรูปแบบตัวเลข-t: แสดงพอร์ต TCP-u: แสดงพอร์ต UDP
2. คำสั่ง ss
ss ถูกใช้แทน netstat อย่างกว้างขวางและสามารถแสดงพอร์ตที่กำลังฟังได้อย่างมีประสิทธิภาพมากขึ้น ใช้คำสั่งต่อไปนี้:
ss -lntu
ss ถือว่าดีกว่า netstat เนื่องจากความสามารถในการดึงข้อมูลรายละเอียดของซ็อกเก็ตเครือข่ายได้อย่างรวดเร็ว
3. คำสั่ง lsof
lsof แสดงรายการกระบวนการที่เปิดไฟล์ และสามารถใช้ตรวจสอบว่ากระบวนการใดกำลังใช้พอร์ตเครือข่ายได้เช่นกัน:
sudo lsof -i
4. คำสั่ง nmap
nmap เป็นเครื่องมือที่เป็นที่รู้จักในด้านความปลอดภัยเครือข่ายสำหรับสแกนพอร์ตที่เปิดและระบุบริการ คำสั่งต่อไปนี้จะสแกนพอร์ตทั้งหมดบน localhost:
sudo nmap -n -PN -sT -sU -p- localhost

4. การเปิดและปิดพอร์ต
คุณสามารถเสริมความปลอดภัยของระบบ Ubuntu ของคุณได้โดยการเปิดหรือปิดพอร์ต Ubuntu มาพร้อมกับเครื่องมือไฟร์วอลล์ง่าย ๆ ชื่อ ufw (Uncomplicated Firewall) ซึ่งทำให้การจัดการพอร์ตเป็นเรื่องง่าย
การเปิดพอร์ตด้วย ufw
ตัวอย่างเช่น เพื่ออนุญาตการรับส่ง HTTP บนพอร์ต 80 ให้ใช้คำสั่งด้านล่างนี้:
sudo ufw allow 80
คุณสามารถเปิดพอร์ต SSH (22) ด้วยวิธีเดียวกันได้เช่นกัน:
sudo ufw allow 22
การปิดพอร์ตด้วย ufw
เพื่อปิดพอร์ตที่เปิดอยู่ ให้ใช้คำสั่งต่อไปนี้:
sudo ufw delete allow 80
คำสั่งนี้จะลบกฎที่อนุญาตพอร์ต 80
5. ตัวอย่างการปฏิบัติ: การตรวจสอบพอร์ตเฉพาะ
นี่คือตัวอย่างการตรวจสอบพอร์ตเฉพาะ ตัวอย่างเช่น เพื่อตรวจสอบว่า SSH กำลังฟังบนพอร์ต 22 หรือไม่ ให้ใช้คำสั่ง netstat หรือ ss ดังนี้:
ss -lnt | grep :22
คุณยังสามารถตรวจสอบด้วย lsof ได้เช่นกัน:
sudo lsof -i :22
ผลลัพธ์ควรยืนยันว่าบริการ SSH กำลังฟังบนพอร์ต 22
6. ปัญหาทั่วไปและวิธีแก้
.มีปัญหาทั่วไปบางประการที่อาจเกิดขึ้นเมื่อทำการตรวจสอบหรือเปิดพอร์ต ด้านล่างนี้เป็นปัญหาที่พบบ่อยและวิธีแก้ไขของแต่ละกรณี
พอร์ตไม่ได้เปิด
หากพอร์ตดูเหมือนจะไม่เปิดอยู่ ให้ตรวจสอบการตั้งค่าไฟร์วอลล์ว่าถูกต้องหรือไม่ ก่อนอื่นให้ตรวจสอบสถานะของ ufw ด้วยคำสั่งต่อไปนี้:
sudo ufw status
หากไฟร์วอลล์ไม่ได้บล็อกพอร์ต ให้ยืนยันว่าบริการที่เกี่ยวข้องกำลังทำงานอย่างถูกต้อง ตัวอย่างเช่น เพื่อตรวจสอบการทำงานของ SSH ให้ใช้คำสั่งนี้:
sudo systemctl status ssh
7. สรุป
บทความนี้อธิบายคำสั่งและวิธีการพื้นฐานสำหรับการตรวจสอบพอร์ตใน Ubuntu การตรวจสอบพอร์ตเป็นสิ่งสำคัญสำหรับการรักษาความปลอดภัยของเครือข่ายและความเสถียรของระบบ โดยเฉพาะอย่างยิ่ง การจัดการพอร์ตที่กำลังฟังและสามารถเข้าถึงจากภายนอกเป็นสิ่งจำเป็นเพื่อจำกัดช่องโหว่ต่าง ๆ ปฏิบัติตามขั้นตอนที่แนะนำในที่นี้เพื่อจัดการและรักษาความปลอดภัยของพอร์ตระบบของคุณใน Ubuntu อย่างเหมาะสม.


