การจัดการและรักษาความปลอดภัยพอร์ต
เปิดและปิดพอร์ตเฉพาะสำหรับบริการต่าง ๆ ใช้การส่งต่อพอร์ต และทำความเข้าใจช่องทางการโจมตีทั่วไปที่เกี่ยวข้องกับพอร์ตเปิด
การจัดการและรักษาความปลอดภัยพอร์ต เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน
พอร์ตเครือข่ายคืออะไร
ลองจินตนาการว่าเซิร์ฟเวอร์เป็นอาคารชุด แต่ละห้องมีหมายเลข และผู้มาเยือนต้องทราบว่าจะไปห้องใด ในระบบเครือข่าย “หมายเลขห้อง” เหล่านี้เรียกว่า พอร์ต
พอร์ตเครือข่ายคือปลายทางการสื่อสาร ช่วยให้เซิร์ฟเวอร์ส่งการรับส่งข้อมูลเครือข่ายขาเข้าไปยังบริการหรือแอปพลิเคชันที่ถูกต้อง แต่ละพอร์ตมีหมายเลขเฉพาะ ตั้งแต่ 0 ถึง 65535
หมายเลขพอร์ตทั่วไป
บริการจำนวนมากใช้หมายเลขพอร์ตมาตรฐานที่เป็นที่รู้จัก การทราบหมายเลขเหล่านี้ช่วยให้คุณระบุบริการและกำหนดค่าไฟร์วอลล์ได้
- พอร์ต 22: ใช้สำหรับ SSH (Secure Shell) เพื่อเข้าถึงจากระยะไกล
- พอร์ต 80: ใช้สำหรับ HTTP (โพรโทคอลถ่ายโอนข้อความหลายมิติ) สำหรับการรับส่งข้อมูลเว็บทั่วไป
- พอร์ต 443: ใช้สำหรับ HTTPS (HTTP แบบปลอดภัย) สำหรับการรับส่งข้อมูลเว็บที่เข้ารหัส
- พอร์ต 53: ใช้สำหรับ DNS (ระบบชื่อโดเมน) เพื่อแปลงชื่อ
นี่เป็นเพียงตัวอย่างบางส่วน ยังมีพอร์ตอีกหลายพันพอร์ตสำหรับแอปพลิเคชันต่าง ๆ
ตรวจสอบพอร์ตที่กำลังรับฟัง
ก่อนเปิดพอร์ตใหม่ ควรทราบว่าพอร์ตใดกำลังทำงานอยู่บนเซิร์ฟเวอร์ของคุณ คำสั่ง ss (สถิติซ็อกเก็ต) เป็นเครื่องมือสมัยใหม่สำหรับตรวจสอบซ็อกเก็ตเครือข่าย
ตัวเลือก -ltn จะแสดงซ็อกเก็ต TCP ที่กำลังรับฟังเป็นตัวเลข โดยไม่แปลงชื่อโฮสต์
ss -ltnจัดการพอร์ตด้วย UFW
UFW (ไฟร์วอลล์ที่ใช้งานง่าย) เป็นเครื่องมือจัดการไฟร์วอลล์ยอดนิยมบน Ubuntu และระบบอื่น ๆ ที่พัฒนาบน Debian โดยช่วยให้การกำหนดค่ากฎ iptables ง่ายขึ้น
หากต้องการอนุญาตหรือปฏิเสธการรับส่งข้อมูล ให้ระบุหมายเลขพอร์ตและโพรโทคอล (TCP หรือ UDP) อย่าลืมโหลด UFW ใหม่หรือเปิดใช้งานหลังจากเปลี่ยนแปลงค่า
sudo ufw allow 80/tcp
sudo ufw deny 22
sudo ufw enableจัดการพอร์ตด้วย firewalld
ในระบบ CentOS, RHEL และ Fedora firewalld เป็นเครื่องมือจัดการไฟร์วอลล์เริ่มต้น โดยใช้ “โซน” เพื่อจัดการอินเทอร์เฟซเครือข่ายต่าง ๆ
คุณเพิ่มกฎลงในโซน ซึ่งโดยทั่วไปคือโซน public สำหรับบริการที่เปิดสู่เซิร์ฟเวอร์อินเทอร์เน็ต จากนั้นโหลด firewalld ใหม่เพื่อใช้การเปลี่ยนแปลง
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent
sudo firewall-cmd --reloadทำความรู้จักการส่งต่อพอร์ต
การส่งต่อพอร์ต เป็นเทคนิคที่เปลี่ยนเส้นทางการรับส่งข้อมูลเครือข่ายจากพอร์ตหนึ่งไปยังอีกพอร์ตหนึ่ง ซึ่งอาจเกิดขึ้นในเครื่องเดียวกัน หรือจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง
มักใช้เพื่อให้อุปกรณ์ภายนอกเข้าถึงบริการในเครือข่ายส่วนตัว หรือสร้างอุโมงค์ส่งข้อมูลอย่างปลอดภัยผ่านเซิร์ฟเวอร์ตัวกลาง
การส่งต่อพอร์ตภายในเครื่องด้วย SSH
รูปแบบหนึ่งที่ใช้กันทั่วไปคือ การส่งต่อพอร์ตภายในเครื่องด้วย SSH วิธีนี้จะสร้างอุโมงค์ที่ปลอดภัยจากเครื่องภายในเครื่องของคุณไปยังเซิร์ฟเวอร์ระยะไกล จากนั้นต่อจากเซิร์ฟเวอร์ระยะไกลนั้นไปยังโฮสต์และพอร์ตปลายทางอีกแห่งหนึ่ง ซึ่งอาจเป็นเซิร์ฟเวอร์ระยะไกลเองก็ได้
วิธีนี้มีประโยชน์สำหรับเข้าถึงบริการในเครือข่ายส่วนตัวระยะไกลที่ไม่ได้เปิดให้เข้าถึงโดยตรงจากอินเทอร์เน็ต เช่น ฐานข้อมูลหรือเว็บแอปพลิเคชันภายใน
สาธิตการส่งต่อภายในเครื่องด้วย SSH
ต่อไปนี้คือวิธีใช้การส่งต่อพอร์ตภายในเครื่องด้วย SSH คำสั่งนี้จะส่งต่อการรับส่งข้อมูลจากพอร์ต 8080 ของเครื่องภายในเครื่องของคุณไปยังพอร์ต 80 บน localhost (ตัวเซิร์ฟเวอร์ระยะไกลเอง) ผ่านการเชื่อมต่อ SSH ไปยัง your_server_ip
เมื่อเชื่อมต่อแล้ว คุณสามารถเข้าถึงเว็บเซิร์ฟเวอร์ระยะไกล (บนพอร์ต 80) ได้โดยเปิด http://localhost:8080 บนเครื่องของคุณ
ssh -L 8080:localhost:80 user@your_server_ipแนวทางปฏิบัติที่ดีด้านความปลอดภัยของพอร์ต
การจัดการพอร์ตมีความสำคัญอย่างยิ่งต่อความปลอดภัยของเซิร์ฟเวอร์ แนวทางสำคัญมีดังนี้:
- หลักการให้สิทธิ์เท่าที่จำเป็น: เปิดเฉพาะพอร์ตที่จำเป็นอย่างยิ่งต่อการทำงานของบริการ
- ตรวจสอบเป็นประจำ: ตรวจสอบกฎไฟร์วอลล์และพอร์ตที่กำลังรับฟังเป็นระยะ เพื่อให้แน่ใจว่าไม่มีพอร์ตที่ไม่ได้รับอนุญาตเปิดอยู่
- รหัสผ่าน/คีย์ที่รัดกุม: สำหรับบริการอย่าง SSH ให้ใช้การยืนยันตัวตนที่รัดกุมเสมอ
- จำกัดอัตรา: พิจารณาจำกัดจำนวนครั้งที่พยายามเชื่อมต่อพอร์ตสำคัญ เช่น SSH เพื่อป้องกันการโจมตีแบบเดารหัสผ่านจำนวนมาก
ตรวจสอบความเข้าใจอย่างรวดเร็ว: การจัดการพอร์ต
ข้อใดต่อไปนี้ถือเป็นแนวทางปฏิบัติที่ดีด้านความปลอดภัยเมื่อจัดการพอร์ตของเซิร์ฟเวอร์
ทบทวน: พอร์ตและความปลอดภัย
ในบทเรียนนี้ เราได้สำรวจพอร์ตเครือข่าย ซึ่งมีความสำคัญต่อการส่งข้อมูลไปยังบริการของเซิร์ฟเวอร์ เราได้เรียนรู้หมายเลขพอร์ตทั่วไปและวิธีตรวจสอบพอร์ตที่กำลังรับฟังด้วย ss
ตอนนี้คุณทราบวิธีจัดการกฎไฟร์วอลล์ด้วย UFW และ firewalld และเข้าใจแนวคิดการส่งต่อพอร์ตภายในเครื่องด้วย SSH แล้ว ที่สำคัญ เรายังได้เรียนรู้แนวทางปฏิบัติที่ดีด้านความปลอดภัยของพอร์ตเพื่อให้เซิร์ฟเวอร์ปลอดภัย
เรียนรู้ Linux Server Deployment & SSH Mastery ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “การจัดการและรักษาความปลอดภัยพอร์ต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการและรักษาความปลอดภัยพอร์ต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการและรักษาความปลอดภัยพอร์ต”
เปิดและปิดพอร์ตเฉพาะสำหรับบริการต่าง ๆ ใช้การส่งต่อพอร์ต และทำความเข้าใจช่องทางการโจมตีทั่วไปที่เกี่ยวข้องกับพอร์ตเปิด คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการและรักษาความปลอดภัยพอร์ต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม
ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดค่าเครือข่ายพื้นฐาน
- ทำความเข้าใจไฟร์วอลล์ (UFW/firewalld)
- การจัดการและรักษาความปลอดภัยพอร์ต
- การกำหนดค่า DNS และการแก้ไขปัญหา