阅读量:2
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中添加:
重启SSH服务。Match User user1 ChrootDirectory /chroot/home/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
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
以上就是关于“SSH在CentOS上的权限如何管理”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm