参考
linux装SSH服务以及防止SSH暴力破解_keil_wang的博客-CSDN博客
ssh访问控制,多次失败登录即封掉IP,防止暴力破解_Alves的博客-CSDN博客
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.2021-1-27.bak
vi /etc/ssh/sshd_config
修改
LogLevel INFO
SyslogFacility AUTHPRIV #日志级别
cp /etc/rsyslog.conf /etc/rsyslog.conf.2021-1-27.bak
vi /etc/rsyslog.conf
修改
auth,authpriv.* /var/log/secure
重启sshd服务
service sshd restart
查看日志
tail -f /var/log/secure
准备执行脚本ssh_pervent.sh ,必须在linux下编辑,windows下可能出现未知问题,不能运行
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /home/black.txt
DEFINE="10"
for i in `cat /home/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ];
then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];
then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done
将文件放在/home目录下,
授予执行权限
chmod 755 ssh_pervent.sh
手动执行一次,没有报错,
cat black.txt
查看执行结果
cat /etc/hosts.deny
查看执行结果,大于10次的,被记在下边
加入linux定时任务,每10分钟执行一次脚本
执行
crontab -e
出现如下页面,把 */10 * * * * /home/ssh_pervent.sh 加进去,
隔一段时间后观察一下
cat /etc/hosts.deny
是否增加了很多IP
然后观察
tail -f /var/log/secure
如果都是这样证明没成功
hosts.deny配置无效,其他IP还是可以登陆成功。
解决方法如下:
hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。
查看某服务(如ssh)是否应用了libwrapped库文件的方法是:
# ldd /usr/sbin/sshd |grep libwrap.so.0
没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件,这台服务器不清楚为什么不支持)
最终解决方法是重新安装SSH。
# yum -y remove openssh
# yum -y install openssh
# yum -y install openssh-server
安装完成后再次查看是否应用了libwrapped库文件,显示支持。
# ldd /usr/sbin/sshd |grep libwrap.so.0
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f3fb7f09000)
再测试SSH登陆,配置生效。
请务必保留此出处hosts.allow、hosts.deny配置不生效的解决方法_75clouds_51CTO博客
然后观察
tail -f /var/log/secure
如下表示最终成功
refused connect from 112.196.74.82 (112.196.74.82)
或者这个,(这个有时候不起作用)
1、在起效果机器下,执行如下命令:
[root@zt ~]# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ba28edcc000)
2、在不起效果机器下,却找不到libwrap.so
3、在生效的机器上执行:
rpm -qf /lib64/libwrap.so.0 结果如下:
tcp_wrappers-7.6-40.7.el5
4、在不生效的机器上
yum install -y tcp_wrappers
安装后,用ldd /usr/sbin/sshd | grep libwrap.so 还是没有内容
5、在不生效机器上,继续
yum list |grep openssh 结果:
openssh.x86_64 5.3p2-24.el5 installed
openssh-clients.x86_64 5.3p2-24.el5 installed
openssh-server.x86_64 5.3p2-24.el5 installed
openssh.x86_64 5.3p2-41.el5_5.1 updates
openssh-askpass.x86_64 5.3p2-41.el5_5.1 updates
openssh-clients.x86_64 5.3p2-41.el5_5.1 updates
openssh-server.x86_64 5.3p2-41.el5_5.1 updates
于是,执行:
yum update -y openssh
再次执行:
ldd /usr/sbin/sshd | grep libwrap.so
有结果显示了。
别的服务器链接该服务器,也会报下面的错误
ssh_exchange_identification: Connection closed by remote host
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)