วิธีที่สำคัญในการรักษาความปลอดภัยการกำหนดค่า SSH ของคุณ

คู่มือที่ครอบคลุมสำหรับการรักษาความปลอดภัยการกำหนดค่า SSH ผ่านแนวทางปฏิบัติที่สำคัญ 8 ประการ ได้แก่ การตรวจสอบสิทธิ์โดยใช้คีย์ การปิดใช้งานการเข้าสู่ระบบรูท การเข้ารหัส การอัปเดต 2FA การบันทึก การควบคุมการเข้าถึง และการจัดการคีย์ เหมาะสำหรับผู้ดูแลระบบและผู้เชี่ยวชาญด้านความปลอดภัยที่นำแนวทางปฏิบัติที่ดีที่สุดของ SSH ไปใช้

การรักษาความปลอดภัย SSH เกี่ยวข้องกับเทคนิคที่เป็นไปได้มากมาย แต่ไม่ใช่ว่าทั้งหมดจะใช้งานได้จริงในทุกสภาพแวดล้อม คำแนะนำในบทความนี้เป็นวิธีการที่ได้รับการยอมรับอย่างกว้างขวางและมีผลกระทบสูงซึ่งสร้างสมดุลระหว่างความง่ายในการนำไปปฏิบัติและการป้องกันที่แข็งแกร่ง คำแนะนำเหล่านี้ได้มาจากมาตรฐานที่กำหนดโดยองค์กรต่างๆ เช่น NIST, CERT และโครงการ OpenSSH และสะท้อนถึงหลักการสำคัญที่ SSL.com นำไปใช้ในการรักษาความปลอดภัยของใบรับรองดิจิทัลด้วย เช่น การปกป้องคีย์ การใช้การเข้ารหัสที่แข็งแกร่ง และการจำกัดการเข้าถึงที่มีสิทธิพิเศษ

เมื่อคุณได้กำหนดแนวทางปฏิบัติที่ดีที่สุดพื้นฐานเหล่านี้แล้ว คุณสามารถสำรวจวิธีการขั้นสูงอื่นๆ เช่น SSH ที่ใช้ใบรับรอง การเคาะพอร์ต หรือ SSH ผ่าน VPN ตามความต้องการ

1. ใช้การตรวจสอบสิทธิ์โดยใช้รหัสแทนรหัสผ่าน

มันคืออะไร:

คุณแทนที่การเข้าสู่ระบบด้วยรหัสผ่านด้วยคู่คีย์สาธารณะ/ส่วนตัวที่เข้ารหัส คีย์สาธารณะจะอยู่บนเซิร์ฟเวอร์ของคุณ ในขณะที่คีย์ส่วนตัวจะอยู่บนเครื่องภายในเครื่องของคุณ

เพราะเหตุใดจึงปลอดภัยกว่า:

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

วิธีการใช้งาน:

สร้างคู่คีย์

บน Linux หรือ macOS ให้เปิดเทอร์มินัลและเรียกใช้:

SSH-keygen -t ed25519

เพื่อความปลอดภัยยิ่งขึ้น (ถ้า ed25519 ไม่พร้อมใช้งานในสภาพแวดล้อมของคุณ) คุณสามารถใช้:

SSH-keygen -t อาร์เอส -b 4096

คัดลอกคีย์สาธารณะไปยังเซิร์ฟเวอร์ของคุณ

คุณสามารถใช้คำสั่ง ssh-copy-id (บน Linux/macOS) เพื่อถ่ายโอนคีย์สาธารณะของคุณได้อย่างง่ายดาย:

ssh-copy-id ผู้ใช้@ที่อยู่เซิร์ฟเวอร์

หากไม่มี ssh-copy-id ให้ผนวกเนื้อหาของไฟล์ id_ed25519.pub (หรือ id_rsa.pub) ของคุณไปยังไฟล์ ~/.ssh/authorized_keys ของเซิร์ฟเวอร์ด้วยตนเอง

ปิดใช้งานการตรวจสอบรหัสผ่าน

ใน /etc/ssh/sshd_config ให้ตั้งค่าดังนี้:

รหัสผ่าน

เริ่มบริการ SSH ใหม่:

sudo systemctl การเริ่มต้นใหม่ SSH

การตรวจสอบสิทธิ์โดยใช้คีย์ SSH นั้นคล้ายกับการจัดการใบรับรองดิจิทัลตรงที่ช่วยให้แน่ใจว่ามีเพียงผู้ที่มีคีย์ส่วนตัวที่ถูกต้องเท่านั้นที่สามารถสร้างการเชื่อมต่อได้

2. ปิดใช้งานการเข้าสู่ระบบรูท

มันคืออะไร:

ป้องกันผู้ใช้ root จากการเข้าสู่ระบบโดยตรงผ่าน SSH

