ssh 是访问远程服务器最常用的方法之一,同时,其也是 Linux 服务器受到攻击的最常见的原因之一。
不过别误会…我们并不是说 ssh 有什么安全漏洞,相反,它在设计上是一个非常安全的协议。但是安全起见,我们在配置 ssh 的时候,作为一个好习惯,不应该使用它的默认配置。毕竟,默认配置是大家都知道的。
今天我们分享几个可以提高 ssh 安全性的实用方法。不过需要注意,下面提到的方法,大家选取适合自己的,不需要全部都用,其中某些方法可能会与其他的不兼容。例如,如果禁用基于密码的 ssh 登录,则无需使用 Fail2Ban 方案。
如果你了解 ssh 基础知识,那么就会知道 ssh 配置文件位于 /etc/ssh/sshd_config,下面我们提到的大多数操作都需要编辑此配置文件,在真正动手修改配置文件之前,最好做一下备份。
另外,对于 ssh 配置文件所作的任何更改,都需要重启 ssh 服务才能生效。接下来我们详细看一下。
禁用空密码
在 Linux 中,用户账户可以不设置任何密码(或者为空密码)。这些用户尝试使用 ssh,也不需要密码。
这是一个极大的安全隐患,我们应该禁止使用空密码。
方法是在配置文件 /etc/ssh/sshd_config 中,将 PermitEmptyPasswords 选项配置为 no:
PermitEmptyPasswords no