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.youcl.com/info/10711