禁止掉非法IP登陆服务器

今天查看线上服务器日志/var/log/secure发现有很多国外的ip尝试登陆服务器,以前一直没太注意这方面,作为系统管理员真是失职啊,虽然服务器已经设置了强密码,但是看到有人想搞你还是很不爽的。一开始的思路是通过防火墙,后来google到有比防火墙更简单粗暴的方法,就是通过/etc/hosts.deny配置文件就可以禁掉一些IP了(其实这是centos系统另外一种形式的防火墙,学名叫TCP_Wrappers),代码如下:

#!/bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
Counts="2"
for item in `cat /root/black.txt`
do

    IP=`echo $item | awk -F= '{print $1}'`
    NUM=`echo $item | awk -F= '{print $2}'`
    if [ $NUM -gt $Counts ];then
        grep $IP /etc/hosts.deny >/dev/null
        if [ $? -gt 0 ];then
            echo "sshd:$IP:deny" >>/etc/hosts.deny
        fi
    fi
done

未完待续。。。。

原文地址:https://www.cnblogs.com/uglyliu/p/6057714.html