在CentOS系统中,通过SSH配置文件、PAM模块及防火墙策略,可为不同用户或用户组设置精细化访问权限。以下是具体方法及配置示例:


🔐 ​​一、基于sshd_config的用户/组权限控制​

​1. 用户级限制​

  • ​允许/禁止特定用户​​:
    # 仅允许user1、user2登录,拒绝其他用户
    AllowUsers user1 user2@192.168.1.*  # 允许user1(所有IP)和user2(指定IP段)
    DenyUsers baduser                    # 禁止特定用户登录
    
    • ​组合使用​​:DenyUsers优先级高于AllowUsers(例:同时配置时,拒绝规则生效)。

​2. 组级限制​

# 仅允许sysadmin组登录,拒绝developers组
AllowGroups sysadmin
DenyGroups developers
  • ​应用场景​​:按职能划分权限(如运维组可登录,开发组禁止)。

​3. IP与用户绑定​

AllowUsers ops@10.0.0.0/24 dbadmin@192.168.1.100
  • ​作用​​:限制用户只能从特定IP登录(如运维人员仅限内网访问)。

⚙️ ​​二、使用Match块实现差异化配置​

针对不同用户/组应用独立规则:

# 用户组差异配置
Match Group developers
    PasswordAuthentication no      # 强制密钥认证
    PermitTunnel no                # 禁止隧道转发
    AllowTcpForwarding no          # 禁用端口转发

Match User auditor
    ChrootDirectory /var/jail      # 限制根目录为沙箱环境
    ForceCommand internal-sftp     # 仅允许SFTP,禁止SSH命令操作
  • ​优势​​:为不同角色定制安全策略(如审计员仅限文件传输)。

⏰ ​​三、基于PAM的时间/IP限制​

通过PAM模块实现动态规则:

  1. ​安装与配置​​:

    sudo yum install pam_access
    # 编辑/etc/pam.d/sshd,添加:
    account required pam_access.so 
    
  2. ​时间/IP规则​​(编辑/etc/security/access.conf):

    # 允许user1在工作时间(9-18点)从内网登录
    + : user1 : 192.168.1.0/24
    - : user1 : ALL
    # 禁止所有用户周末登录
    - : ALL : ALL
    
    • ​生效条件​​:需SSH服务启用PAM支持(默认开启)。

🔥 ​​四、防火墙与Fail2ban增强控制​

​1. 防火墙IP白名单​

# 仅允许IP段192.168.1.0/24访问SSH
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept'
sudo firewall-cmd --reload
  • ​注​​:优先级高于SSH配置,直接拦截非授权IP。

​2. Fail2ban自动封禁​

# 配置/etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
maxretry = 3   # 3次失败即封禁
bantime = 1h   # 封禁1小时
  • ​日志监控​​:自动分析/var/log/secure,防御暴力破解。

🔒 ​​五、安全实践与验证​

  1. ​权限冲突处理​​:

    • 规则优先级:DenyUsers > AllowUsersMatch块 > 全局配置
    • ​测试命令​​:
      ssh -vT user@server  # 查看详细连接日志
      journalctl -u sshd   # 检查服务端错误信息
      
  2. ​关键文件权限​​:

    • ~/.ssh/authorized_keys600
    • ~/.ssh目录 → 700
    • ​错误示例​​:权限不当导致Permission denied
  3. ​配置生效流程​​:

    sudo sshd -t          # 语法检查
    sudo systemctl restart sshd  # 重启服务
    

💎 ​​六、总结:权限策略推荐​

​场景​ ​配置方案​ ​安全等级​
管理员用户 AllowGroups sysadmin + 密钥认证 ⭐⭐⭐⭐⭐
外包人员 Match块限制IP/命令 + 时间控制 ⭐⭐⭐⭐
审计员 ChrootDirectory + 仅SFTP ⭐⭐⭐⭐⭐

​重要提醒​​:

  • ✋ 修改前备份配置:cp /etc/ssh/sshd_config{,.bak}
  • 🌐 通过​​本地终端​​测试规则,避免远程连接中断后无法恢复。
  • 🔄 定期审计日志:grep 'sshd' /var/log/secure 监控异常登录。
posted on 2025-08-04 10:33  LeeHang  阅读(101)  评论(0)    收藏  举报