SSH (เซฟเชลl) เป็นโปรโตคอลเครือข่ายโอเพ่นซอร์สที่ใช้เชื่อมต่อเซิร์ฟเวอร์ Linux ในพื้นที่หรือระยะไกลเพื่อถ่ายโอนไฟล์ ทำการสำรองข้อมูลระยะไกล ดำเนินการคำสั่งจากระยะไกล และงานอื่น ๆ ที่เกี่ยวข้องกับเครือข่ายผ่าน คำสั่ง scp หรือ คำสั่ง sftp ระหว่างสองเซิร์ฟเวอร์ที่เชื่อมต่อบนช่องทางที่ปลอดภัยบนเครือข่าย
ในบทความนี้ ผมจะแสดงเครื่องมือและลูกเล่นง่ายๆ ที่จะช่วยคุณ กระชับความปลอดภัยเซิร์ฟเวอร์ ssh ของคุณ. ที่นี่คุณจะพบข้อมูลที่เป็นประโยชน์เกี่ยวกับวิธีการรักษาความปลอดภัยและป้องกันเซิร์ฟเวอร์ ssh จาก กำลังดุร้าย และ การโจมตีด้วยพจนานุกรม.
DenyHosts เป็นสคริปต์ความปลอดภัยป้องกันการบุกรุกตามบันทึกโอเพนซอร์ซสำหรับเซิร์ฟเวอร์ SSH ที่เขียนด้วยภาษาโปรแกรมหลามที่ ตั้งใจที่จะเรียกใช้โดยผู้ดูแลระบบ Linux และผู้ใช้เพื่อตรวจสอบและวิเคราะห์บันทึกการเข้าถึงเซิร์ฟเวอร์ SSH สำหรับการพยายามเข้าสู่ระบบที่ล้มเหลวรู้ว่าเป็น การโจมตีตามพจนานุกรม และ การโจมตีด้วยกำลังเดรัจฉาน.
สคริปต์ทำงานโดยการห้าม IP ที่อยู่หลังจากการพยายามเข้าสู่ระบบที่ล้มเหลวตามจำนวนที่กำหนดไว้ และยังป้องกันการโจมตีดังกล่าวไม่ให้เข้าถึงเซิร์ฟเวอร์
[ คุณอาจชอบ: วิธีบล็อกการโจมตี SSH Brute Force โดยใช้ DenyHosts ]
Fail2ban เป็นหนึ่งในการบุกรุกโอเพ่นซอร์สที่ได้รับความนิยมมากที่สุด การตรวจจับ/การป้องกัน กรอบที่เขียนด้วย a หลาม ภาษาโปรแกรม มันทำงานโดยการสแกนไฟล์บันทึกเช่น /var/log/secure, /var/log/auth.log, /var/log/pwdfail เป็นต้น สำหรับการพยายามเข้าสู่ระบบที่ล้มเหลวหลายครั้งเกินไป
Fail2ban ใช้สำหรับอัปเดต Netfilter/iptables หรือ TCP Wrapper's hosts.deny ไฟล์เพื่อปฏิเสธผู้โจมตี IP ที่อยู่ตามระยะเวลาที่กำหนด นอกจากนี้ยังมีความสามารถในการยกเลิกการแบนที่อยู่ IP ที่ถูกบล็อกในช่วงเวลาที่กำหนดโดยผู้ดูแลระบบ อย่างไรก็ตาม การเลิกแบนเพียงไม่กี่นาทีก็มากเกินพอที่จะหยุดการโจมตีที่มุ่งร้ายดังกล่าวได้
[ คุณอาจชอบ: วิธีใช้ Fail2ban เพื่อรักษาความปลอดภัยเซิร์ฟเวอร์ Linux ของคุณ ]
ตามค่าเริ่มต้น ระบบ Linux จะได้รับการกำหนดค่าไว้ล่วงหน้าเพื่ออนุญาตการเข้าสู่ระบบระยะไกล ssh สำหรับทุกคนรวมถึง ราก ผู้ใช้เองซึ่งอนุญาตให้ทุกคนเข้าสู่ระบบโดยตรงและเข้าถึงรูท แม้ว่าเซิร์ฟเวอร์ ssh จะอนุญาตให้มีความปลอดภัยมากขึ้นในการ ปิดการใช้งาน หรือเปิดใช้งานการเข้าสู่ระบบรูท จะเป็นความคิดที่ดีเสมอที่จะปิดการใช้งานการเข้าถึงรูท ทำให้เซิร์ฟเวอร์มีความปลอดภัยเพิ่มขึ้นอีกเล็กน้อย
มีคนจำนวนมากพยายามที่จะเดรัจฉานรูทบัญชีผ่าน การโจมตี SSH โดยเพียงแค่ระบุชื่อบัญชีและรหัสผ่านต่างๆ ทีละรายการ หากคุณเป็นผู้ดูแลระบบ คุณสามารถตรวจสอบบันทึกเซิร์ฟเวอร์ ssh ซึ่งคุณจะพบว่ามีความพยายามเข้าสู่ระบบที่ล้มเหลวหลายครั้ง สาเหตุหลักที่อยู่เบื้องหลังการพยายามเข้าสู่ระบบที่ล้มเหลวหลายครั้งคือการมีรหัสผ่านที่ไม่รัดกุมเพียงพอและนั่นก็สมเหตุสมผลสำหรับ แฮกเกอร์/ผู้โจมตี ที่จะลอง
หากคุณมีรหัสผ่านที่คาดเดายาก คุณอาจจะปลอดภัย อย่างไรก็ตาม เป็นการดีกว่าที่จะปิดการใช้งานการเข้าสู่ระบบรูทและมีบัญชีแยกต่างหากสำหรับเข้าสู่ระบบ แล้วใช้ sudo หรือ ซู เพื่อเข้าถึงรูทได้ทุกเมื่อที่ต้องการ
[ คุณอาจชอบ: วิธีปิดการใช้งานการเข้าสู่ระบบรูท SSH และ จำกัด การเข้าถึง SSH ใน Linux ]
นี่เป็นหนึ่งในคุณสมบัติที่เก่าแก่ที่สุดที่มีอยู่ตั้งแต่ต้น ssh โครงการแต่ไม่ค่อยเห็นมีใครใช้ อย่างไรก็ตาม ฉันรู้สึกว่ามันเป็นคุณสมบัติที่สำคัญและมีประโยชน์มากที่ฉันเคยใช้กับเซิร์ฟเวอร์ Linux ทั้งหมดของฉัน
นี่ไม่ใช่เพื่อวัตถุประสงค์ด้านความปลอดภัย แต่ประโยชน์สูงสุดของแบนเนอร์นี้คือใช้เพื่อแสดง ssh คำเตือน ถึง UN-ได้รับอนุญาต การเข้าถึงและข้อความต้อนรับไปยังผู้ใช้ที่ได้รับอนุญาตก่อนที่จะให้รหัสผ่านและหลังจากที่ผู้ใช้เข้าสู่ระบบ
[ คุณอาจชอบ: วิธีป้องกันการเข้าสู่ระบบ SSH ด้วยข้อความแบนเนอร์ SSH & MOTD ]
หนึ่ง เข้าสู่ระบบ SSH โดยไม่ต้องใช้รหัสผ่าน กับ คีย์เกน SSH จะสร้างความสัมพันธ์ที่ไว้วางใจระหว่างสอง เซิร์ฟเวอร์ Linux ซึ่งทำให้ การถ่ายโอนไฟล์ และ การซิงโครไนซ์ ง่ายกว่ามาก.
สิ่งนี้มีประโยชน์มากหากคุณกำลังจัดการกับการสำรองข้อมูลอัตโนมัติระยะไกล การดำเนินการสคริปต์ระยะไกล การถ่ายโอนไฟล์ การจัดการสคริปต์ระยะไกล ฯลฯ โดยไม่ต้องป้อนรหัสผ่านในแต่ละครั้ง
[ คุณอาจชอบ: วิธีตั้งค่าการเข้าสู่ระบบแบบไม่มีรหัสผ่าน SSH ใน Linux [3 ขั้นตอนง่าย ๆ ] ]
หากต้องการรักษาความปลอดภัยเซิร์ฟเวอร์ SSH ของคุณให้ปลอดภัยยิ่งขึ้น โปรดอ่านบทความของเราที่ วิธีรักษาความปลอดภัยและเสริมความแข็งแกร่งให้กับเซิร์ฟเวอร์ OpenSSH