我的服务器不断受到攻击

Siv*_*der 33 security ssh

我对系统管理领域相当陌生。我最近一直在研究一个应用程序,当我检查我的应用程序服务器日志时,我不断地获得各种 IP 地址,试图通过蛮力 ssh 进入我的服务器。这是我的服务器日志的示例:

Feb 14 04:07:20 foodwiz3 sshd[1264]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:07:21 foodwiz3 sshd[1264]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:07:21 foodwiz3 sshd[1264]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223  user=root
Feb 14 04:07:23 foodwiz3 sshd[1264]: Failed password for root from 23.249.167.223 port 32997 ssh2
Feb 14 04:07:23 foodwiz3 sshd[1264]: Received disconnect from 23.249.167.223: 11: Bye Bye [preauth]
Feb 14 04:13:04 foodwiz3 sshd[1289]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:13:05 foodwiz3 sshd[1289]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:13:05 foodwiz3 sshd[1289]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223  user=root
Feb 14 04:13:07 foodwiz3 sshd[1289]: Failed password for root from 23.249.167.223 port 41562 ssh2
Run Code Online (Sandbox Code Playgroud)

这是相当正常的事情,还是我应该担心/做些什么?

Fab*_*bby 60

欢迎来到精彩的互联网世界……你有:

但真正的答案是:是的,这是正常的:僵尸网络黑手党总是可以使用一些额外受到严重保护的服务器......

  • 除了更改 ssh 的默认端口外,我们还有 [端口敲门](https://www.digitalocean.com/community/tutorials/how-to-use-port-knocking-to-hide-your-ssh-daemon-from- ubuntu 上的攻击者)。 (2认同)

mik*_*996 15

有足够的登录尝试来制作泛洪日志是相当正常的。

更改 SSH 端口更像是一种“隐匿性安全”类型的解决方案,但它有助于解决泛滥。我强调它不是很优雅;出于某种原因,存在服务的事实上的端口。

默认情况下它应该是打开的,但请确保您不能以 root 身份通过 SSH 连接到您的服务器。这是服务器之间相当一致的用户名,因此是密码暴力登录尝试的主要目标。使用以下行强制设置sshd_config

PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

还要查看fail2ban监视 sshd 日志的重复违规者。例如,在 3 分钟内从某个 IP 登录 5 次失败会导致该 IP 被阻止 10 分钟。我将禁止时间增加到 24 小时,以进一步减少日志垃圾邮件 - 成功。:)

  • “我将禁止时间增加到 24 小时以进一步减少日志垃圾邮件”相信我。除非您可以物理访问服务器,否则总有一天您会对此深感遗憾。;) (7认同)

paw*_*318 8

我建议你做几件事:

  1. 更改 ssh 正在侦听的端口(到远高于 1024 的端口)并确保您不使用协议的版本 1:

/etc/ssh/sshd_config

# What ports, IPs and protocols we listen for
Port 50022
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
Run Code Online (Sandbox Code Playgroud)
  1. 安装fail2ban- 它监视日志文件,并通过更新现有的防火墙规则 ( iptables)暂时或永久禁止容易出现故障的地址。

  2. 确保将受信任的位置列入白名单。


per*_*son 7

是的,担心。您可能永远不会被烧毁,但您应该遵循 IT 最佳实践。安全总比后悔好。

我是一家医院的网络管理员。将盒子直接连接到互联网总是一个主意。您所看到的是数以千计的自动扫描程序,它们扫描 Internet 上的漏洞。我在我们的 ids 框中看到了这些以及各种软件(ssh、telnet、ftp 等)的各种内容(端口扫描、各种已知的漏洞测试)
您的机器应该位于防火墙/NAT 解决方案之后,您应该只将所需的端口转发到互联网(80、443 等)。做起来相对容易。
拥有可用于管理(SSH telnet)的东西面对互联网是一个坏主意,因为如果 - 无论出于何种原因 - 该服务器上的 SSH/telnet 软件中存在错误,自动化机器人会在心跳中检测到它你会被搞砸的。软件中的错误一直在发生,可能需要一段时间才能发布补丁或您要记住修补它。

如果您需要远程管理,请考虑设置诸如 VPN 解决方案之类的东西,或者如果您使用 Windows,请为远程桌面设置终端服务网关。我知道如果您只是一家小商店,您可以使用带有 2 个 NIC 的单独 Linux 或 Windows 机器来设置 VPN 和 NAT 的路由和远程访问。否则,像 Cisco 这样的供应商有硬件防火墙/NAT 解决方案 (Cisco ASA)。

总之,将您的机器置于 NAT 之后。仅端口转发运行服务所需的端口。不要将用于管理的转发服务移植到 Internet,而是使用 VPN 进行远程管理。

PS更改 SSH 端口可能有助于日志量,但实际上并不会阻止对 SSH 的访问。数以千计的自动漏洞查找器中的任何一个都可以并且将会进行端口扫描,以查看哪些端口正在侦听哪些服务。您可以使用名为nmap的工具自行完成

  • 实际上,VPN 解决方案并不比 SSH 服务器安全。它们都依赖于正确实施的加密协议和正确配置的服务。通过不同的方式,我会说它们提供完全相同的安全级别。然后,如果我理解你,你把 SSH _behind_ 一个 VPN,那么是的,这是一个更安全的级别。 (8认同)

小智 5

您可以通过iptables配置内核的内部防火墙。这样只有少数机器可以 ssh 到您的服务器并让其他 IP 包丢失。有关man iptables更多信息,请参阅。

例如,如果 192.168.1.67 是您 ssh 的主机,则在服务器上键入:

sudo iptables -A INPUT -p tcp --dport ssh -s 192.168.1.67 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport ssh -j DROP
sudo iptables-save
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果远程管理是您唯一的选择,您会被严重搞砸。大多数IP只是半永久性的。改变硬件,你会被烧死。 (2认同)