首页 文章详情

我的树莓派被攻击了

良许Linux | 87 2022-01-01 14:33 0 0 0
UniSMS (合一短信)



事情的背景是这样的,最近给家里的树莓派配了外网访问的地址,以便在公司可以访问,写写自己的东西。

今天早上,ssh登录的时候突然登不上了,第一反应是不是我的外网IP被禁了。

然后又试了几次,居然有一次又登上了。

顿时感觉有点不对劲,下意识地 ps x 发现有大量的 sshd 连接。

一时间有点懵,因为没有遇到过这样的情况。

上网搜了一下,说可以看一下 /var/log/auth.log 。

然后就让我惊讶了,这文件里出现了一堆连接失败的记录,各种登录的尝试,于是瞬间明白了,这是被暴力破解了,太多了连接导致我的树莓派拒绝服务了,我的正常登录也出现了异常。

这里我放几张auth.log中的记录:

不同用户名的尝试登录

这里可以看到攻击者使用了不同的用户名来尝试登录,什么chief、cxc等等

root用户名尝试登录

这里全部换成了root用户名尝试登录,算是暴力破解

这里又出现了另一个IP的攻击,不知道是不是同一个攻击者,如果是的话,这算是分布式暴力破解?

解决方案

之前都是一直用的云服务器,安全方面都是服务商帮我做好了。这次要自己防护了。

因为我的树莓派并不需要对外网服务,只需要自己能登ssh就可以了。所以只要开放我信任的IP就好了,设置IP的白名单就可以实现。找到两种方法如下:

1. 设置 /etc/hosts.allow 和 /etc/hosts.deny

/etc/hosts.deny 是黑名单列表,先在其中加上下面一行,阻止所有的 ssh 登录

sshd:ALL

这个配置瞬时起效的,所以你不能关掉当前的 ssh 连接,不然会直接连不上。

/etc/hosts.allow 是白名单,在其中加上允许访问的 IP 列表

sshd:111.222.333.444

这样就可以了。结果就是只允许 IP 111.222.333.444 的主机登录。

但是,感觉这种方法没有那么完美,因为 /var/log/auth.log 还是会出现这样的记录

sshd[21358]: refused connect from 118.123.213.221 (118.123.213.221)

因为 sshd 属于应用层的协议,估计数据报流量还是被传进来了,只是被 ssh 自己给拒绝了。

ss -anpt 后发现还是有很多 ESTAB 的连接。不爽!然后又想到用防火墙的方法。

2. ufw 设置黑白名单

很早之前用过 iptables,后来好像都变成直接使用 ufw 来设置。

特地查了一下两者的区别,ufw 使用起来更简洁,底层还是调用 iptables 。

具体的使用方法,网上很多,后面可能再写整理个 ufw 的使用方法,这里先放一下我的设置。

首先,开启 ufw

ufw enable

然后设置默认策略,出去的流量全部放行,进来的流量全部阻止(同样,当前的 ssh 连接不能断开哦)

ufw default allow outgoing
ufw default deny incoming

最后就是开放信任的 IP

ufw allow from 111.222.333.444 to any port 22

这样设置之后,就只有 111.222.333.444 的主机可以登录 ssh 了。

这种方法应该是从网络层和传输层阻止了进来的流量,比第一种方案要好一点。

以上就是这次树莓派被攻击的过程。有哪里理解的不对的,希望大神指导一下。

番外

其实,这几天我外网的服务器也被攻击了,ss -anpt 80端口显示一大堆 SYN_RECV 的连接。

正常情况下我的博客主页是不可能有这么多访问的,妥妥地被拒绝服务攻击,找不到好的方法,总不能把 80 端口给禁了吧。

有没有大神给建议一下。

大家有什么问题都可以联系我哦。https://fancygo.net



本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!

推荐阅读:

再见了VMware,一款更轻量级的虚拟机!

程序员完全没时间提升自己该怎么办?

使用 grep 在 Linux 上查找包含特定文本的所有文件


5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「1024」,即可免费获取

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter