游乐游手机版
首页/系统平台/文章详情

CentOS 7修改SSH登录策略的方法与配置指南

时间:2026-08-18 07:52
可以直接在 etc ssh sshd_config里收紧SSH登录安全策略:把MaxAuthTries改成3,限制单次认证尝试次数;将PermitRootLogin设为no,禁止root账户直接远程登录;把PasswordAuthentication设为no,关闭密码登录方式(前提是先正确配置好SS

可以直接在/etc/ssh/sshd_config里收紧SSH登录安全策略:把MaxAuthTries改成3,限制单次认证尝试次数;将PermitRootLogin设为no,禁止root账户直接远程登录;把PasswordAuthentication设为no,关闭密码登录方式(前提是先正确配置好SSH公钥认证);再通过AllowUsers明确指定允许登录的用户。修改完成后,执行systemctl restart sshd让配置立即生效,同时务必保留一个已登录的终端作为备用,避免因为新配置错误把自己锁在服务器之外。

CentOS 7怎么修改具体的SSH登录策略

怎么改 sshd_config 里的登录限制参数

直接修改 /etc/ssh/sshd_config 是 CentOS 7 加固 SSH 登录策略中最基础、也最关键的一步,但如果参数配置错误,可能会导致 SSH 无法连接,因此必须逐项检查并确认。

  • MaxAuthTries 用来控制单次连接最多可尝试多少次认证,默认值通常是 6,建议调整为 3:找到 #MaxAuthTries 6 这一行,去掉注释后改成 MaxAuthTries 3
  • PermitRootLogin 决定 root 是否可以直接登录 SSH,禁用 root 直连就设置为 no;如果只允许 root 使用密钥登录,可写成 without-password(注意不是 prohibit-password,后者在 CentOS 7 中无法识别)
  • PasswordAuthentication 如果要关闭密码登录,必须设置为 no,但前提是已经配置好公钥认证,否则会直接导致远程登录被完全锁死
  • AllowUsers 或 DenyUsers 可以按用户名进行访问控制,例如只允许 admin 和 deploy 登录,可写为 AllowUsers admin deploy

参数修改完成后,必须执行 systemctl restart sshd 重启 SSH 服务,建议同时保留一个当前已登录的终端窗口不要关闭,以防配置出错后无法重新连接服务器。

为什么 /etc/hosts.allow 和 /etc/hosts.deny 要一起用

这两个文件属于 TCP Wrappers 层的访问控制机制,在某些场景下优先级甚至高于防火墙规则,但实际运维中经常被忽略,或者因为配置顺序写错而失效。

  • 先配置 /etc/hosts.deny:通常固定写成 sshd: ALL,表示默认拒绝所有 SSH 来源
  • 再配置 /etc/hosts.allow:只放行可信任的 IP 地址,例如 sshd: 192.168.1.100: allow 或 sshd: 203.0.113.0/24: allow
  • 顺序不能写反——hosts.allow 会优先匹配,一旦匹配成功就直接放行,不再继续检查 hosts.deny;因此“默认全拒绝”必须写在 deny 文件中,而 allow 文件只保留白名单规则
  • 需要注意:如果同时启用了 AllowUsers,那么 IP 白名单和用户白名单之间是“且”关系,必须同时满足才能成功登录

防火墙和 SELinux 对新端口的影响

如果修改了 SSH 端口(例如把默认 22 端口改为 2222),仅仅改动 SSH 配置文件还不够,系统层面通常还有防火墙和 SELinux 两道限制需要同步放行。

  • firewalld 必须明确放行新的 SSH 端口:执行 firewall-cmd --permanent --add-port=2222/tcp,然后再运行 firewall-cmd --reload
  • SELinux 默认通常只允许 SSH 使用 22 端口,如果不额外放行,新端口会被静默拒绝。安装 policycoreutils-python 后执行:semanage port -a -t ssh_port_t -p tcp 2222
  • 验证是否配置成功:运行 semanage port -l | grep ssh,输出结果中应该能看到 2222
  • 如果暂时不想细调 SELinux,临时做法可以使用 setsebool -P ssh_port_t 1,但从稳定性和规范性来看,还是直接添加端口规则更稳妥

登录失败后自动封 IP 的脚本为什么总漏掉攻击源

很多常见脚本会从 /var/log/secure 中解析 Failed password 日志并自动封禁 IP,但在实际使用中经常漏封,主要有以下几个明显问题:

  • 日志格式会随着 OpenSSH 版本变化:例如在 CentOS 7.6+ 中,日志字段位置可能发生偏移,$(NF-3) 这种写法很容易取错 IP,建议改用 awk '/Failed.*from/ {print $11}',字段定位相对更稳定
  • 没有过滤内网扫描或误操作:脚本应主动排除 127.0.0.1、192.168.、10. 等私有地址段,避免误封内部地址
  • /etc/hosts.deny 不支持 CIDR 网段写法,只能封禁单个 IP;如果要封整个地址段,还是要依赖 iptables 或 fail2ban,原生脚本本身做不到
  • crontab 一天只跑一次的方式太慢,真实的 SSH 暴力破解通常几分钟内就能完成扫描——更建议使用 fail2ban 做实时监控和自动封禁,这才更符合生产环境的安全需求

真正要在服务器上稳定落地,不建议自己临时拼接封禁脚本,直接使用 fail2ban 配合 sshd jail 做防护,几行配置就能运行起来,整体上比手动解析日志更可靠、更适合生产环境。

来源:https://www.php.cn/faq/2961349.html
上一篇Mac版迅雷下载残留隐藏文件清理方法教程 下一篇Linux查看具体缺页中断次数的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。