记一次 Linux 服务器被爆破

今天一早,登录到跑Docker的一台服务器,一登录就发现如下提示:

WARNING!The SSH server rejected X11 forwarding request.Last faild login: Sat Apr 24 07:13:15 CST 2021 from 91.196.148.56 on ssh:nottyThere were 133 failed login attempts since the last successful login.

心里顿时就一帮草泥马奔腾,没什么对外的服务,实际也就跑了几个自用的容器,一个密码管理,一个RSS流的,其他没啥,怎么就被爆破了呢?百思不得其解。。

然后就开始慢慢的查询,经过查询得知居然有1W+的爆破攻击

查询爆破记录

#通过lastb 查询登录失败的记录 wc -l 统计一共的条数lastb | wc -l13454# 通过lastb查询,发现应该是通过跑字典爆破的,记录一共1万多条,lastbnagios ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) mysql ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) root ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) backup ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) testwebl ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) manager ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) glassfis ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) nagios ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) ftpuser ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) tmc ssh:notty 180.142.130.246 Wed Apr 21 06:18 – 06:18 (00:00) test01 ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) hp ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) pcap ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) liy ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) tmc ssh:notty 180.142.130.246 Wed Apr 21 06:18 – 06:18 (00:00) manager ssh:notty ip209.ip-144-217 Wed Apr 21 06:18 – 06:18 (00:00) …… ……

截取部分日志,发现总共大概基本通过如下几个地址

基于系统访问控制策略控制

可以通过系统的访问控制策略阻止这几个ip

# 编辑 /etc/hosts.deny文件,将上述几个地址加入vim /etc/hosts.deny​sshd:45.76.149.9:deny

基于系统自带访问控制策略编写脚本检测,超过5次登录失败的,就将ip加入到黑名单

编写脚本 vim /usr/local/bin/secure_ssh.sh #! /bin/bashcat /var/log/secure|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk ‘{print $2″=”$1;}’ > /usr/local/bin/black.txtfor i in `cat /usr/local/bin/black.txt`do IP=`echo $i |awk -F= ‘{print $1}’` NUM=`echo $i|awk -F= ‘{print $2}’` if [ $NUM -gt 5 ];then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ];then echo “sshd:$IP:deny” >> /etc/hosts.deny fi fidone 创建记录登录失败次数的文件 touch /usr/local/black.txt(此处如果有正常访问被拉黑的话,可以将需要正常访问的加入到访问白名单 vim /etc/hosts.allow 将需正常访问的加入此文件即可) 添加定时任务,每5分钟运行一次上述脚本 */5 * * * * sh /usr/local/bin/secure_ssh.sh

修改sshd配置,增强远程连接安全性

通过修改ssh服务配置文件,修改远程端口,指定认证类型,建议使用密钥登录,禁止密码登录

生成ssh免密登录密钥

cd /root/.ssh#生成密钥对,-t代表类型,有RSA和DSA两种ssh-keygen -t rsa Generating public/private rsa key pair.#密钥文件默认存放位置,按Enter即可Enter file in which to save the key (/root/.ssh/id_rsa): Created directory ‘/root/.ssh’.#输入密钥锁码,或直接按 Enter 留空Enter passphrase (empty for no passphrase): Enter same passphrase again: #生成的私钥Your identification has been saved in /root/.ssh/id_rsa. #生成的公钥Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is:SHA256:K1qy9xxkk1FUuzQxsdfsdf6dfdxxvHw9lQ+xxxxThe key’s randomart image is:+—[RSA 2048]—-+| +. || o * . || . .O + || . *. * || S =3+ || . =… || .oo =+ov+ || ==o+B*3o. || oo.3=XXX. |+—-[SHA256]—–+# 然后将密钥文件拷贝或分发到其他需要免密登录的电脑,使用终端登录连线的时候需选泽密钥登录,选中密钥文件即可# 修改sshd配置文件Port 2202 #修改sshd默认端口,默认22PubkeyAuthentication yes #启用密钥登录,前提是先生成密钥PasswordAuthentication no #禁止密码登录

通过上述设置正常可以限制陌生登录,爆破了。

没有绝对安全的系统,所以在使用的时候还是要保持正常的使用,不适用弱密码,不安装陌生来历不明的软件,不运行高危脚本等。

基于上述环境设置,辅助的话可以结合其他监控类软件监测`/usr/local/black.txt` 当文件变化,当文件发生变化的时候告警通知提醒,即可即时得到通知,知道有非法爆破。

© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容