温馨提示×

SSH在CentOS上的权限如何管理

小樊
44
2025-10-02 15:51:23
栏目: 智能运维

SSH在CentOS上的权限管理方法

1. 通过SSH配置文件限制用户/组访问

编辑/etc/ssh/sshd_config文件,使用AllowUsers(允许特定用户)、DenyUsers(拒绝特定用户)、AllowGroups(允许特定组)、DenyGroups(拒绝特定组)指令控制访问权限。例如:

AllowUsers user1 user2  # 仅允许user1、user2登录
AllowGroups sshusers    # 仅允许sshusers组的用户登录
DenyUsers user3         # 拒绝user3登录

修改后需重启SSH服务生效:

sudo systemctl restart sshd

2. 限制root用户登录

为避免root账户被暴力破解,建议禁用root登录。在/etc/ssh/sshd_config中修改:

PermitRootLogin no

重启SSH服务使设置生效。

3. 使用chroot Jail限制用户根目录

将用户限制在特定目录(如/chroot/home/user1),防止其访问系统其他文件。操作步骤:

  • 创建chroot目录并设置权限:
    sudo mkdir -p /chroot/home/user1/{bin,lib64,lib,usr,dev}
    sudo chown root:root /chroot/home/user1
    sudo chmod 755 /chroot/home/user1
    
  • 复制必要系统文件(如bash、ls等)到chroot环境:
    sudo cp /bin/bash /chroot/home/user1/bin/
    sudo cp /lib64/{libtinfo.so.6,libc.so.6} /chroot/home/user1/lib64/
    
  • 修改SSH配置,在/etc/ssh/sshd_config中添加:
    Match User user1
        ChrootDirectory /chroot/home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    重启SSH服务。

4. 配置防火墙限制访问IP

使用firewalld限制仅特定IP或网段能访问SSH(默认端口22):

  • 允许特定IP(如192.168.1.100):
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
    
  • 允许特定网段(如192.168.1.0/24):
    sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
    
  • 重载防火墙规则:
    sudo firewall-cmd --reload
    

5. 使用Fail2Ban防止暴力破解

Fail2Ban可监控SSH登录日志,自动封禁多次失败的IP地址:

  • 安装Fail2Ban:
    sudo yum install epel-release
    sudo yum install fail2ban
    
  • 配置/etc/fail2ban/jail.local
    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/secure
    maxretry = 3  # 允许的最大失败次数
    bantime = 600 # 封禁时间(秒)
    
  • 启动Fail2Ban服务:
    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
    

6. 调整SELinux策略(若启用)

若SELinux处于enforcing模式,需调整策略以允许SSH访问:

  • 允许SSH访问用户家目录:
    sudo setsebool -P ssh_sysadm_login on
    
  • 若使用chroot Jail,需设置正确的SELinux上下文:
    sudo semanage fcontext -a -t ssh_home_t "/chroot/home(/.*)?"
    sudo restorecon -Rv /chroot/home
    

7. 强制使用SSH密钥认证

密钥认证比密码认证更安全,可防止密码泄露:

  • 在客户端生成密钥对:
    ssh-keygen -t rsa -b 4096
    
  • 将公钥复制到服务器用户家目录的.ssh文件夹:
    ssh-copy-id user1@server_ip
    
  • 修改/etc/ssh/sshd_config,启用密钥认证并禁用密码认证:
    PubkeyAuthentication yes
    PasswordAuthentication no
    
  • 重启SSH服务:
    sudo systemctl restart sshd
    

0