เพราะเหตุใดจึงปลอดภัยกว่า:

  • บัญชีรูทมีสิทธิพิเศษไม่จำกัดและเป็นเป้าหมายที่น่าสนใจสำหรับผู้โจมตี
  • การปิดการใช้งานการเข้าถึงรูทโดยตรงทำให้ผู้โจมตีต้องเดาไม่เพียงแค่คีย์หรือรหัสผ่านเท่านั้น แต่ยังรวมถึงชื่อผู้ใช้ที่ถูกต้องด้วย

วิธีการใช้งาน:

ใน /etc/ssh/sshd_config ค้นหาหรือเพิ่ม:

PermitRootLogin no

รีสตาร์ท SSH:

sudo systemctl การเริ่มต้นใหม่ SSH

ขั้นตอนนี้จะช่วยจำกัดพื้นที่การโจมตีของคุณได้อย่างมีประสิทธิภาพโดยการลบบัญชีที่ทรงพลังที่สุดออกจากการเข้าถึงได้ง่าย

3. บังคับใช้การเข้ารหัสที่แข็งแกร่งและอัลกอริทึม MAC

มันคืออะไร:

SSH ช่วยให้คุณระบุรหัสเข้ารหัสและรหัสยืนยันข้อความ (MAC) ที่จะใช้ในการเข้ารหัสข้อมูลและตรวจสอบความสมบูรณ์ของข้อมูล

เพราะเหตุใดจึงปลอดภัยกว่า:

  • อัลกอริทึมที่เก่าหรืออ่อนแอ (เช่น DES, RC4) อาจเสี่ยงต่อการโจมตีทางการเข้ารหัส
  • การใช้รหัสที่ทันสมัย ​​(เช่น AES-256) และ MAC ที่แข็งแกร่ง (เช่น HMAC-SHA2) ช่วยให้ข้อมูลเซสชันของคุณเป็นความลับและป้องกันการปลอมแปลง

วิธีการใช้งาน:

ใน /etc/ssh/sshd_config เพิ่มหรืออัพเดตรายการรหัส/MAC ของคุณ:

รหัส aes256-ctr,aes192-ctr,aes128-ctr
MAC hmac-sha2-256,hmac-sha2-512

รีสตาร์ท SSH:

sudo systemctl การเริ่มต้นใหม่ SSH

การรักษาข้อมูลเข้ารหัสให้ทันสมัยสำหรับ SSH ถือเป็นสิ่งสำคัญพอๆ กับการรับรองว่ามีการใช้โปรโตคอลและรหัสที่ปลอดภัย TLS.

4. อัปเดต SSH (และระบบของคุณ) อยู่เสมอ

มันคืออะไร:

ตรวจสอบให้แน่ใจว่า OpenSSH และระบบปฏิบัติการอื่นๆ ของคุณได้รับแพตช์ความปลอดภัยเป็นประจำ

เพราะเหตุใดจึงปลอดภัยกว่า:

  • ซอฟต์แวร์ที่ล้าสมัยมักมีช่องโหว่ที่ทราบอยู่แล้ว
  • ผู้โจมตีมักจะกำหนดเป้าหมายเป็นเวอร์ชันเก่าที่มีช่องโหว่ที่ไม่ได้รับการแก้ไข

วิธีการใช้งาน:

บนระบบที่ใช้ Debian หรือ Ubuntu:

sudo apt-get อัพเดต && sudo apt-get upgrade

บนระบบ CentOS, Fedora หรือ RHEL:

sudo yum ปรับปรุง

อย่าลืมตรวจสอบการอัปเดตเฟิร์มแวร์ด้วยหากคุณกำลังรัน SSH บนอุปกรณ์เครือข่ายหรือฮาร์ดแวร์อื่น

5. ใช้การตรวจสอบสิทธิ์แบบสองปัจจัยหรือหลายปัจจัย (2FA/MFA)

มันคืออะไร:

เพิ่มชั้นความปลอดภัยอีกชั้นโดยต้องใช้สิ่งอื่นนอกเหนือจากรหัสผ่านหรือคีย์ (เช่น รหัสแบบใช้ครั้งเดียวบนโทรศัพท์ของคุณ)

เพราะเหตุใดจึงปลอดภัยกว่า:

  • แม้ว่าผู้โจมตีจะได้คีย์ SSH ของคุณ แต่พวกเขายังคงต้องใช้ปัจจัยที่สองในการเข้าสู่ระบบ
  • ช่วยป้องกันการโจรกรรมข้อมูลประจำตัว

วิธีการใช้งาน:

ติดตั้งและกำหนดค่าเครื่องมือ MFA

ตัวอย่างเช่น Google Authenticator ให้ สามารถติดตั้งบนเซิร์ฟเวอร์ Linux และตั้งค่าเป็นโมดูล PAM (Pluggable Authentication Modules) ได้ ปฏิบัติตามคำแนะนำในการติดตั้งที่เจาะจงสำหรับระบบปฏิบัติการของคุณ

แก้ไข /etc/pam.d/sshd และ /etc/ssh/sshd_config

  • เปิดใช้งาน Google Authenticator หรือโมดูล MFA อื่น
  • ตั้งค่า ChallengeResponseAuthentication ใช่ และวิธีการรับรองความถูกต้อง publickey, keyboard-interactive (หรือการรวมกันใดก็ตามที่เหมาะกับสภาพแวดล้อมของคุณ)

