การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ
ใช้การเสริมความแข็งแกร่งของ sshd_config แนวทางการหมุนเวียนกุญแจ และการบันทึกการตรวจสอบ เพื่อเพิ่มความปลอดภัยให้การใช้งาน SSH
การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
การปิดการยืนยันตัวตนด้วยรหัสผ่าน
ขั้นตอนเสริมความปลอดภัย SSH ที่ให้ผลมากที่สุดคือการตั้งค่า PasswordAuthentication no ใน /etc/ssh/sshd_config วิธีนี้บังคับให้ผู้ใช้ทุกคนยืนยันตัวตนด้วยคีย์สาธารณะ ซึ่งขจัดความเสี่ยงจากรหัสผ่านที่อ่อนแอหรือใช้ซ้ำ รวมถึงการโจมตีแบบเดารหัสผ่านจำนวนมาก โปรดตรวจสอบให้แน่ใจว่ามีการติดตั้งคีย์ที่ได้รับอนุญาตอย่างน้อยหนึ่งคีย์ก่อนปิดการยืนยันตัวตนด้วยรหัสผ่าน เพื่อป้องกันไม่ให้คุณถูกล็อกออกจากระบบ
การจำกัดผู้ใช้และกลุ่มที่ได้รับอนุญาต
คำสั่งกำหนด AllowUsers และ AllowGroups จะจำกัดการเข้าถึง SSH ไว้เฉพาะผู้ใช้ที่ระบุชื่อหรือสมาชิกของกลุ่ม ตัวอย่างเช่น AllowGroups sshusers อนุญาตเฉพาะสมาชิกของกลุ่ม sshusers เท่านั้น วิธีนี้เป็นการป้องกันหลายชั้น เพราะแม้ผู้โจมตีจะทราบชื่อผู้ใช้และได้ข้อมูลรับรองมา ก็ยังไม่สามารถเข้าถึง SSH ได้หากบัญชีนั้นไม่ได้รับอนุญาตไว้อย่างชัดเจน
การเปลี่ยนพอร์ตเริ่มต้น
การเปลี่ยน SSH จากพอร์ต 22 เป็นพอร์ตหมายเลขสูงเป็นเพียงการอำพราง ไม่ใช่การเพิ่มความปลอดภัย อย่างไรก็ตาม วิธีนี้ช่วยลดข้อมูลรบกวนในบันทึกเหตุการณ์จากเครื่องมือสแกนอัตโนมัติที่มุ่งโจมตีพอร์ต 22 ได้อย่างมาก ทำให้วิเคราะห์บันทึกเหตุการณ์เพื่อค้นหาภัยคุกคามจริงได้ง่ายขึ้น โปรดกำหนดกฎไฟร์วอลล์ให้เป็นกลไกควบคุมการเข้าถึงหลักอยู่เสมอ การอำพรางพอร์ตเป็นเพียงมาตรการเสริมเท่านั้น
การปิดการเข้าสู่ระบบของรูท
การตั้งค่า PermitRootLogin no จะป้องกันการยืนยันตัวตนของรูทโดยตรงผ่าน SSH ผู้โจมตีที่มุ่งเป้าไปยังรูทจะทราบชื่อผู้ใช้ที่ใช้งานได้แน่นอน และจะมีสิทธิ์ไม่จำกัดหากโจมตีสำเร็จ ค่าที่แนะนำคือ PermitRootLogin prohibit-password ซึ่งอนุญาตให้รูทเข้าสู่ระบบได้เฉพาะด้วยการยืนยันตัวตนด้วยคีย์สาธารณะเท่านั้น ช่วยบล็อกการเดารหัสผ่านของรูทจำนวนมากโดยยังคงรองรับการเข้าถึงในกรณีฉุกเฉิน
การจำกัดจำนวนครั้งที่พยายามยืนยันตัวตน
MaxAuthTries 3 จำกัดจำนวนครั้งที่พยายามยืนยันตัวตนต่อการเชื่อมต่อหนึ่งครั้งไว้ที่สามครั้ง หลังจากล้มเหลวสามครั้ง เซิร์ฟเวอร์จะยุติการเชื่อมต่อ วิธีนี้ช่วยชะลอการพยายามเดารหัสผ่านจำนวนมาก เมื่อใช้ร่วมกับการหน่วงเวลาแบบทวีคูณจาก fail2ban หรือ SSHGuard ซึ่งจะบล็อก IP ชั่วคราวหลังจากล้มเหลวซ้ำหลายครั้ง การโจมตีแบบเดารหัสผ่านจำนวนมากจะต้องใช้ทรัพยากรคำนวณจนไม่สามารถทำได้จริง
การควบคุมเวลาการเข้าสู่ระบบ
LoginGraceTime ระบุระยะเวลาที่เซิร์ฟเวอร์รอการยืนยันตัวตนที่สำเร็จก่อนตัดการเชื่อมต่อ ค่าเริ่มต้นคือ 120 วินาที การลดค่านี้เหลือ 20 วินาทีจะช่วยป้องกันการพยายามเดารหัสผ่านแบบช้า และลดการใช้ทรัพยากรกับการเชื่อมต่อที่ยังไม่ได้ยืนยันตัวตน ClientAliveInterval และ ClientAliveCountMax ใช้ควบคุมการตรวจสอบสถานะการเชื่อมต่อ เพื่อยุติการเชื่อมต่อที่ไม่ได้ใช้งานหรือขัดข้อง
การจำกัดอัลกอริทึมการเข้ารหัสที่อนุญาต
การตั้งค่า SSH สมัยใหม่ควรจำกัดอัลกอริทึมไว้เฉพาะตัวเลือกที่แข็งแกร่งและทันสมัย ใน sshd_config ให้ตั้งค่า Ciphers เป็น chacha20-poly1305@openssh.com,aes256-gcm@openssh.com ตั้งค่า MACs เป็น hmac-sha2-256-etm@openssh.com และตั้งค่า KexAlgorithms เป็น curve25519-sha256 วิธีนี้จะกำจัดอัลกอริทึมรุ่นเก่าอย่าง arcfour, DES และรหัสตรวจสอบความถูกต้องของข้อความที่ใช้ MD5 ซึ่งอาจยังมีไว้เพื่อรองรับการใช้งานย้อนหลัง
การบล็อกการเดารหัสผ่านจำนวนมากด้วย fail2ban
fail2ban จะตรวจสอบบันทึกเหตุการณ์การยืนยันตัวตน และบล็อกที่อยู่ IP ที่พยายามเข้าสู่ระบบล้มเหลวเกินเกณฑ์ที่กำหนด หลังจากล้มเหลวตามจำนวนที่กำหนดภายในช่วงเวลาหนึ่ง fail2ban จะเพิ่มกฎ iptables เพื่อทิ้งแพ็กเก็ตเพิ่มเติมจาก IP นั้น การตอบสนองแบบอัตโนมัตินี้ทำให้การโจมตีแบบเดารหัสผ่านจำนวนมากทำได้ยากในทางปฏิบัติ โดยไม่ต้องมีผู้ดูแลดำเนินการด้วยตนเอง
การตรวจสอบด้วย ssh-audit
เครื่องมือ ssh-audit จะเชื่อมต่อกับเซิร์ฟเวอร์ SSH และประเมินการตั้งค่าของเซิร์ฟเวอร์ ได้แก่ อัลกอริทึมการแลกเปลี่ยนคีย์ ประเภทคีย์โฮสต์ รหัสเข้ารหัส และรหัสตรวจสอบความถูกต้องของข้อความที่เซิร์ฟเวอร์รองรับ พร้อมระบุตัวเลือกที่เลิกใช้แล้วหรืออ่อนแอ การเรียกใช้ ssh-audit กับเซิร์ฟเวอร์ของคุณก่อนและหลังการเสริมความปลอดภัยจะให้การประเมินก่อนและหลังที่เป็นกลาง และช่วยระบุช่องว่างในการตั้งค่า
การบันทึกเหตุการณ์และการตรวจสอบการเข้าถึง
เหตุการณ์การยืนยันตัวตนผ่าน SSH จะถูกบันทึกผ่าน syslog บน Linux ไฟล์ /var/log/auth.log (Debian) หรือ /var/log/secure (RHEL) จะบันทึกการเข้าสู่ระบบที่สำเร็จและล้มเหลวทุกครั้ง พร้อมเวลาประทับ ชื่อผู้ใช้ IP ต้นทาง และลายนิ้วมือคีย์ที่ใช้ การส่งบันทึกเหตุการณ์เหล่านี้ไปยัง SIEM แบบรวมศูนย์ช่วยตรวจจับรูปแบบการเข้าถึงที่ผิดปกติ เช่น การเข้าสู่ระบบจากประเทศที่ไม่คาดคิดหรือในช่วงเวลาที่ผิดปกติ
ตัวอย่างการตั้งค่าที่เสริมความปลอดภัยอย่างสมบูรณ์
sshd_config ที่เสริมความปลอดภัยจะประกอบด้วย PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, Ciphers และ MACs ที่จำกัดไว้, X11Forwarding no และ AllowTcpForwarding no (เว้นแต่จำเป็นต้องทำอุโมงค์) คำสั่งกำหนดแต่ละรายการจะตัดช่องทางการโจมตีเฉพาะด้านออกไป และเมื่อนำมารวมกันจะก่อให้เกิดแนวทางการรักษาความปลอดภัย SSH แบบป้องกันหลายชั้น
การตั้งค่าการเสริมความปลอดภัย SSH
การตั้งค่าใดใน sshd_config ที่มีประสิทธิภาพสูงสุดในการกำจัดการโจมตี SSH ด้วยการเดารหัสผ่านจำนวนมาก
ทบทวนการเสริมความปลอดภัย SSH
รายการตรวจสอบการเสริมความปลอดภัย SSH: ปิดการยืนยันตัวตนด้วยรหัสผ่าน จำกัดการเข้าถึงด้วย AllowGroups/AllowUsers ปิดการเข้าสู่ระบบของรูทหรือจำกัดให้ใช้คีย์เท่านั้น ตั้งค่า MaxAuthTries 3 ลดค่า LoginGraceTime จำกัดอัลกอริทึมให้ใช้เฉพาะรหัสเข้ารหัสสมัยใหม่ ติดตั้ง fail2ban หรือ SSHGuard เรียกใช้ ssh-audit เพื่อการประเมินที่เป็นกลาง และรวมบันทึกเหตุการณ์ไว้ที่ศูนย์กลางเพื่อการตรวจจับความผิดปกติ
คำถามที่พบบ่อย
บทเรียน “การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ”
ใช้การเสริมความแข็งแกร่งของ sshd_config แนวทางการหมุนเวียนกุญแจ และการบันทึกการตรวจสอบ เพื่อเพิ่มความปลอดภัยให้การใช้งาน SSH คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจับมือ SSH และการยืนยันตัวตนด้วยกุญแจโฮสต์
- การยืนยันตัวตนด้วยกุญแจสาธารณะและการส่งต่อเอเจนต์
- เทคนิคการสร้างอุโมงค์ SSH และการส่งต่อพอร์ต
- การเสริมความแข็งแกร่ง SSH และแนวทางปฏิบัติที่ดีด้านการตรวจสอบ