Rad*_*Hex 30 server ssh security
我的服务器遇到了一些安全问题,一些 SSH 用户一直在设置火灾,也就是出现问题。
我想要:
我不是一个系统管理员,我在这方面经验不足,所以任何类型的建议都会非常受欢迎并且非常有帮助。:)
[免责声明]我知道我迟到了,但我想粘贴我在另一个问题上的答案,因为我觉得它可以为读者提供一些很好的见解,而这个问题似乎是首选基本 ssh 信息的地方。
在 AskUbuntu 上阅读了这个问题并检查了我的 VPS 后,有一个类似的问题让我震惊,结果却看到了无数的蛮力尝试。那是我决定采取行动的时候。
现在根据我链接到的问题,如果您想通过 ssh 在您的机器上看到失败的登录尝试(可能是蛮力尝试或任何东西),请尝试输入:
grep sshd.\*Failed /var/log/auth.log | less
Run Code Online (Sandbox Code Playgroud)
如果输出包含多行,即多次蛮力尝试,尤其是在很短的间隔之间发生的情况下,您可能需要执行以下操作:
为此,请使用您喜欢的编辑器打开位于/etc/ssh/sshd_config的文件,如下所示vim /etc/ssh/sshd_config
。
1. 尝试从端口 22 移动 ssh:现在找到以下行:
# What ports, IPs and protocols we listen for
Port 22
Run Code Online (Sandbox Code Playgroud)
并注释掉端口 22,并使用您可能喜欢的任何人。例子:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Run Code Online (Sandbox Code Playgroud)
请记住,低于 1024 的端口需要特殊的 (root) 权限。我不知道这会如何干扰它,但我只是说。
2. 禁用通过 ssh 的 Root 登录:由于 root 用户名是可预测的,并且可以完全访问您的系统,因此通过 SSH 提供对该帐户的不受限制的访问是不明智的。找到读取PermitRootLogin的行并将其设置为no。
PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)
3. 禁用密码验证:生成并使用 SSH 密钥登录您的系统。如果没有启用密码,攻击者将需要猜测(或窃取)您的 SSH 私钥才能访问您的服务器。非常非常困难的事情。继续找到读取PasswordAuthentication的行并将其设置为no
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)
!警告!在此之前,请参阅此处的本指南,了解如何设置证书身份验证。
注意:进行更改后,请使用sudo /etc/init.d/ssh restart
. 通过SSH连接使用到另一个端口:ssh username@hostname.com -p <port_number>
。
请查看本指南,了解如何设置集成到 Linux IPTables 中的极其强大和有效的防火墙。
我个人使用并很快想到的一个是Fail2Ban。Fail2ban 将监视您的日志文件以查找失败的登录尝试。在 IP 地址超过最大身份验证尝试次数后,它将在网络级别被阻止并记录事件/var/log/fail2ban.log
。要安装它:sudo apt-get install fail2ban
有一个名为 的 linux 命令,history
它允许您查看在此之前输入了哪些命令。尝试history
在终端中输入以查看到目前为止的所有命令。如果您是root ,它会有所帮助。
要搜索特定命令,请尝试:history | grep command-name
要列出SSH毕竟命令:fc -l ssh
您还可以使用 vi 编辑命令(还没有尝试过 vim,但我认为它也可以):fc -e vi
您还可以删除历史记录:history -c
注意:如果您不喜欢该命令,history
那么您的主目录 ( cd ~
) 中还有一个名为.bash_history 的文件(如果您使用的是 bash),您可以cat
通过它查看在 bash shell 中输入的所有内容。
归档时间: |
|
查看次数: |
73478 次 |
最近记录: |