我正在运行 Ubuntu 20.04 服务器,当我查看日志时,我不断看到如下字符串:
Jan 14 23:04:51 dell-server sshd[578861]: Invalid user carlos from 14.232.160.213 port 32832
Jan 14 23:04:51 dell-server sshd[578861]: pam_unix(sshd:auth): check pass; user unknown
Jan 14 23:04:51 dell-server sshd[578861]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=14.232.160.213
Jan 14 23:04:52 dell-server sshd[578861]: Failed password for invalid user carlos from 14.232.160.213 port 32832 ssh2
Jan 14 23:04:54 dell-server sshd[578861]: Received disconnect from 14.232.160.213 port 32832:11: Bye Bye [preauth]
Jan 14 23:04:54 dell-server sshd[578861]: Disconnected from invalid user carlos 14.232.160.213 port 32832 [preauth]
Jan 14 23:05:09 dell-server sshd[579042]: Invalid user admin from 41.221.168.167 port 37492
Jan 14 23:05:09 dell-server sshd[579042]: pam_unix(sshd:auth): check pass; user unknown
Jan 14 23:05:09 dell-server sshd[579042]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=41.221.168.167
Jan 14 23:05:11 dell-server sshd[579042]: Failed password for invalid user admin from 41.221.168.167 port 37492 ssh2
Jan 14 23:05:11 dell-server sshd[579042]: Received disconnect from 41.221.168.167 port 37492:11: Bye Bye [preauth]
Jan 14 23:05:11 dell-server sshd[579042]: Disconnected from invalid user admin 41.221.168.167 port 37492 [preauth]
它总是针对我的系统上不存在的随机用户名。是否有人试图通过 SSH 强行入侵我的服务器?
有人能建议如何减轻这些攻击并自动禁止正在使用的 IP 地址吗?
答案1
是的,这些都是坏人试图入侵你的系统。从技术上来说,这些并不是暴力破解,但也不是好意。
专业提示:切勿在互联网连接的系统上使用基于密码的身份验证。仅使用密钥。由于密钥在您的一生中无法被暴力破解,因此通常不需要采取进一步的措施来禁止来源(除非尝试次数影响了您的服务器对合法请求的性能 - 这是一种 DOS 攻击!)
观察:您审核 auth.log 的做法很明智。干得好!
答案2
这是我发现的一篇文章,可能会有所帮助https://www.techrepublic.com/article/how-to-block-ssh-attacks-on-linux-with-denyhosts/
优点:Denyhosts 是一个开源的、基于日志的服务器入侵防御安全程序,它允许您将您不想被阻止的服务器列入白名单,甚至可以通过电子邮件向您发出任何可能的入侵检测警报。
安装
安装denyhosts非常简单。登录你的Ubuntu服务器(或打开终端窗口)并输入以下命令:
sudo apt-get 安装denyhosts-y
这就是安装的全部内容。配置
首先要做的是将您想要确保永远不会被阻止的任何机器列入白名单。这至关重要,这样您就不会在有效的桌面或服务器上意外被阻止(不要跳过这一步)。要将机器列入白名单,请发出以下命令:
sudo nano /etc/hosts.allow
在该文件的底部,添加任何机器以列入白名单,如下所示:
sshd: IP 地址
其中 IP_ADDRESS 是要列入白名单的地址。
每行添加一个地址,添加任意数量的地址。因此,如果您将多个主机列入白名单,则这些条目将如下所示:
sshd:192.168.1.1 sshd:192.168.1.10 sshd:192.168.1.100
保存并关闭该文件。
现在我们在denyhosts.conf文件中配置denyhosts。为此,使用以下命令打开denyhosts配置文件:
sudo nano /etc/denyhosts.conf
首先要配置(可选)的是登录尝试次数的限制。您将找到以下配置选项:在登录尝试失败一定次数后阻止每个主机
DENY_THRESHOLD_INVALID = 5 失败尝试次数超过此值后阻止每个主机
DENY_THRESHOLD_VALID = 10 在失败尝试次数超过此值后阻止每次尝试失败的 root 登录DENY_THRESHOLD_ROOT = 1 在失败登录尝试次数(针对在 WORK_DIR/restricted-usernames 中找到的用户)超过此值后阻止每个主机
拒绝阈值限制 = 1
虽然我不建议更改这些值,但如果您有充分的理由,请继续编辑它们。
接下来,您需要配置电子邮件警报地址。在同一个配置文件中,查找以下行:
管理员电子邮件 =
配置您想要接收这些警报的电子邮件地址。默认情况下,denyhosts 使用本地 SMTP 传送方法(在端口 25 上)。如果这对您不起作用,您可以配置以下选项(在denyhosts.conf 文件中)以满足您的需求:
SMTP_HOST = SMTP_PORT = SMTP_FROM =
配置完必要的外发电子邮件选项后,保存并关闭文件。
使用以下命令重新启动并启用denyhosts服务:
sudo systemctl 重新启动拒绝主机 sudo systemctl 启用拒绝主机
查看日志文件
默认情况下,denyhosts 会将日志记录到 /var/log/auth.log。您可以使用以下命令实时查看该日志:
尾部-f /var/log/auth.log