วิธีป้องกัน Brute force SSH กับ Linux Server

วิธีป้องกัน Brute force SSH กับ Linux Server


1. แก้ไขไฟล์การตั้งค่า Service SSH:

ตรวจสอบไฟล์ config ที่ไฟล์ /etc/ssh/sshd_config ด้วยคำสั่ง nano หรือ vi

nano /etc/ssh/sshd_config

ตรวจสอบและแก้ไขค่าต่อไปนี้:

     Port: เปลี่ยนหมายเลขพอร์ต SSH เป็นหมายเลขที่ไม่ได้ใช้งานเริ่มต้นอย่างมาก (ไม่ใช่พอร์ต 22)
                 -  หากมีการเปิดใช้งาน Firewall ให้ Allow Port นั้นๆ ตามระบบปฏิบัติการที่ใช้งาน
              - Ubuntu:
                          ufw allow ssh
                          ufw allow 2288/tcp
              - CentOS, AlmaLinux (Firewalld):
                          firewall-cmd --zone=public --add-service=ssh
                                firewall-cmd --zone=public --add-port=2288/tcp
                                firewall-cmd --reload
              - บริการ Cloud Server Readyidc สามารถตั้งค่าผ่าน Firewall UI ได้ โดยดูรายละเอียดเพิ่มเติมที่ลิงค์นี้:
                                https://customer.readyidc.com/index.php?/knowledgebase/article/240/add-firewall-rule/

     PasswordAuthentication: ตั้งค่าเป็น "no" เพื่อปิดใช้งานการตรวจสอบรหัสผ่านทาง SSH (จำเป็นต้องมี Public Key)
                 - วิธี Generate Key ผ่านโปรแกรม Xshell: https://blog.netsarang.com/1304/creating-a-publicprivate-key-pair-with-xshell
                 - วิธี Generate Key ผ่านโปรแกรม Puttygen: https://www.ssh.com/academy/ssh/putty/windows/puttygen
                 - หลังจากได้ Public Key แล้วให้นำไปใส่ที่ไฟล์ /root/.ssh/authorized_keys

ใช้คำสั่ง Restart SSH เพื่อเริ่มใช้การตั้งค่าใหม่

systemctl restart sshd

 

2. ติดตั้งและใช้งานโปรแกรม Fail2ban :

ติดตั้งโปรแกรม fail2ban บนเครื่องเซิร์ฟเวอร์

apt install fail2ban

แก้ไขไฟล์ตั้งค่า jail.conf ในไดเรกทอรี /etc/fail2ban/ เพื่อกำหนดหน่วยเวลาที่ IP address จะถูกบล็อกหลังจากเข้าสู่ระบบผิดหลายครั้ง

sudo service fail2ban restart

สามารถตรวจสอบ Log การทำงานของ fail2ban ได้ที่ Path

/var/log/fail2ban.log

 

3. ตั้งค่า Firewall ให้ Source IP สามารถเข้าถึง SSH ได้เท่านั้น

ตัวอย่างการตั้งค่า Firewall บน Linux (IP จาก Client สามารถตรวจสอบได้จากเว็บ https://www.myip.com )

            - Ubuntu 
                          ufw allow from 49.228.107.122 to any port 2288
                          ufw allow from 49.228.107.0/24 to any port 2288 proto tcp

            - Centos , Almalinux

                          firewall-cmd --permanent --zone=public --add-source=49.228.107.0/24
             firewall-cmd --permanent --zone=public --add-source=49.228.107.122/32
                          firewall-cmd --reload

            - ตัวอย่างการตั้งค่า Firewall สำหรับบริการ Cloud Server Readyidc สามารถตั้งค่าผ่าน Firewall UI ได้ โดยดูรายละเอียดเพิ่มเติมที่ลิงค์นี้:

                          https://customer.readyidc.com/index.php?/knowledgebase/article/240/add-firewall-rule/


Was this article helpful?

mood_bad Dislike 0
mood Like 0
visibility Views: 466