fdfdfwe 发表于 2015-5-8 08:36:25

bash-scripts 用脚本添加恶意访问IP到防火规则里

#!/bin/bash
#auto drop ssh failed IP address
#by colink on 2015-05-07

IPTAB_DIR='/etc/sysconfig/iptables'
LOG_DIR='/var/log/secure'
IPADDRS=`tail -n 200 ${LOG_DIR} |grep "Failed password" |grep -Eo '({1,3}\.){3}{1,3}' |sort -nr |uniq -c |awk '$1>=5 {print $2}'`
echo -e "\033[32m====================================\033[0m"
echo -e "\033[32mWill update the Iptables\033[0m"
echo -e "\033[32m------------------------------------\033[0m"
#判断iptables文件里面是否已经添加了该IP的规则
function add_iptables(){
      for i in ${IPADDRS}
      do
                IGREP=`grep "${i}" /etc/sysconfig/iptables`
                if [ -z "${IGREP}" ];then
                        sed -i "/lo/a-A INPUT -s ${i} -m state --state NEW -m tcp -p tcp --dport 22 -j DROP" ${IPTAB_DIR}
                        if [ $? -eq 0 ];then
                              echo -e "\033[32m已成功将IP:${i}添加到防火墙...\033[0m"
                        else
                              echo -e "\033[31m添加IP:${i}的防火墙规则失败!\033[0m"
                        fi
                else
                        echo -e "\033[32m防火墙规则里已存在IP:${i}\033[0m"
#                     exit 0
                fi
      done
}
#当有恶意IP的时候,添加到防火墙
if [ ! -z "${IPADDRS}" ];then
      add_iptables
else
    echo -e "\033[31m没有恶意登陆的IP...\033[0m"
    exit 0
fi
#重启iptables服务
/etc/init.d/iptables restart
echo -e "\033[32m====================================\033[0m"


国安信仰 发表于 2015-6-26 13:28:13

不错,学习了!
页: [1]
查看完整版本: bash-scripts 用脚本添加恶意访问IP到防火规则里