如何保护OpenSSH服务器与5个有用的技巧

OpenSSH的默认配置文件 /etc/ssh/sshd_config 文件,它包含SSH服务器使用的所有配置,5个技巧来安全配置OpenSSH服务器

OpenSSH的默认配置文件是 /etc/ssh/sshd_config 文件,它包含SSH服务器使用的所有配置。所有选项下#符号用于使用默认设置。要更改任何选项先删除#符号,更改数值并重新启动SSH服务器重新加载选项。 本文将帮助您确保OpenSSH服务器。启动这些设定之前,我会建议让你OpenSSH服务器是最新的。有很多的安全更新谈到时间的时候,所以尽量在一个星期更新一次OpenSSH服务器。

第1步:更改SSH端口

默认情况下监听SSH标准的22端口,第一个步骤以确保你的服务器的安全我们来改变端口,因为 22 是由每一个人所熟知的端口。 编辑配置文件,并更改端口选项,如下
# nano /etc/ssh/sshd_config
Port 2222
现在,需要指定端口号(-p 2222),而远程连接SSH如下图所示。
# ssh -p 2222 root@192.168.10.100

第2步:通过SSH禁用Root访问

默认情况下,root用户被允许从远程客户端为SSH,出于安全目的,我们建议您禁用直接root权限。使用任何非root帐户的ssh,然后切换(su - )身份到root帐户。 要做到这点,我们在ssh配置文件里添加 “PermitRootLogin no”
# nano /etc/ssh/sshd_config
PermitRootLogin no

第3步:禁用密码验证,仅使用密钥对

这也是确保OpenSSH服务器的最佳做法。禁用基于密码的认证和只使用公钥/私钥对。它需要为了增加服务器的公钥来访问服务器。
# nano /etc/ssh/sshd_config
PasswordAuthentication no
要使用SSH访问系统,生成SSH密钥对,并添加服务器的~/.ssh/authorized_keys 文件中的公钥。只有具有私有密钥的用户可以使用SSH访问服务器。阅读文章,以配置置ssh密钥,无密码连接 。

第4步:允许/拒绝特定用户或组

默认情况下,SSH服务器允许所有用户登录到服务器。我们需要一些时间来允许/拒绝一些特定用户或组。下方添加配置。 允许特定用户:使用的AllowUsers选项,只允许特定用户。
# nano /etc/ssh/sshd_config
AllowUsers marc sarah
允许特定组:使用AllowGroups选项,仅允许特定群体。
# nano /etc/ssh/sshd_config
AllowGroups marc sarah
拒绝特定用户:使用DenyUsers拒绝特定用户的ssh访问。
# nano /etc/ssh/sshd_config
DenyUsers jack nick
拒绝特定组:使用DenyGroups选项来拒绝特定群体为SSH。
# nano /etc/ssh/sshd_config
DenyGroups jack nick

第5步:在特定的网络接口限制SSH

这是为服务器,其具有一个接口直接连接到互联网和另一连接局域网有用。因此,这将是很好的禁用Internet面临的接口上的SSH。使用下面选项来做到这一点。
# nano /etc/ssh/sshd_config
ListenAddress 192.168.10.100
ListenAddress 127.0.0.1
加上述配置后,OpenSSH服务器将只监听定义的接口和不能访问的任何其它的接口。

高级SSH安全与 Port Knocking

Port Knocking 不一定取决于与OpenSSH,你可以使用这个安全像SSH,FTP或HTTP任何协议。Port Knocking 提供的安全多了一个层次。阅读下面的文章来实现Port Knocking https://www.howtoing.com/secure-ssh-connections-with-port-knocking-linux/