CentOS 7如何限制用户登录?方法与配置步骤详解

在CentOS 7系统中,限制登录是保障服务器安全的重要措施,可以有效防止未授权访问、暴力破解等安全风险,通过合理的配置,管理员可以控制哪些用户或IP地址能够登录系统,以及登录的方式和权限,本文将详细介绍CentOS 7系统中限制登录的多种方法,包括基于用户、IP地址、SSH协议以及登录时间的限制,帮助管理员构建更安全的服务器环境。

CentOS 7如何限制用户登录?方法与配置步骤详解

基于用户账户的限制

通过限制特定用户账户的登录权限,可以避免敏感账户被滥用,在CentOS 7中,主要有以下两种方法:

  1. 禁用用户账户
    对于不再需要登录权限的用户,可以使用usermod命令直接禁用其账户,禁用用户test

    sudo usermod -L test

    该命令会锁定用户密码,使其无法通过密码登录,若需重新启用,使用-U参数解锁:

    sudo usermod -U test
  2. 设置用户过期时间
    若需临时限制用户登录,可设置账户过期时间,将用户test的过期时间设置为2025年12月31日:

    sudo chage -E 2025-12-31 test

    过期后,用户将无法登录,若需清除过期时间,使用-E 0参数。

基于IP地址的限制

通过限制允许登录的IP地址,可以有效防范来自陌生网络的攻击,CentOS 7中可通过修改SSH配置文件实现:

  1. 编辑SSH配置文件
    使用vinano编辑/etc/ssh/sshd_config文件:

    sudo vi /etc/ssh/sshd_config
  2. 添加Allow/Deny规则
    在文件中添加以下规则(根据需求选择其一):

    • 仅允许特定IP登录(如192.168.1.100):
      AllowUsers root@192.168.1.100 test@192.168.1.0/24

      或使用AllowHosts(需较新SSH版本支持):

      AllowHosts 192.168.1.100, 192.168.1.0/24
    • 禁止特定IP登录(如10.0.0.0/8网段):
      DenyHosts 10.0.0.0/8
  3. 重启SSH服务
    保存文件后,重启SSH服务使配置生效:

    sudo systemctl restart sshd

限制SSH登录方式

SSH是CentOS 7默认的远程登录协议,通过限制其登录方式可进一步提升安全性:

CentOS 7如何限制用户登录?方法与配置步骤详解

  1. 禁用密码登录,启用密钥认证
    /etc/ssh/sshd_config中设置:

    PasswordAuthentication no
    PubkeyAuthentication yes

    重启SSH服务后,仅允许通过SSH密钥登录,可有效防止暴力破解。

  2. 禁用root直接登录
    出于安全考虑,建议禁止root用户直接通过SSH登录:

    PermitRootLogin no

    管理员需先通过普通用户登录,再使用susudo提权。

  3. 限制SSH端口
    默认SSH端口为22,可修改为其他端口(如2222)以减少扫描攻击:

    Port 2222

    同时需确保防火墙允许新端口的访问。

基于登录时间的限制

若需在特定时间段内限制用户登录,可使用login.defs文件或cron任务结合passwd命令实现:


  1. 编辑/etc/login.defs文件,添加LOGIN_TIMEOUT参数设置登录超时时间(单位:秒):

    LOGIN_TIMEOUT 300

  2. 通过cron任务在特定时间执行用户禁用/启用命令,每天22:00禁用用户test,次日8:00启用:

    sudo crontab -e

    添加以下内容:

    0 22 * * * usermod -L test
    0 8 * * * usermod -U test

使用PAM模块实现高级限制

Linux Pluggable Authentication Modules (PAM)提供了更灵活的登录控制方式,使用pam_time.so模块限制用户登录时间:

CentOS 7如何限制用户登录?方法与配置步骤详解

  1. 创建PAM配置文件
    /etc/security/time.conf中添加规则:

    test;*;!Al 0800-1800

    表示用户test只能在每天8:00-18:00之外的时间登录。

  2. 启用PAM模块
    确保SSH服务配置文件(/etc/pam.d/sshd)包含以下行:

    account required pam_time.so

防火墙与Fail2ban结合

  1. 配置防火墙规则
    使用firewalld限制特定IP的SSH访问:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.50" service name="ssh" reject'
    sudo firewall-cmd --reload
  2. 使用Fail2ban防暴力破解
    安装Fail2ban并配置/etc/fail2ban/jail.local

    [sshd]
    enabled = true
    port = 22
    maxretry = 3
    bantime = 3600

    该工具会自动检测失败登录并封禁IP。

相关问答FAQs

Q1: 如何查看当前系统中哪些用户被禁止登录?
A1: 可以通过以下命令检查用户状态:

  • 锁定用户:sudo passwd -S username,若输出显示L则表示账户已锁定。
  • 过期用户:sudo chage -l username,查看Account expires字段。
  • 禁用SSH登录的用户:检查/etc/ssh/sshd_config中的AllowUsersDenyUsers规则。

Q2: 限制登录后如何紧急恢复访问?
A2: 若因配置错误导致无法登录,可通过以下方式恢复:

  1. 通过控制台(物理或VNC)直接登录服务器。
  2. 修改/etc/ssh/sshd_config中的限制规则,重启SSH服务。
  3. 若用户被锁定,使用sudo usermod -U username解锁。
  4. 若防火墙规则错误,通过sudo firewall-cmd --rich-rule='rule family="ipv4" source address="IP地址" service name="ssh" accept'临时放行。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-11-13 18:33
下一篇 2025-11-13 18:37

相关推荐

  • CentOS7系统要如何才能成功安装IcePlayer?

    在以稳定和可靠性著称的 CentOS 7 系统上,安装和配置一款图形化的媒体播放器,对于习惯了桌面环境的用户来说,有时会成为一个不大不小的挑战,CentOS 的设计初衷更多地偏向于服务器和企业级应用,其默认软件仓库中往往缺少流行桌面应用,尤其是多媒体软件,IcePlayer 作为一款简洁、轻量级的开源播放器,虽……

    2025-10-19
    006
  • centos-6.3如何升级?安全补丁还有吗?

    CentOS 6.3作为一款经典的企业级Linux发行版,自发布以来凭借其稳定性和可靠性在服务器领域占据了一席之地,尽管如今其官方支持已经结束,但在特定场景下,如遗留系统维护、教学实验或资源受限的环境中,CentOS 6.3仍具有一定的应用价值,本文将围绕其技术特点、安装配置、常见应用场景及维护注意事项展开介绍……

    2026-01-05
    003
  • CentOS服务器CPU温度报警,应该如何排查和解决?

    在管理CentOS服务器时,确保硬件的稳定运行是保障服务连续性的基石,中央处理器(CPU)的温度是一个至关重要的监控指标,过高的温度不仅会导致系统性能下降、自动降频,甚至可能引发硬件永久性损坏,建立一个有效的CPU温度监控与报警机制,是每一位系统管理员的必备技能,使用lm_sensors工具检测CPU温度在Li……

    2025-10-06
    005
  • CentOS 7 VPS如何切换到Windows系统?

    在当今数字化时代,虚拟专用服务器(VPS)已成为企业和个人用户部署应用、托管网站的重要选择,CentOS 7和Windows是两种主流的VPS操作系统,各自具备独特的优势和应用场景,本文将围绕CentOS 7 VPS和Windows VPS的特点、适用场景及优缺点展开分析,帮助用户根据需求做出合理选择,Cent……

    2025-12-13
    002

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信