对几次输入ssh密码错误的IP进行iptables drop
来源:互联网 发布:淘宝详情排版神器软件 编辑:程序博客网 时间:2024/04/30 01:35
对几次输入ssh密码错误的IP进行iptables drop
把下面脚本放入/etc/crontab
- 扫描ssh密码猜测次数超过5次的记录
* * * * * root /home/cnscn/sh/ssh_scan_crontab.sh >/dev/null 2>&1
$ cat /home/cnscn/sh/ssh_scan_crontab.sh
#!/bin/bash
# Author http://jabin.cublog.cn
# Modify cnscn http://cnscn2008.cublog.cn
# Modify xinyv
#设置时区
export LC_ALL=UTC
# 获取前 1 分钟内的 secure 记录,统计 ssh 认证失败的 IP 和其 失败次数, 并用Iptables阻止之
SCANNER=$(awk 'BEGIN{ tm=strftime("%b %e %H:%M",systime()-60);} $0 ~ tm && /Failed password/ && /ssh2/ {print $(NF-3)}' /var/log/secure |sort|uniq -c |awk '{print $1"="$2;}')
for i in $SCANNER
do
echo $i
# 取认证失败次数
NUM=`echo $i|awk -F= '{print $1}'`
# 取其 IP 地址
IP=`echo $i|awk -F= '{print $2}'`
# 若其在失败次数超过 5 次且之前没有被阻断过,那么添加一条策略将其阻断,并记录日志
if [ $NUM -gt 5 ] && [ -z "`/sbin/iptables -vnL INPUT|grep $IP`" ]
then
/sbin/iptables -I INPUT -s $IP -j DROP
echo "/sbin/iptables -I INPUT -s $IP -j DROP" >> /home/cnscn/sh/ssh_scan_iptables.sh
logger -i -t "ssh_scan_crontab" -f /var/log/messages "$IP($NUM)..."
fi
done
#End of Script
把脚本/home/cnscn/sh/ssh_scan_iptables.sh加入到开机启动的myiptables.sh防火墙脚本
$ cat myiptables.sh
#!/bin/bash
#chkconfig: 345 85 15
#description: my iptables rules, which can auto run when system start
# This is a script
# Edit by liwei, cnscn
# establish a static firewall
#网络接口
interdevice="eth0"
#端口
#21 ftp
#15022 sshd
#25 smtp
#53 named
#80 http
#110 pop3
#外界可以访问的端口
Open_ports="21 20 22 80"
#可以外出的端口,其它端口都可以外出
Allow_ports="21 20 80 "
#清除所有以前设置的规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
#执行非法IP阻止规则
/home/cnscn/sh/ssh_scan_iptables.sh
#允许211.167.xxx.xxx, 防止自己输入错误而导致的IP被封锁
/sbin/iptables -I INPUT -s 211.167.xxx.xxx -j ACCEPT
#定义每一个网络接口规则
for eths in $interdevice ; do
#接受所有的,来源不是网络接口$interdevice的数据(对不是eths端口则放行)
#iptables -A INPUT -i ! $eths -j ACCEPT
#定义外界可以访问的端口规则(--dport)
for Port in $Open_ports ; do
iptables -A INPUT -i $eths -p tcp --dport $Port -j ACCEPT
iptables -A INPUT -i $eths -p udp --dport $Port -j ACCEPT
done
#给不应该进入我们机器的数据,一个欺骗性的回答
iptables -A INPUT -i $eths -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -i $eths -p udp -j REJECT --reject-with icmp-port-unreachable
done
#forbidden ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#End of Script
参考
- SSH 的一些安全小技巧
- iptables 入门
- http://linux.vbird.org/linux_server/0250simple_firewall.php
From: http://sebug.net/node/t-43
0 0
- 对几次输入ssh密码错误的IP进行iptables drop
- 对多次ssh密码错误的IP进行防火墙拦截
- SSH密码错误几次后封禁登录IP
- ssh, scp 不输入密码进行操作的方法
- 对用户输入的密码进行MD5加密
- SSH远程登录需要密码输入错误
- C语言实现输入的密码与设置密码进行比对,输入密码可以任意输入。
- 普通用户之间无法通过ssh协议进行切换(su),即使输入正确的密码
- CentOS使用在有私钥时使用ssh进行git clone要求输入密码的解决方案
- 实现任意机器间均非输入密码进行SSH登录
- 使用sshpass进行ssh/scp/sftp/自动输入密码
- 更新数据库的几次错误
- 最近的几次错误200905
- ssh/scp不需要输入密码的方法
- ssh不输入密码
- ssh 不用输入密码
- CAS通过用户名与ip限制密码输入错误次数
- 配置ssh无密码登陆的错误
- 高效团队协作——敏捷开发环境架构(一)
- nginx+keepalived 高可用负载均衡
- Aexi计划
- 明明白白你的Linux服务器——安全篇
- 杭电 HDU 1037 Keep on Truckin'
- 对几次输入ssh密码错误的IP进行iptables drop
- 数字逻辑中的最小完全集
- EXT2 file system balloc.c with my comments
- iOS 时间类常用方法
- iOS 设置Label中特定的文字大小和颜色
- 隔了4年,打算重新开始更新博客
- topological sort python recursive and iterative
- LeetCode 题解(76): 3Sum Closest
- ios 预留帖子