Linux主机预防SSH暴力攻击
Posted 单片机菜鸟哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux主机预防SSH暴力攻击相关的知识,希望对你有一定的参考价值。
忘记过去,超越自己
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-12-29 ❤️
- ❤️ 本篇更新记录 2022-12-29 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥
- 🔥 菜鸟项目合集 🔥
快速导读
1、前言
当一台linux主机接入了公网之后,就意味着网络资源就暴露在大众面前。由于博主购买了腾讯云服务器,并且恰巧不巧设置了一个简单的登录密码,一下子就被人SSH粗暴攻击并成功修改了root账号密码,导致无法更改密码成功,最后面只能让腾讯云IT人员帮忙处理修复。
引发思考:
- 如何稍微让自己的云服务器安全一点?
- 要是这个服务器是生产服务器岂不是gg?
2、解决思路
一般云服务器本身也会有简单的防火墙规则,但对于ssh远程登录还是允许的,毕竟大家都要登录自己的服务器。
2.1 简单方法:修改密码为复杂密码
由于之前博主密码过于简单,一下子就被人暴力破解了,所以这次就设置了一个极度复杂的密码,连博主自己也没有记住,直接手写记录。
2.2 有效方法:禁止有攻击行为的SSH IP访问
参考:
有专门的机构会记录大部分有攻击行为的IP地址,我们只需要禁止这些IP地址访问即可。利用 /etc/hosts.deny
规则。
#==========开始复制==========
ldd `which sshd` | grep libwrap # 确认sshd是否支持TCP Wrapper,输出类似:libwrap.so.0 => /lib/libwrap.so.0 (0x00bd1000)
cd /usr/local/bin/
wget antivirus.neu.edu.cn/ssh/soft/fetch_neusshbl.sh
chmod +x fetch_neusshbl.sh
cd /etc/cron.hourly/
ln -s /usr/local/bin/fetch_neusshbl.sh .
./fetch_neusshbl.sh
#=========结束复制==========
在这里,博主只使用了人工运行,并没有加入定时任务。
#!/bin/sh
# Fetch NEU SSH Black list to /etc/hosts.deny
#
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
URL=http://antivirus.neu.edu.cn/ssh/lists/neu_sshbl_hosts.deny.gz
HOSTSDENY=/etc/hosts.deny
TMP_DIR=/dev/shm
FILE=hosts.deny
[ -d $TMP_DIR ] || TMP_DIR=/tmp
cd $TMP_DIR
curl --connect-timeout 60 $URL 2> /dev/null | gzip -dc > $FILE 2> /dev/null
LINES=`grep "^sshd:" $FILE | wc -l`
if [ $LINES -gt 10 ]
then
sed -i '/^####SSH BlackList START####/,/^####SSH BlackList END####/d' $HOSTSDENY
echo "####SSH BlackList START####" >> $HOSTSDENY
cat $FILE >> $HOSTSDENY
echo "####SSH BlackList END####" >> $HOSTSDENY
fi
这是对应的脚本内容。如果还发现其他不在列表内的ip地址,也可自行添加。
以上是关于Linux主机预防SSH暴力攻击的主要内容,如果未能解决你的问题,请参考以下文章