自动拒绝恶意IP远程登录Linux服务器脚本
当我们已经配置了iptables防火墙,我们允许22端口对外网所有人访问,当然这也是为了方便,我们在任何地方都连接上,没有做VPN,也没有做ssh密钥验证,但是我们的密码设置得非常复杂,大小写、特殊符、数字 32位,连自己都记不住,就别人扫描没有3-5年是无法攻破的哈哈。所以每天看/var/log/secure文件里面,全部是恶意攻击的ip,那怎么拒绝这些ip下次再攻击,或者怎么让这些IP尝试3-4次就拒绝访问22端口了,看代码如下:
#!/bin/sh
#auto drop ssh failed IP address #定义变量
SEC_FILE=/var/log/secure
#如下为截取secure文件恶意ip 远程登录22端口,大于等于4次就写入防火墙,禁止以后再登录服务器的22端口
IP_ADDR=`tail -n /var/log/secure |grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -nr | uniq -c |awk ' $1>=4 {print $2}'`
IPTABLE_CONF=/etc/sysconfig/iptables
echo
cat <<EOF
++++++++++++++welcome to use ssh login drop failed ip+++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++------------------------------------++++++++++++++++++
EOF
#打印动态滚动条,参照老男孩博客-数组分析文章
echo -n "请等待5秒后开始执行 "
for ((j=;j<=;j++)) ;do echo -n "----------";sleep ;done
echo
for i in `echo $IP_ADDR`
do
#查看iptables配置文件是否含有提取的IP信息
cat $IPTABLE_CONF |grep $i >/dev/null
if
[ $? -ne ];then
#判断iptables配置文件里面是否存在已拒绝的ip,如何不存在就不再添加相应条目
sed -i "/lo/a -A INPUT -s $i -m state --state NEW -m tcp -p tcp --dport 22 -j DROP" $IPTABLE_CONF
else
#如何存在的话,就打印提示信息即可
echo "This is $i is exist in iptables,please exit ......"
fi
done
#最后重启iptables生效
/etc/init.d/iptables restart
如上脚本编写完毕,如何实现自动添加恶意IP呢,执行如下命令,添加到crontab即可,实现每5分钟自动执行该脚本。
echo "*/5 * * * * /bin/sh /data/sh/auto_deny_Login.sh >>/data/logs/login/login.log 2>&1" >>/var/spool/cron/root
过几天观察,我们会发现IPTABLES配置文件里面发生了如下变化:截图如下,全部是恶意攻击的IP:

以上方法仅供参考,还有另外一种方法也非常不错,通过读取恶意IP登录信息,然后把IP写入/etc/hosts.deny 文件高效,一样可以达到效果。
自动拒绝恶意IP远程登录Linux服务器脚本的更多相关文章
- 恶意IP远程登录Linux服务器脚本
#!/bin/sh #auto drop ssh failed IP address #定义变量 SEC_FILE=/var/log/secure #如下为截取secure文件恶意ip 远程登录22端 ...
- ssh远程登录linux服务器
ssh远程登录linux服务器 用法: ssh -l user -p port server_ip 或者 ssh -p port user@server_ip 参数: -l 后接要登录的远程系统用户名 ...
- ZH奶酪:putty远程登录Linux服务器非常慢
11.pytty远程登录Linux服务器非常慢 http://www.it165.net/os/html/201209/3425.html 12.启动SSHD服务报错 http://blog.chin ...
- 搭建高性能计算环境(二)、远程登录Linux服务器
一般操作Linux系统都是通过远程登录使用的,本节介绍几种远程登录Linux.上传下载文件的工具. 1. Secure Shell SSH 简单方便.既能使用命令行登陆也能传文件,免费. 打开SSH ...
- “通过jumpserver远程登录linux服务器,rz上传文件速度过慢”问题的解决
问题: windows通过jumpserver远程登录到linux服务器,使用rz上传jar包,速度太慢(10k以内). 解决方案: 思路:通过ssh直接登录远程服务器 1.secureCRT-> ...
- 利用VNC远程登录Linux服务器简易版
我负责管理实验室的一台服务器,安装的系统是CentOS 6.7.使用pietty远程登录服务器(命令行) 需求:使实验室的同学和老师使用RealVNC远程登录服务器. 一,首先检查一下服务器是否安装V ...
- 远程登录Linux服务器修改ssh端口
公司有部分服务器root密码被禁用,有部分没有禁用,禁用root的服务器需要通过tomcat用户登陆系统,切换至root修改端口,没有禁用的直接修改root密码: #-*- coding:utf-8 ...
- 实现移动设备远程登录linux服务器
明天下午要考试了.所以最近时间有点紧,都在忙着看矩阵课本,刷刷题. 回到我们博客题目内容,最近正在看linux,之前是通过在笔记本上装着虚拟机的方法来进行操作. 之后发现一些能够进一步改进的地方,首先 ...
- Cygwin解决Windows远程登录linux服务器
下载地址http://www.cygwin.com/install.html 选择mirror.htnshost.com网站下载的比较快. 安装Cygwin(/X)需要选择的包: openssh(必选 ...
随机推荐
- 【转】24Cxx 系列EEPROM通用程序及应用
关于I2C 学习的时候介绍得最多的就是24C02 这里存储EEPROM了,但学的时候基本只是讲讲简单的I2C 的总线数据传输而已,即使先gooogle上搜索也绝大部分这这样的文章,很少有说到如何在实际 ...
- UWP&WP8.1 重新绘制图片 WriteableBitmap用法 图片转byte[]数组,byte[]数组转图片
---恢复内容开始--- WriteableBitmap 是UWP和WP8.1绘制图片的,重组图片的最重要方法.方法较为简单,方法多样性. 通过查看文档,WriteableBitmap的继承性是 ...
- 带阈值的平滑l0范数加速稀疏恢复——同名英文论文翻译
原文链接:Thresholded Smoothed l0 Norm for Accelerated Sparse Recovery http://ieeexplore.ieee.org/documen ...
- HP ALM 使用经验
使用HP ALM(Application Lifecycle Management)软件有一个多月的时间了,我是从安装,部署,建项,配置,使用,再到问题收集,这个过程过来的.发现ALM是一个功能确实强 ...
- DataTables样式
Styling 官方链接 AdminLTE HTML代码 <div class="row"> <div class="col-xs-12"&g ...
- 16C554(8250)驱动分析
参考: http://www.cnblogs.com/zym0805/p/4815041.html 一. 硬件数据手册 The ST16C554D is a universal asynchronou ...
- C# EasyUI树形结构权限管理模块
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节和大家探讨下C#使用EasyUI树形结构/Tree构 ...
- 【转载】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可 ...
- ExtJs combobox模糊匹配
下拉列表模糊查询(重要代码): listeners : { beforequery : function(e) { var combo = e.combo; if(!e.forceAll){ var ...
- (temp)catch ip
String str = "192.168.1.100"; String[] ipStr = str.split("\\."); ]; ; i < ; i ...