LongSpine.com Yes, we are lazy.

2Sep/090

Securing SSH in Debian Lenny

เรื่องนี้เริ่มมาจากเมือสิบนาทีที่ผ่านมาได้เข้าไปดูเซิร์ฟเวอร์ที่ใช้อยู่ ปรากฎว่ามีการใช้แบนวิดท์ที่สูงมากโดยที่ผมไม่ได้ใช้งาน จึงเกิดเอะใจขึ้นมาว่ามีใรมาเล่นอะไรแผลงๆรึเปล่าเลยเข้าไปดูที่ /var/log/auth.log ก็พบว่ามีบางคนทำ brute force attack กับเครื่องผม ผมจึงต้องทำอะไรซักอย่างเพื่อป้องกันการถูกเจาะเข้าระบบ

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

  1. ใช้รหัสผ่านที่ดี แต่รหัสผ่านที่ดีนั้นคืออะไร? จากประสพการณ์รหัสผ่านที่ดีมักจะมีลักษณะดังนี้
    • มีจำนวนอักษรหลายตัว
    • ใช้เลข พยัญชนะ และเครื่องหมายผสมกัน
    • ไม่ใช่คำที่พบได้ตามพจนานุกรม หรือคำที่พบเห็นได้ทั่วไป
    • เจ้าของต้องจำได้ (สำคัญมาก!)
  2. แก้ไข /etc/ssh/sshd_config
    Protocol 2          # โปรโตคอล 2 ปลอดภัยกว่าโปรโตคอล 1
    PermitRootLogin no  # ห้ามล็อกอินโดย root
    AllowUsers username # ให้ล็อกอินได้เฉพาะ username ที่ระบุ
    หลังจากนั้นอย่าลืมสั่ง
    sudo /etc/init.d/ssh restart
    นอกจากนี้ยังสามารถทำให้ปลอดภัยขึ้นได้โดยการเปลี่ยนพอร์ท และการบังคับให้ผู้ใช้ใช้กุญแจแทนที่รหัสผ่าน แต่เนื่องจากมันทำให้ใช้งานได้ไม่สะดวก วิธีพวกนี้จึงไม่ใช่วิธีที่ผมจะใช้สำหรับเซิร์ฟเวอร์สันหลังยาว
  3. ทำการ Blacklist ผู้ที่อาจจะมีประสงค์ร้าย วิธีการนั้นมีหลายแบบ เช่นการแก้ไข iptables แต่สำหรับผู้ใช้ที่ไม่อยากไปทำอะไรซับซ้อนและเสี่ยงต่อการผิดพลาด ดังนั้นเราจึงแนะนำโปรแกรม DenyHosts ที่มีหลักการคือเมื่อมีการค้นพบว่ามีหมายเลขไอพีไหนพยายามโจมตีเครื่องของเรา โปรแกรมนี้ก็จำทำการแบนไอพีนั้นเป็นช่วงเวลาหนึ่ง ซึ่งนานพอที่จะทำให้การโจมนี้นั้นไร้ประโยชน์ไปเลย การติดตั้งใน Lenny นั้นทำได้ง่ายๆโดย
    sudo aptitude install denyhosts

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

Category: How-to
Tagged as: , , , , ,
No Comments
   

Recommended Reading

Recent Comments

Archives

Meta