SSH在CentOS上的安全策略有哪些

1. 修改SSH默认端口将SSH默认端口22更改为非标准端口(如2222),可减少自动化扫描工具对默认端口的攻击。修改/etc/ssh/sshd_config文件中的Port参数(取消注释并设置为新端口),修改后需重启SSH服务生效。若系统启用了SELinux,还需通过semanage port -a -t ssh_port_t -p tcp 新端口命令将新端口添加到SELinux的SSH允许端

1. 修改SSH默认端口
将SSH默认端口22更改为非标准端口(如2222),可减少自动化扫描工具对默认端口的攻击。修改/etc/ssh/sshd_config文件中的Port参数(取消注释并设置为新端口),修改后需重启SSH服务生效。若系统启用了SELinux,还需通过semanage port -a -t ssh_port_t -p tcp 新端口命令将新端口添加到SELinux的SSH允许端口列表中。

2. 禁用root用户直接登录
禁止root用户通过SSH直接登录,可降低服务器被暴力破解后直接获取最高权限的风险。修改/etc/ssh/sshd_config文件中的PermitRootLogin参数为no,重启SSH服务后生效。日常运维可通过普通用户登录后,再使用su -sudo切换至root权限。

3. 强制使用公钥认证替代密码认证
公钥认证的安全性远高于密码认证(需破解私钥而非猜测密码)。首先在本地机器生成RSA密钥对(ssh-keygen -t rsa -b 4096),然后将公钥复制到服务器目标用户的~/.ssh/authorized_keys文件中(ssh-copy-id user@remote_host)。修改/etc/ssh/sshd_config文件,设置PubkeyAuthentication yes(启用公钥认证)和PasswordAuthentication no(禁用密码认证),重启SSH服务后生效。

4. 限制SSH访问IP范围
通过AllowUsersAllowGroups参数限制可访问SSH的用户或用户组及对应IP地址,仅允许可信IP访问服务器。例如,AllowUsers user1@192.168.1.100 user2@10.0.0.0/24表示仅允许user1192.168.1.100user210.0.0.0/24网段访问。修改/etc/ssh/sshd_config文件后重启SSH服务生效。

5. 配置空闲会话超时断开
设置空闲会话超时时间,防止他人非法使用未注销的SSH会话。修改/etc/ssh/sshd_config文件中的ClientAliveInterval(服务器向客户端发送存活探测的时间间隔,单位:秒,建议300-900秒)和ClientAliveCountMax(服务器未收到客户端响应时的探测次数,建议1-3次)。例如,ClientAliveInterval 300ClientAliveCountMax 3表示5分钟(300秒)无响应时发起3次探测,仍未响应则断开连接。

6. 启用Fail2Ban防止暴力破解
Fail2Ban通过监控SSH日志,自动封禁多次登录失败的IP地址。安装Fail2Ban(sudo yum install fail2ban -y),启动并启用服务(sudo systemctl start fail2bansudo systemctl enable fail2ban)。编辑/etc/fail2ban/jail.local文件,添加SSH防护配置:[sshd]部分设置enabled = true(启用SSH防护)、port = 新端口(如2222)、filter = sshd(使用sshd过滤规则)、logpath = /var/log/secure(日志路径)、maxretry = 3(最大失败次数,超过则封禁)、bantime = 600(封禁时间,单位:秒,建议600-3600秒)。

7. 配置防火墙允许SSH端口
使用firewalld配置防火墙,仅允许指定端口(如修改后的SSH端口)的流量通过。执行sudo firewall-cmd --permanent --add-port=新端口/tcp(如--add-port=2222/tcp)添加端口规则,然后sudo firewall-cmd --reload重新加载防火墙配置,使规则生效。

8. 启用SELinux增强安全
SELinux通过强制访问控制(MAC)限制进程权限,进一步提升SSH安全性。确保SELinux处于enforcing模式(sudo setenforce 1),并编辑/etc/selinux/config文件,将SELINUX=permissive修改为SELINUX=enforcing(永久生效)。若修改了SSH端口,需通过semanage命令将新端口添加到SELinux的SSH允许端口列表中。

9. 更新SSH软件包至最新版本
定期更新OpenSSH软件包,修复已知安全漏洞。执行sudo yum update openssh-server -y命令更新SSH服务端软件包,更新后重启SSH服务(sudo systemctl restart sshd)使新版本生效。

10. 强化密码策略(可选补充)
若仍使用密码认证,需设置强密码策略。修改/etc/login.defs文件,设置PASS_MIN_DAYS 7(密码修改最小间隔天数,避免频繁修改导致密码遗忘)、PASS_MAX_DAYS 90(密码有效期,强制定期更换)、PASS_MIN_LEN 10(密码最小长度,建议8-12位);同时编辑/etc/security/pwquality.conf文件,设置minlen=10(密码最小长度)、minclass=3(至少包含小写字母、大写字母、数字、特殊字符中的3类)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1447109.html

(0)
派派
上一篇 2025-11-05
下一篇 2025-11-05

发表回复

登录后才能评论