三分钟让你的服务器自动拒绝恶意登录IP 地址

Posted 小凡it故事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三分钟让你的服务器自动拒绝恶意登录IP 地址相关的知识,希望对你有一定的参考价值。

shell 编程 拒绝恶意IP 登录服务器脚本

1.为什么要使用shell 编写

  • 前言

    企业服务器暴露在外网,每天会有大量的人使用各种用户名和密码尝试登陆服务器,如果让其一直尝试,难免会猜出密码,通过开发Shell脚本,可以自动将尝试登陆服务器错误密码次数的IP列表加入到防火墙配置中。

    这样一来,我们就不用手动拒绝了,从一定程度上减轻了运维人的压力,也提高了工作效率

2.编写脚本思路

  • Shell脚本实现服务器拒绝恶意IP登陆,编写思路如下:

    登陆服务器日志/var/log/secure;

    检查日志中认证失败的行并打印其IP地址;

    将IP地址写入至防火墙;

    禁止该IP访问服务器SSH 22端口;

    将脚本加入Crontab实现自动禁止恶意IP;

3.代码实现

  • Shell脚本实现服务器拒绝恶意IP登陆:

    #!/bin/bash
    #Auto drop ssh failed IP address
    #By author xx
    
    SEC_FILE=/var/log/secure
    IP_ADDR=`awk '{print $0}'  /var/log/secure|grep -i  "fail"| egrep -o "([0-9]{1,3}\\.){3}[0-9]{1,3}" | sort -nr | uniq -c |awk '$1>=15 {print $2}'`
    IPTABLE_CONF=/etc/sysconfig/iptables
    echo
    cat <<EOF
    ++++++++++++++welcome to use ssh login drop failed ip+++++++++++++++++
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ++++++++++++++++------------------------------------++++++++++++++++++
    EOF
    echo
    for ((j=0;j<=6;j++)) ;do echo -n "-";sleep 1 ;done
    echo
    for i in `echo $IP_ADDR`
    do
        cat $IPTABLE_CONF |grep $i >/dev/null
    if
        [ $? -ne 0 ];then
    sed -i "/lo/a -A INPUT -s $i -m state --state NEW -m tcp -p tcp --dport 22 -j DROP" $IPTABLE_CONF
    fi
    done
    NUM=`find /etc/sysconfig/  -name iptables -a -mmin -1|wc -l`
            if [ $NUM -eq 1 ];then
                    /etc/init.d/iptables restart
            fi
    
    

总结

  • 手动拒绝

  • shell 的重要性

    	曾经有人说过,学习Linux不知道Shell编程,那就是不懂Linux,现在细细品味确实是这样。
    	Shell是操作系统的最外层,Shell可以合并编程语言以控制进程和文件,以及启动和控制其它程序。
    	现在很多linux 运维岗位,在招聘的时候都要求 会shell 或者Python中任意一门。可见自动化运维 还是蛮重要的,所以,我们的shell 一定要掌握好。后面我会详细的介绍 shell,从无到有,从青铜到王者。
    
    

    感谢阅读,点个赞+收藏,欢迎大神们指导。

以上是关于三分钟让你的服务器自动拒绝恶意登录IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

拒绝恶意同构ssh登陆服务器脚本

shell脚本自动加黑恶意攻击IP

shell脚本自动加黑恶意攻击IP

如何在 Linux 下大量屏蔽恶意 IP 地址

rust怎么查看ip

5分钟,自己做一个 IP 代理隧道