网站首页 > 技术教程 正文
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相关日志,可以看到日志中清晰的记录了两次登录失败的记录。
猜你喜欢
- 2025-07-23 【干货】10个实用的Linux运维技能示例
- 2025-07-23 【全免费】6个渗透测试面试题库+7个服务器运维面试题库
- 2025-07-23 堡塔系统加固使用说明(宝塔堡垒app)
- 2025-07-23 CentOS 7服务器部署加固(服务器centos7.4安装)
- 2025-07-23 Linux服务器被入侵后的取证分析指南
- 2025-07-23 Linux操作系统安全配置(linux操作系统的安全策略)
- 2025-07-23 实战线上 Linux 服务器深度优化指南
- 2025-07-23 Linux 6.14 正式发布:运维必看的五大核心改进
- 2025-07-23 如何加固Endpoint Central服务器的安全?(上)
- 2025-07-23 Linux系统日常运维九大核心技能(linux系统运维包括哪些内容)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)