การเสริมความปลอดภัยให้เซิร์ฟเวอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจโพรโทคอล SSH
- การกำหนดค่าไคลเอ็นต์ SSH
- การยืนยันตัวตนด้วยคีย์ SSH
- การเสริมความปลอดภัยให้เซิร์ฟเวอร์ SSH