1、 编写脚本/root/bin/checkip.sh,每5分钟检查一次,如果发现通过ssh登录失败 次数超过10次,自动将此远程IP放入Tcp Wrapper的黑名单中予以禁止防问
第一种写法:sleep 5分钟或者直接在计划任务中,定时每5分钟执行一次
[root@centos7 ~]# cat deny.sh #!/bin/bash while true;do awk '/Failed/{ip[$(NF-3)]++}END{for(i in ip){if(ip[i]>=2){system("echo sshd:"i" >> /etc/hosts.deny")}}}' /var/log/ssh.log sleep 5m done
在计划任务中进行执行
[root@centos7 ~]# crontab -e */5 * * * * /root/deny.sh
第二种写法:
[root@centos7 ~]# cat checkip.sh #!/bin/bash while true;do ipnum=`awk '/Failed/{print $(NF-3)}' /var/log/ssh.log |uniq -c |awk '{print $1}'` # 第一个是收集IP出现失败的次数 ip=`awk '/Failed/{print $(NF-3)}' /var/log/ssh.log |uniq -c |awk '{print $2}'` # 统计IP地址 if [ $ipnum -ge 3 ] ;then # 当IP地址次数大于等于3,才将IP地址拉入黑名单。 echo "sshd:$ip" >> /etc/hosts.deny fi sleep 5m done
在计划任务中执行:
[root@centos7 ~]# crontab -e */5 * * * * /root/checkip.sh
2、配置magedu用户的sudo权限,允许magedu用户拥有root权限
[root@centos7 ~]# useradd magedu # 创建magedu账号 [root@centos7 ~]# vim /etc/sudoers root ALL=(ALL) ALL magedu ALL=(ALL) ALL # 将magedu用户授予root权限