如何安全配置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 Hyman@theitroad
ssh-禁用root登录
默认情况下,root用户允许从远程客户端使用ssh,出于安全考虑,我们建议禁用直接root访问。
为ssh使用任何非root帐户,然后切换到root帐户(su -)。
为此,在ssh配置文件中添加 “PermitRootLogin no”
PermitRootLogin no
ssh-禁用密码认证
这也是保护OpenSSH服务器的最佳实践。
禁用基于密码的身份验证,只使用公钥/私钥对。
为了访问服务器,需要在服务器上添加公钥。
PasswordAuthentication no
要使用ssh访问系统,需要生成一个ssh密钥对并在服务器的 ~/.ssh/authorized_keys
文件中添加一个公钥。
只有拥有私钥的用户才能使用ssh访问服务器。
ssh-只允许特定的用户和组访问
默认情况下,SSH服务器允许所有用户登录到服务器。
有时我们需要允许一些特定的用户或组。
添加下面的配置来完成相同的操作。
使用AllowUsers
选项只允许特定用户。
AllowUsers marc sarah
使用“AllowGroups”选项只允许特定的组。
AllowGroups admin webadmin
使用DenyUsers拒绝特定用户的ssh访问。
DenyUsers Hyman nick
使用DenyGroups选项为SSH拒绝特定的组。
DenyGroups Hyman nick
限制网络接口上的SSH
这对服务器很有用,服务器有一个接口直接连接到internet,另一个接口连接到LAN上。
因此,最好在面向internet的界面上禁用SSH。
使用下面的选项来做。
ListenAddress 192.168.10.100 ListenAddress 127.0.0.1
应用上述配置后,OpenSSH服务器将只监听定义的接口,不能通过任何其他接口进行访问。
这样,只有局域网192.168.10.x才能ssh到服务器上。