如何安全配置OpenSSH服务器

OpenSSH默认配置文件是/etc/ssh/sshd_config,其中包含SSH服务器使用的所有配置。
所有以# 符号开始的选项都是默认设置一。
要更改任何选项,首先要删除# 符号,更改值并重新启动ssh服务器以重新加载选项。

本文将对OpenSSH服务器进行安全设置。
在开始这些设置之前,建议将OpenSSH服务器保持最新状态。
有时会有很多安全更新,所以尝试每周更新一次OpenSSH服务器。

ssh-更改SSH端口

默认情况下,ssh监听标准端口22。
保护服务器的第一步是更改端口,因为这是每个人都知道的端口。
编辑配置文件:

nano /etc/ssh/sshd_config

并将端口选项更新如下:

Port 2222

现在需要在远程连接ssh时指定端口号(-p 2222),如下所示。

ssh -p 2222 jack@oir

限制网络接口上的SSH

这对服务器很有用,服务器有一个接口直接连接到internet,另一个接口连接到LAN上。
因此,最好在面向internet的界面上禁用SSH。
使用下面的选项来做。

ListenAddress 192.168.10.100
ListenAddress 127.0.0.1

应用上述配置后,OpenSSH服务器将只监听定义的接口,不能通过任何其他接口进行访问。

这样,只有局域网192.168.10.x才能ssh到服务器上。

ssh-只允许特定的用户和组访问

默认情况下,SSH服务器允许所有用户登录到服务器。
有时我们需要允许一些特定的用户或组。
添加下面的配置来完成相同的操作。

使用AllowUsers选项只允许特定用户。

AllowUsers marc sarah

使用“AllowGroups”选项只允许特定的组。

AllowGroups admin webadmin

使用DenyUsers拒绝特定用户的ssh访问。

DenyUsers jack nick

使用DenyGroups选项为SSH拒绝特定的组。

DenyGroups jack nick

ssh-禁用root登录

默认情况下,root用户允许从远程客户端使用ssh,出于安全考虑,我们建议禁用直接root访问。
为ssh使用任何非root帐户,然后切换到root帐户(su -)。
为此,在ssh配置文件中添加 “PermitRootLogin no

PermitRootLogin no

ssh-禁用密码认证

这也是保护OpenSSH服务器的最佳实践。
禁用基于密码的身份验证,只使用公钥/私钥对。
为了访问服务器,需要在服务器上添加公钥。

PasswordAuthentication no

要使用ssh访问系统,需要生成一个ssh密钥对并在服务器的 ~/.ssh/authorized_keys文件中添加一个公钥。

只有拥有私钥的用户才能使用ssh访问服务器。

日期:2019-05-19 01:25:23 来源:oir作者:oir