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

การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH

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

การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องเสริมความปลอดภัยให้ SSH

เซิร์ฟเวอร์ SSH ที่เปิดให้เข้าถึงจากอินเทอร์เน็ตตกเป็นเป้าหมายของการโจมตีอัตโนมัติอยู่ตลอดเวลา การตั้งค่าเริ่มต้นยังเปิดช่องทางหลายอย่างที่บอตพยายามตรวจสอบซ้ำ ๆ

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

ไฟล์ sshd_config

พฤติกรรม SSH ฝั่งเซิร์ฟเวอร์ควบคุมด้วย /etc/ssh/sshd_config ซึ่งแตกต่างจากการกำหนดค่าฝั่งไคลเอ็นต์ที่คุณตั้งค่าไว้ก่อนหน้านี้ (~/.ssh/config)

แก้ไขไฟล์นี้ในฐานะ root เสมอ และสำรองข้อมูลก่อนทำการเปลี่ยนแปลง

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

ปิดการเข้าสู่ระบบของ Root

บัญชี root คือสิ่งแรกที่ผู้โจมตีมักลอง ปิดการเข้าสู่ระบบ root โดยตรงเพื่อบังคับให้ผู้โจมตีต้องเดาชื่อผู้ใช้ที่ถูกต้องด้วย

ตั้งค่า PermitRootLogin เป็น no ผู้ดูแลระบบควรเข้าสู่ระบบด้วยผู้ใช้ทั่วไปและใช้ sudo

PermitRootLogin no

ปิดการตรวจสอบสิทธิ์ด้วยรหัสผ่าน

เมื่อการตรวจสอบสิทธิ์ด้วยกุญแจใช้งานได้แล้ว ให้ปิดการใช้รหัสผ่านทั้งหมด วิธีนี้จะหยุดการโจมตีแบบเดารหัสผ่านได้อย่างสมบูรณ์ — เนื่องจากไม่มีรหัสผ่านให้เดา

คำเตือน: ตรวจสอบให้แน่ใจว่าการเข้าสู่ระบบด้วยกุญแจใช้งานได้ก่อนนำการตั้งค่านี้ไปใช้ มิฉะนั้นคุณอาจล็อกตัวเองออกจากระบบ

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

จำกัดผู้ที่สามารถเข้าสู่ระบบ

คุณสามารถระบุบัญชีที่อนุญาตให้ใช้ SSH ได้อย่างชัดเจนด้วย AllowUsers หรือ AllowGroups ผู้ที่ไม่มีรายชื่อจะถูกปฏิเสธ แม้จะมีกุญแจที่ถูกต้อง

นี่คือการควบคุมที่เข้มงวดและเรียบง่ายสำหรับเซิร์ฟเวอร์ที่มีผู้ใช้หลายคน

AllowUsers deploy admin
# or by group:
AllowGroups sshusers

เปลี่ยนพอร์ตเริ่มต้น (ไม่บังคับ)

การย้าย SSH ออกจากพอร์ต 22 ไม่ได้เพิ่มความปลอดภัยที่แท้จริง แต่ช่วยลดเสียงรบกวนจากเครื่องมือสแกนอัตโนมัติในบันทึกของคุณได้อย่างมาก

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

Port 2222

จำกัดความพยายามเข้าสู่ระบบและเซสชัน

คำสั่งกำหนดค่าหลายรายการช่วยลดช่วงเวลาที่ผู้โจมตีมีโอกาสดำเนินการ:

  • MaxAuthTries — จำนวนความพยายามที่ล้มเหลวก่อนตัดการเชื่อมต่อ
  • LoginGraceTime — จำนวนวินาทีที่อนุญาตให้ตรวจสอบสิทธิ์
  • MaxSessions — จำนวนเซสชันพร้อมกันต่อการเชื่อมต่อหนึ่งครั้ง
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2

ใช้การเปลี่ยนแปลงอย่างปลอดภัย

