Ubantu防止SSH暴力穷举密码多次登录失败封IP
Linux 系统SSH 登录失败的内容会记录到/var/log/secure文件,Ubantu的记录文件在/var/log/auth.log里,
先在/etc/hosts.allow: 设置允许哪些IP访问主机
sshd:XXX.XXX.XXX.XXX:allow
sshd:1.2.3.4:allow
sshd:123.234.56.78:allow
XXX.XXX.XXX.XXX代表你本地ip,如果你是动态的,ip只换后两位,那么可以跟我一样(建议动态ip不要继续往下看了,不要搞坑太大)
sshd:123.234.:allow
在root文件夹建立一个ssh_black.sh文件
内容:
cat /var/log/auth.log | awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /home/ubuntu/black.txt #cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="5" for i in `cat /home/ubuntu/black.txt` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` if [ $NUM -gt $DEFINE ] then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ] then echo "sshd:$IP:deny" >> /etc/hosts.deny fi fi done systemctl restart sshd
然后 给个执行权限
#chmod +x /root/ssh_black.sh
#cat /etc/hosts.deny
测试一下
# ./ssh_black.sh
#cat /etc/hosts.deny
最后将ssh.sh脚本放入cron计划任务,每1小时执行一次。
# crontab -e
7 */1 * * * sh /usr/local/bin/ssh_black.sh
另外禁用登录方法:
用户登录禁用启用:
启用打开 /etc/ssh/sshd_config 设置AllowUsers选项:
#允许wzl用户登录
AllowUsers wzl
#允许wzl用户从192.168.1.1登录
AllowUsers wzl@192.168.1.1
#重启sshd服务
systemctl restart sshd
禁用打开 /etc/ssh/sshd_config 设置AllowUsers选项
#禁止wzl用户登录
DenyUsers wzl
#允许wzl用户从192.168.1.1登录
AllowUsers wzl@192.168.1.1
#重启sshd服务
systemctl restart sshd
IP登录禁用启用
启用打开 /etc/hosts.allow 允许指定IP登录:
#允许192.168.1.1登录
sshd:192.168.1.1:allow
#允许IP段登录
sshd:192.168.1.1/100:allow
#重启sshd服务
systemctl restart sshd
禁用打开 /etc/hosts.deny 拒绝所有IP地址登录:
#禁止所有IP登录
sshd:ALL
#重启sshd服务
systemctl restart sshd

隐藏内容,扫码公众号查看,发【code】获验证码
微信赞赏
支付宝扫码领红包
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。侵权投诉:375170667@qq.com