今天我检查了我的 raspberry 的 auth.log(家庭网络中 wrt54gl 后面的私有 IP 地址)。令人惊讶的是,我看到了很多“root 密码输入失败”行。
可以在 SSH 暴力攻击者列表中找到 SRC IP。
当我通过互联网连接到我的树莓派时,我通常会建立一个到我的路由器公共 IP 地址的 ssh 连接,然后连接到树莓派的私有地址。
那么,人们如何才能直接连接到这个只有私有地址的设备呢?
eth0 Link encap:Ethernet Hardware Adresse b8:27:eb:e5:7a:5b
inet Adresse:192.168.0.5 Bcast:192.168.0.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:2774178 errors:0 dropped:933 overruns:0 frame:0
TX packets:5544091 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:1000
RX bytes:457172801 (435.9 MiB) TX bytes:875979564 (835.3 MiB)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX packets:2695 errors:0 dropped:0 overruns:0 frame:0
TX packets:2695 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenl▒nge:0
RX bytes:725188 (708.1 KiB) TX bytes:725188 (708.1 KiB)
Jun 15 13:42:12 rpi sshd[15608]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.31 user=root
答案1
操作方法与你相同,假设你使用端口转发。如果你尝试从远程登录你的树莓派,甚至可能使用错误的密码,你应该会在 auth.log 中看到非常相似的一行。
当然,您将连接到分配给路由器外部接口的公共 IP 地址。我假设您在路由器中建立了端口转发,这样任何连接到公共 IP 地址上的特定端口的连接都将被转发到树莓派。在这个特定情况下,我假设您将路由器中的端口 22 转发到树莓派的端口 22。
另一个 IP 地址背后的人的做法也是一样的,可能就像
- 扫描互联网以查找开放端口的主机
- 运行一个工具
- 连接到该主机和端口
- 尝试使用密码列表登录
或者他可能手动执行此操作并启动他的 ssh 客户端,连接到你的公共 IP 地址、端口 22(该地址将被转发到树莓派),然后简单地尝试常见的用户名/密码组合(pi/raspberry、root/root,...)。
为了避免这种情况,你可以
- 配置 sshd 使用私钥/公钥认证,而不是密码认证
- 告诉您的路由器将不同的端口(例如 2222)转发到树莓派的端口 22。请务必调整您的(远程)ssh 客户端,以便您仍然可以连接。
knockd
在想要使用之前安装并打开端口- 安装
fail2ban
以阻止未经授权的 IP 地址
(有关上述方法的更详细概述,请参阅这里。