您的位置:首页 > 运维架构 > Shell

企业中如何防止他人破解你的密码

2017-12-19 09:51 302 查看
在公司运维的生产环境中,我们发现有人在破解你的root密码。那么任何才能让被人不能破解你的密码,并且访问其他服务可以正常使用。

查看TCP连接
netstat -an|grep -i es

用于统计登录失败次数,及登录的IP信息
tail -n 100 /var/log/secure |grep "Failed password"|awk '{print $11}'|sort|uniq -c|sort -nr

解决方案1:
在iptables中添加规则:

vim /etc/sysconfig/iptables

-A INPUT -s 【IP信息】 -j DROP 禁止该IP访问任何端口

/etc/init.d/iptables restart 重新启动iptables

测试: 攻击者为10.0.0.52 被攻击者为10.0.0.51



从上图可以看出,该ip不能在访问,已经被拒绝

方案2:脚本实现防止破解服务器密码
#!/bin/bash
#auto drop ssh failed IP address
#定义变量
SEC_FILE=/var/log/secure
#如下为截取secure文件恶意ip远程登录22端口,大于等于4次就写入防火墙,禁止以后再登录服务器22端口,egrep -o "([0-9]{1,3}.){3}[0-9]{1,3}"是匹配IP的意思,[0-9]表示任意的一个数,{1,3}表示匹配1-3次
IP_ADDR=
tail -n 100 /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}'
$SEC_FILE
IPTABLE_conf=/etc/sysconfig/iptables

echo
cat <<EOF
+++++++++++++welcome to use login drop failed ip+++++++++++
EOF

for i in
echo $IP_ADDR

do
#查看iptables配置文件是否还有提取的IP信息
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" $IPTABE_conf
else
echo "This is $i is exist in iptables,please exit......"
fi
done
/etc/init.d/iptables restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Shell 脚本编程