รีสตาร์ท SSH:

sudo systemctl การเริ่มต้นใหม่ SSH

6. เปิดใช้งานการบันทึกและการตรวจสอบ

มันคืออะไร:

บันทึกเหตุการณ์การเข้าสู่ระบบ SSH ติดตามกิจกรรมที่น่าสงสัย และรับการแจ้งเตือนเมื่อมีบางสิ่งผิดปกติ

เพราะเหตุใดจึงปลอดภัยกว่า:

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

วิธีการใช้งาน:

เพิ่มความละเอียดของบันทึก

ใน /etc/ssh/sshd_config ให้ตั้งค่าดังนี้:

บันทึกระดับรายละเอียด

บันทึกรวม

ใช้เครื่องมือป้องกันการบุกรุก

fail2ban สแกนไฟล์บันทึกและแบน IP ที่แสดงสัญญาณที่เป็นอันตราย เช่น การป้อนรหัสผ่านผิดพลาดบ่อยเกินไป

7. ดำเนินการควบคุมและจำกัดการเข้าถึง

มันคืออะไร:

จำกัดผู้ที่สามารถเชื่อมต่อกับ SSH และจากที่ใด เพื่อป้องกันการร้องขอขาเข้าที่ไม่ได้รับอนุญาตหรือมากเกินไป

วิธีการทำ:

ข้อจำกัดของไฟร์วอลล์

อนุญาต SSH จากที่อยู่ IP ที่รู้จักหรือเชื่อถือได้เท่านั้น ตัวอย่างเช่น บน Linux ที่มี ufw:

sudo ufw อนุญาตจาก 192.168.1.0/24 ไปยังพอร์ตใดก็ได้ 22

การกำหนดค่าพอร์ต

การรัน SSH บนพอร์ตที่ไม่ใช่มาตรฐาน (เช่น 2222) สามารถลดความพยายามในการสแกนอัตโนมัติได้ แม้ว่าจะไม่สามารถใช้แทนมาตรการรักษาความปลอดภัยจริงได้ แต่ก็สามารถลดสัญญาณรบกวนได้

ข้อจำกัดของผู้ใช้/กลุ่ม

ใน /etc/ssh/sshd_config ให้ระบุ:

อนุญาตให้ผู้ใช้ อลิซ บ็อบ

or

AllowGroups sshadmins

8. ใช้รหัสผ่านคีย์ SSH และการจัดเก็บคีย์ที่ปลอดภัย

มันคืออะไร:

เข้ารหัสคีย์ส่วนตัวของคุณด้วยรหัสผ่าน เพื่อให้แม้ว่าเครื่องของคุณจะถูกบุกรุก คีย์นั้นก็จะไม่สามารถใช้งานได้ทันที

เพราะเหตุใดจึงปลอดภัยกว่า:

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

วิธีการใช้งาน:

ตั้งค่ารหัสผ่านระหว่างการสร้างคีย์

SSH-keygen -t ed25519

(คุณจะได้รับแจ้งให้ป้อนรหัสผ่าน)

ปกป้องไฟล์สำคัญของคุณ

จำกัดสิทธิ์การเข้าถึงโฟลเดอร์ .ssh และไฟล์คีย์ของคุณ:

chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519

พิจารณาโมดูลความปลอดภัยฮาร์ดแวร์ (HSM) หรือโทเค็น

สำหรับองค์กรขนาดใหญ่ การใช้ฮาร์ดแวร์เฉพาะสำหรับการจัดเก็บคีย์สามารถบรรเทาความเสี่ยงจากการโจรกรรมที่ใช้ซอฟต์แวร์หรือมัลแวร์ได้

สรุป

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

มาตรการเหล่านี้สอดคล้องกับปรัชญาความปลอดภัยที่กว้างขึ้นซึ่ง SSL.com แนะนำให้ใช้กับใบรับรองดิจิทัล ได้แก่ ปกป้องคีย์การเข้ารหัส ใช้การเข้ารหัสที่แข็งแกร่ง จำกัดการเข้าถึงที่มีสิทธิพิเศษ และเฝ้าระวังระบบของคุณอย่างเข้มข้น เมื่อคุณกำหนดแนวทางปฏิบัติที่ดีที่สุดพื้นฐานเหล่านี้แล้ว คุณสามารถสำรวจตัวเลือกขั้นสูงเพิ่มเติม เช่น ผู้ให้บริการใบรับรอง SSH การเคาะพอร์ต หรือการเรียกใช้ SSH ผ่าน VPN เพื่อปรับแต่งมาตรการความปลอดภัยของคุณเพิ่มเติม

รับทราบข้อมูลและปลอดภัย

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

เราชอบความคิดเห็นของคุณ

ทำแบบสำรวจของเราและแจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับการซื้อครั้งล่าสุดของคุณ