编程技术分享平台

网站首页 > 技术教程 正文

信息安全实战案例:Linux操作系统优化SSH配置

xnh888 2025-07-23 19:06:28 技术教程 9 ℃ 0 评论

3.2 优化SSH配置提升安全性

Linux 系统的 SSH 服务默认配置存在安全风险,如默认端口(22)易受暴力破解、空闲会话可能被劫持、认证方式单一等。同时,系统安全机制(如 SELinux)可能限制端口修改,需针对性调整。本案例聚焦 SSH 服务安全优化,通过修改端口、强化认证策略、限制登录权限等措施,解决企业服务器远程管理中的潜在安全隐患,适用于对系统安全性要求较高的生产环境。

案例基于 CentOS 系统,围绕 SSH 服务安全配置展开,核心内容包括:

端口安全与 SELinux 适配:将 SSH 默认端口 22 修改为 2025,通过/etc/ssh/sshd_config配置后,利用setenforce 0临时关闭 SELinux 或安装policycoreutils-python并执行semanage port命令,确保 SELinux 允许新端口访问,通过netstat -ntpl验证端口生效。

登录安全策略强化:设置ClientAliveInterval 300和ClientAliveCountMax 3实现空闲会话超时断开;配置MaxAuthTries 5限制密码尝试次数,禁用空密码登录(PermitEmptyPasswords no);启用密钥认证(PubkeyAuthentication yes)并禁用密码登录(PasswordAuthentication no),通过AllowUsers user1 user2指定仅允许登录的用户(如user3登录被拒绝)。

辅助安全设置:关闭 GSSAPI 认证(GSSAPIAuthentication no)减少延迟风险,将 SSH 日志定向记录至/var/log/ssh.log,通过错误密码登录测试验证日志记录功能(如两次user1登录失败被记录)。

案例通过全流程配置,提升了 SSH 服务的安全性与可控性,为 Linux 系统远程管理提供了可复用的安全加固方案。

3.1.2 修改ssh端口

(1)修改 SSH 默认端口:打开/etc/ssh/sshd_config文件,将#Port 22修改为Port 2025(可根据需求在 0- 65535 之间选择)。修改默认端口能减少针对常见端口的扫描攻击,增加系统安全性。

(2)SELinux未作处理的情况下,重启sshd 服务,会提示如下错误,原因是绑定端口的操作被SELinux 阻止了。

方法1:先先临时禁用SELinux(命令:setenforce 0),然后修改配置文件,永久禁用SELinux,执行vi /etc/selinux/config命令打开SELinux配置文件,修改SELINUX为disabled后,保存即可。

完成后才能重启ssh服务后查看修改结果使用netstat命令查看,若没有此命令,执行yum -y install net-tools命令安装。

方法2 安装 policycoreutils-python 软件包,用于管理和操作 SELinux 策略,执行yum install policycoreutils-python命令。

使用semanage工具将指定端口号设置为ssh可用端口,执行semanage port -a -t ssh_port_t -p tcp 2025。

完成后重启ssh服务,查看修改结果。

3.2.2 ssh服务安全设置(根据实际需求)

(1)设置 SSH 空闲超时退出:在/etc/ssh/sshd_config文件中添加ClientAliveInterval 300和ClientAliveCountMax 3。表示 5 分钟(300 秒)内无客户端响应时发起 3 次探测,若仍无回应则断开连接,防止空闲会话被非法利用。

(2)禁止 SSH 空密码用户登录:确保/etc/ssh/sshd_config文件中PermitEmptyPasswords no,禁用空密码用户登录 SSH,避免因空密码账户带来的安全漏洞。

(3)设置 SSH 登录最大尝试次数:在/etc/ssh/sshd_config文件中添加MaxAuthTries 5,用户登录时最多尝试 5 次密码,超过则自动断开连接,有效抵御暴力破解攻击。

(4)启用 SSH 密钥认证:在/etc/ssh/sshd_config文件中确保PubkeyAuthentication yes,同时设置PasswordAuthentication no。使用密钥认证比密码认证更安全,可防止密码被破解导致的非法登录。

(5)限制 SSH 登录用户:在/etc/ssh/sshd_config文件中添加AllowUsers user1 user2,只允许user1和user2用户通过 SSH 登录,减少非法用户尝试登录的机会,增强系统安全性。

创建普通用户user3并设置密码。

在宿主机使用命令提示符窗口使用user3登录虚拟机,可以发现登陆失败。

在宿主机使用命令提示符窗口使用user1登录虚拟机,登录成功。

(6)关闭 GSSAPI 认证:在/etc/ssh/sshd_config文件中设置GSSAPIAuthentication no,关闭 GSSAPI 认证,减少潜在的安全风险和认证延迟。

(7)配置 SSH 日志记录:编辑/etc/rsyslog.conf文件,添加authpriv.* /var/log/ssh.log,将 SSH 相关日志记录到/var/log/ssh.log文件中,方便后续安全审计和故障排查。

重启系统,使用错误的密码登录系统,这里使用user1用户登录两次

使用正确的密码登录系统,查看ssh相关日志,可以看到日志中清晰的记录了两次登录失败的记录。

#网络安全有你有我##我要上头条#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表