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

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

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



1.为什么要使用shell 编写


image.png


  • 前言


企业服务器暴露在外网,每天会有大量的人使用各种用户名和密码尝试登陆服务器,如果让其一直尝试,难免会猜出密码,通过开发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



总结



  • 手动拒绝


6步拒绝恶意IP


  • shell 的重要性


  曾经有人说过,学习Linux不知道Shell编程,那就是不懂Linux,现在细细品味确实是这样。
  Shell是操作系统的最外层,Shell可以合并编程语言以控制进程和文件,以及启动和控制其它程序。
  现在很多linux 运维岗位,在招聘的时候都要求 会shell 或者Python中任意一门。可见自动化运维 还是蛮重要的,所以,我们的shell 一定要掌握好。后面我会详细的介绍 shell,从无到有,从青铜到王者。
相关文章
|
1月前
|
弹性计算 网络协议 关系型数据库
阿里云国际版ECS云服务器无法登录宝塔面板控制台
阿里云国际版ECS云服务器无法登录宝塔面板控制台
|
1月前
|
域名解析 弹性计算 安全
无法ping通ECS服务器公网IP的排查方法
无法ping通ECS服务器公网IP的排查方法
|
4月前
|
弹性计算 运维 安全
云服务器 ECS产品使用问题之怎么添加登录密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
云服务器 ECS产品使用问题之怎么添加登录密码
|
4月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何更改服务器的IP地址或端口号
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
网络协议
【qt】TCP的监听 (设置服务器IP地址和端口号)
【qt】TCP的监听 (设置服务器IP地址和端口号)
204 0
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
|
4月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何解决幻兽帕鲁服务器实例登录失败
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
弹性计算 运维 Linux
云服务器 ECS产品使用问题之如何改变服务器地址
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
XML 存储 网络协议
/etc/netplan/network-manager-all.yaml 配置服务器ip
/etc/netplan/network-manager-all.yaml 配置服务器ip
179 0
|
4月前
|
网络安全 数据安全/隐私保护
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa