强化SSH服务安全的最佳实践

发布于:2024-05-02 ⋅ 阅读:(100) ⋅ 点赞:(0)

SSH(Secure Shell)作为一种广泛应用于Linux和其他类Unix系统中的强大工具,为管理员提供了安全的远程登录和命令执行功能。在现今高度互联的网络环境中,确保SSH服务的安全性显得尤为重要。本文将详细阐述一系列SSH服务的最佳实践,旨在帮助系统管理员有效地提升服务器及知行之桥服务安全级别,减少潜在的攻击面。

1.修改默认端口
服务器

默认情况下,SSH服务运行在TCP端口22上,黑客通常会通过扫描默认端口来寻找潜在的攻击目标。修改SSH的服务端口能有效减少此类无差别扫描带来的威胁。在/etc/ssh/sshd_config配置文件中修改Port配置项,并在防火墙中开放新的端口即可。

若需要更进一步的安全策略,可考虑关闭对SSH端口的持续侦听,在需要远程登录至服务器时再临时打开,使用后立即关闭。

知行之桥

知行之桥支持通过建立 SSH 反向隧道接收发送到 DMZ 网关的数据。这样做可以将所有外部连接集中到 DMZ,有助于保护公司防火墙并维护网络安全。注:该特性目前只在知行之桥的 .NET 版本中适用,并且需使用内置的 web 服务器。

点击了解DMZ网关的设置以及知行之桥建立SSH反向隧道

此外,需注意的是,知行之桥系统内也提供SSH服务,例如SFTP,其默认端口是22,若在知行之桥系统中使用了产品内置的SSH服务,也需要修改其默认端口:

edi-SSH1.png

2.强制公钥认证

建议避免使用基于密码的身份验证,而是启用公钥私钥对验证。公钥认证可显著提高安全性,因为每次登录都需要匹配私钥才能成功连接。

服务器

要为登录服务器设置公钥认证,请按照以下步骤操作。

①在客户端上生成公钥和私钥对时,可使用SSH-keygen命令:ssh-keygen -t rsa -b 2048

edi-SSH2.png

按照提示操作,一般情况下,公钥会被保存在~/.ssh/id_rsa.pub,私钥保存在~/.ssh/id_rsa。

② 使用以下命令将客户端机器上的公钥追加到服务器上的~/.ssh/authorized_keys文件中:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_address

在上述命令中,user是服务器上的用户名,server_address是服务器的IP地址或域名。
执行成功后,在服务器~/.ssh目录下,可看authorized_keys文件。

③在登录到服务器后,打开SSH服务器配置文件/etc/ssh/sshd_config,找到并修改以下几行配置(若不存在则添加):
PasswordAuthentication no # 关闭基于密码的身份验证
PubkeyAuthentication yes # 开启公钥认证

注意,修改配置后请务必检查配置文件的其他设置,确保没有冲突或遗漏的安全措施。

④在应用更改后,需要重启SSH服务才能使配置生效:

sudo systemctl restart sshd

重启后,服务器将只接受公钥认证的登录请求。现在,只有拥有对应私钥的客户端才能够通过SSH登录到服务器。

edi-SSH3.png

最后,请确保服务器的防火墙设置允许SSH连接,同时确认.ssh/authorized_keys文件的权限设置正确,其所有者和所属组应该是相应用户,且权限应为600 (chmod 600 ~/.ssh/authorized_keys),这样可以保证文件的安全性。

知行之桥

为SFTP服务设置密钥认证:

①在知行之桥设置页面,进入证书管理页面,点击“创建”按钮;

edi-SSH4.png

②请使用英文填写红框中的信息,并在填写完成后点击“创建证书”;

edi-SSH5.png

③创建完成后,会生成以下两个证书对,.cer文件是公钥证书,.pfx文件是私钥证书,可下载并保存。

edi-SSH6.png

④建立SFTPServer端口设置页面,为Client创建用户,认证模式选择Public Key。

edi-SSH7.png

⑤在客户端证书区域,上传客户端的公钥证书,并将私钥证书提供给客户端,这样可确保仅持有密钥的客户端才能登录。

edi-SSH8.png

3.密码策略与账户管理

确保所有用户的密码强度达标,杜绝空密码或弱密码的存在,并定期更新密码。此外,清理不必要的用户账户,确保只有经授权的用户才能访问系统。

4.限制登录尝试
服务器

通过修改/etc/ssh/sshd_config配置文件中的MaxAuthTries和LoginGraceTime参数,可以限制连续失败登录尝试的次数以及登录超时时间,从而有效地抵御暴力破解攻击。

知行之桥

在知行之桥中,SFTP Server服务可在此处设置限制登录尝试,一旦达到失败次数限制,系统将会自动锁定账户:

edi-SSH9.png

5.防火墙与网络访问控制
服务器

仅允许特定来源的IP地址访问SSH服务,可以通过防火墙规则实现。只给可信网络或者白名单上的IP地址开放SSH服务端口。

知行之桥

在知行之桥中,SFTP Server也可设置仅支持特定来源的IP地址访问SSH服务:

edi-SSH10.png

在此处添加受信任的IP地址即可:

edi-SSH11.png

6.定期审计与更新
服务器

确保SSH软件版本始终保持最新,及时打补丁以修复已知的安全漏洞。定期审查系统日志,特别是/var/log/auth.log或/var/log/secure中的登录失败记录,以便及时发现异常行为。

知行之桥

在知行之桥中,可在安装目录中\logs\SFTPServer文件夹,查看登录SFTP Server的日志信息。

结论

通过实施上述SSH服务的最佳实践,系统管理员能够显著增强服务器的安全防护机制,降低未经授权访问的风险。然而,安全是一个持续的过程,必须结合严格的访问控制政策、定期的安全审核以及及时响应安全事件的预案,才能确保SSH服务始终处于高度安全的状态。

了解更多 EDI 信息,请参阅: EDI 是什么?