จริงๆ เหตุการณ์ SSH brute-force/password guessing/dictionary attack นี่เกิดมา 2 ปีเห็นจะได้แล้วล่ะ ทุกวันนี้ก็ยังไม่มีทีท่าว่าจะลดลง คาดว่าใครที่ดูแลระบบยูนิกซ์และลินุกซ์ที่ใช้ SSH คงเจอกันถ้วนหน้า .. จริงๆ แล้วคงมีโอกาสไม่มากเท่าไหร่ที่จะโดนแจ๊คพ็อตเดารหัสผ่านถูก แต่ประมาทไม่ได้เหมือนกัน เจอ failed password for root ซัก 1-2000 ครั้งในวันเดียวมันก็ไม่ค่อยสบายใจเท่าไหร่ จะว่าไปแล้ว ส่วนใหญ่จะประสาทกินไปกับรายงาน failed password นี่แหละ (- -‘) .. อย่างไรก็ตาม มันก็พอจะมีวิธีปิดช่องในการโจมตี หรือลดโอกาสในการโจมตีได้หลายแบบ
- วิธีที่ใช้อยู่เวลานี้คือใส่ AllowUsers หรือ AllowGroups ใน /etc/ssh/sshd_config บังคับให้ login ได้เฉพาะ user ที่อนุญาต .. ก็โชคดีที่เครื่องที่ดูแลทั้งหมดมี user ไม่เยอะ เครื่องที่มีเยอะก็ group ไว้ค่อยข้างดี .. สบายไป
- อีกวิธี คือ ยกเลิกการใช้ password และ challenge-response authentication หันไปใช้ public-key authentication แทน โดยแก้ที่ /etc/ssh/sshd_config เหมือนกัน .. วิธีนี้วางใจได้แน่นอน แต่ไม่ค่อยสะดวกสำหรับผู้ใช้เท่าไหร่
- อีกวิธีที่นิยมใช้กันก็คือติดตั้ง DenyHost ซึ่งจะตรวจสอบ log ถ้ามี login failed จาก IP เดิมๆ มันจะเอา IP ไปใส่ใน host.deny อัตโนมัติ
ชอบแบบไหนก็เลือกเอาได้ .. ถ้าไม่ชอบซักวิธีก็กูเกิ้ลหาวิธีอื่นเอาละกัน :)