RHEL 7 / CentOS 7 ผู้ดูแลสามารถป้องกันการโจมตี SSH Brute Force ด้วย iptables คือ Hacker จะสุ่มเดารหัส Login ไปเรื่อยทำให้เครื่องค้างหรือช้าลง
คำสั่งในการปฏิเสธหาก Hacker ลอง Login ผิดเกิน 3 ครั้งมีดังนี้
* ก่อนใช้คำสั่งโปรดดูขั้นตอนการติดตั้ง iptables ด้านล่าง
1. ก็อปคำสั่งด้านล่างนี้ทีละบันทัดไปวางในหน้าจอ SSH Command:
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --seconds 30 --hitcount 4 --rttl --name SSH --rsource -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --seconds 30 --hitcount 3 --rttl --name SSH --rsource -j LOG --log-prefix "SSH brute force "
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 30 --hitcount 3 --rttl --name SSH --rsource -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
2. เพื่อดูว่าระบบมีการเพิ่มแล้ว พิมพ์ iptables-save
3. พิมพ์ service iptables save
4. สั่งรีสตาร์ท service เพื่อให้มีผลกับระบบ พิมพ์ systemctl restart iptables
ขอบคุณที่มา
https://gist.github.com/mingfang/d7668c6a54079d613f89
https://rudd-o.com/linux-and-free-software/a-better-way-to-block-brute-force-attacks-on-your-ssh-server
ขั้นตอนการติดตั้ง iptables
1. ทำการปิด firewalld service:
systemctl stop firewalld
systemctl mask firewalld
2. ติดตั้ง iptables-services package:
yum install iptables-services
3. ให้เปิดใช้ทุกครั้งหากมีการรีบูต server:
systemctl enable iptables
4. สามารถสั่ง เปิด/ปิด/รีสตาร์ท iptables service ตามต้องการ
systemctl [stop|start|restart] iptables
5. กรณีที่มีการสั่งเพิ่มกฎ สามารถบันทึกกฎไฟร์วอลล์ เพื่อให้มีผลกับระบบดังนี้:
service iptables save
or
/usr/libexec/iptables/iptables.init save