Dreamer2q Blog
见到,不如不见
Dreamer2q

Code is cheap, talk is expensive

64日志

要保护好自己 - 网络安全

创建于 2021-09-24 共 1299 字,阅读约 5 分钟 更新于 21-09-24 07:44
浏览 50评论 0

为了随时能连上自己的电脑,开了一个公网端口,方便自己随时访问到自己的资源。

不知不觉端口开了两年多了,也没啥大碍,也就没有反正心头了。

直到某天早上起床,发现“火绒”图标有“消息”:


好家伙,这木长的一大串记录?我是得罪了谁?和我这木有仇?要知道一般的扫描器绝对不会产生这木多条记录的,而且我开的也不是 3389 标准端口,居然这么持之以恒,肯定是有预谋的。我不禁心底一凉,Windows 的密码我有两年多没换过了,让它这么一种下去迟早会被“曰”的。

Windows 日志

我想,肯定没有这么简单,于是我颤颤巍巍的去查 Windows 的日志,祈祷我没有关闭 Windows 的日志服务。

还好没有关闭,于是

居然有 1W 多条记录,马的这人脑袋有毛病吧。从 18号到 23号,足足快到 2W 条记录了,我只能呵呵了。

防护措施

既然都早上家门口了,自然不能坐视不管,这个时候 Windows 的策略组就排上用场了。

gpedit.msc

Windows 设置 - 安全设置 - 账号策略 - 账户锁定策略,开启“账户锁定”。

这样,每 3 次的破解,就让它需要休息 30 分钟吧。后面又把端口修改了一下,弄了一个六亲不认的端口。如果还有人来扫描破解,那就真的是恨死我的人了。

这样就完成了非常基础的防护工作,虽然不能实现“IP”封锁,但是因为这台电脑是我的主力机,每天都要使用的,出现什么问题我可以及时发现,因此目前的措施足够了。

如果这样还不行,只能放弃公网端口了,直接走虚拟内网。。。

这样就结束了吗?不,让我担心的事情还在后面。

Linux 开发机

除了这台主力机,还有一台 Linux 开发机(其实还有一台 Windows 服务器),都是作为虚拟机运行的。

创建这台 Linux 的时候并没有想到后来会变成我的开发机,所以当时密码设置的非常弱智,类似 123456 之类的密码。因为本来就是创建出来玩的,当时也没有给多高的配置,后面体验到了 vscode 的远程开发,才找到有多香,后面就自然而然的变成了开发机(Windows 下面 wsl/2 体验不太满意)。

同理,为了能随时随地远程开发,也就给它开启了公网端口。

Linux 日志

这台 Linux 比较惨,在我排查问题的过程中,还正在被爆破呢。


刚看到“192.168.1.1”的时候还以为路由器已经沦陷了呢,不过后面才发现是“frpc”的问题,它没办法显示请求的源地址。

防御措施

首先把路由器的 frpc 插件停掉,果然就没了破解日志;后续就把密码登录的功能给关闭,使用密钥。

最后,最好弄一个“IP”封锁的脚本,将所有国外的地址给过滤掉,国内的地址超出一定尝试次数就直接封掉。

加入 IP 封锁

通过沦陷 SSH 登录日志,将同一个 IP 尝试次数大于一个阈值加入 hosts.deny 文件里面。

#! /bin/bash
cat /var/log/auth.log|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat  /usr/local/bin/black.list`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  if [ ${#NUM} -gt 1 ]; then
    grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done
  • 加入定时日志,每分钟执行一次
/etc/crontab

# every 1 minute
*/1  *   * * *   root    bash /opt/scripts/secure-ssh.sh

这样就可以简单拦截掉需要恶意的 IP 地址了。

后续

对外开放的端口还有我舍友的电脑,他也收到了火绒的风险提示,不过他的用户名比较奇葩,居然有空格在里面;我很好奇他是怎么做到的。

之后又检查了一些对外开放的端口,关闭了许多无用的端口,然后将端口修改成高位端口了。

这样下来,整个世界都清净了。

总结

自己开的博客在外面,无人问津;默默开了一个不知名的端口,马的,请求铺天盖地的打过来,真·日了狗了。


这次经历,让我认识到网络安全的重要性,以及复杂密码的重要性,最好是随机生成的密码,后续要提高自己的安全意识。