Linux Server Deployment & SSH Mastery · บทเรียน

การจัดการและรักษาความปลอดภัยพอร์ต

เปิดและปิดพอร์ตเฉพาะสำหรับบริการต่าง ๆ ใช้การส่งต่อพอร์ต และทำความเข้าใจช่องทางการโจมตีทั่วไปที่เกี่ยวข้องกับพอร์ตเปิด

บทเรียน 3 จาก 411 ขั้นตอน

การจัดการและรักษาความปลอดภัยพอร์ต เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดค่าเครือข่ายพื้นฐาน
  2. ทำความเข้าใจไฟร์วอลล์ (UFW/firewalld)
  3. การจัดการและรักษาความปลอดภัยพอร์ต
  4. การกำหนดค่า DNS และการแก้ไขปัญหา
← กลับไปที่ Linux Server Deployment & SSH Mastery