一、通过 firewall 添加单个黑名单
只需要把ip添加到 /etc/hosts.deny 文件即可,格式 sshd:$IP:deny
vim /etc/hosts.deny
# 禁止访问
sshd:*.*.*.*:deny
# 允许的访问
sshd:.*.*.*:allow
sshd:.*.*.*:allow
二、多次失败登录即封掉IP,防止暴力破解的脚本(超过5次的就加到黑名单)
2.1,编写脚本
# 创建目录
mkdir -p /data/blacklist
# 创建脚本文件
vim /data/blacklist/secure_ssh.sh
# 复制下边代码
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /data/blacklist/black.txt
for i in `cat /data/blacklist/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt 5 ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
# 脚本文件改变权限
chmod 777 /data/blacklist/secure_ssh.sh
2.2,创建记录登录失败次数的文件
touch /data/blacklist/black.txt
2.3,添加定时 5分钟执行一次
# 编辑 crontab 文件
vim /etc/crontab
# 添加以下配置
*/5 * * * * root /data/blacklist/secure_ssh.sh
2.4,测试 ssh登录自己的服务器
ssh **.**.**.**
2.5,查看黑名单列表是否记录
cat /data/blacklist/black.txt
2.6,查看黑名单列表看是否添加进去了
cat /etc/hosts.deny
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!