หลังแก้ไขแล้ว ให้ตรวจสอบไวยากรณ์ด้วย sshd -t ก่อนเริ่มบริการใหม่ เพราะการพิมพ์ผิดอาจทำให้บริการเริ่มทำงานไม่ได้และทำให้คุณถูกล็อกออกจากระบบ

จากนั้นโหลดบริการใหม่ โดยเปิดเซสชันปัจจุบันไว้ และทดสอบการเชื่อมต่อใหม่ก่อนปิดเซสชันเดิม

sudo sshd -t
sudo systemctl restart ssh

ป้องกันการโจมตีแบบเดารหัสผ่านด้วย Fail2ban

Fail2ban เฝ้าดูบันทึกการยืนยันตัวตนของคุณ และแบน IP ที่ยืนยันตัวตนไม่สำเร็จหลายครั้งเป็นการชั่วคราว โดยเพิ่มชั้นไฟร์วอลล์แบบไดนามิกเหนือการตั้งค่าของ sshd

ติดตั้งและเปิดใช้งานคุก SSH โดยค่าตั้งต้นเหมาะสมสำหรับเซิร์ฟเวอร์ส่วนใหญ่

sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

ตรวจสอบการเสริมความปลอดภัย

ยืนยันว่าเซิร์ฟเวอร์ปฏิเสธสิ่งที่คุณปิดใช้งานแล้ว ลองเชื่อมต่อโดยแสดงผลแบบละเอียด เพื่อดูว่าเซิร์ฟเวอร์เสนอวิธีการยืนยันตัวตนใดบ้าง

เซิร์ฟเวอร์ที่เสริมความปลอดภัยแล้วควรประกาศรองรับเฉพาะ publickey และปฏิเสธการเข้าสู่ระบบด้วยรหัสผ่านและบัญชี root

ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'

แนวทางปฏิบัติที่ดี

รักษาความปลอดภัยของเซิร์ฟเวอร์ SSH อย่างต่อเนื่อง:

  • อย่าใช้ PasswordAuthentication no ก่อนทดสอบการเข้าสู่ระบบด้วยคีย์
  • เปิดเซสชันไว้อย่างน้อยหนึ่งเซสชันขณะแก้ไขการตั้งค่า
  • ใช้ sshd -t ทุกครั้งที่แก้ไข
  • เสริมความปลอดภัยของ sshd ควบคู่กับไฟร์วอลล์และ Fail2ban

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการเสริมความปลอดภัยของ SSH

สรุปทบทวน

คุณได้เสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH ผ่าน /etc/ssh/sshd_config แล้ว:

  • ปิดการเข้าสู่ระบบด้วยบัญชี root และรหัสผ่าน
  • อนุญาตเฉพาะผู้ใช้ที่กำหนดด้วย AllowUsers
  • ปรับค่า MaxAuthTries และ LoginGraceTime
  • เพิ่ม Fail2ban เพื่อป้องกันการโจมตีแบบเดารหัสผ่านอย่างไดนามิก

ตรวจสอบด้วย sshd -t และทดสอบทุกครั้งก่อนปิดเซสชัน

คำถามที่พบบ่อย

บทเรียน “การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH”

ล็อกเซิร์ฟเวอร์ SSH ให้รัดกุมด้วยการแก้ไข sshd_config ปิดการเข้าสู่ระบบด้วย root และรหัสผ่าน เปลี่ยนค่าเริ่มต้นที่เสี่ยง จำกัดผู้ใช้ และใช้การป้องกันหลายชั้น เพื่อให้เชื่อมต่อได้เฉพาะไคลเอ็นต์ที่เชื่… คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ทำความเข้าใจโพรโทคอล SSH
  2. การกำหนดค่าไคลเอ็นต์ SSH
  3. การยืนยันตัวตนด้วยคีย์ SSH
  4. การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH
← กลับไปที่ Linux Server Deployment & SSH Mastery