在CentOS系统中,可以通过配置SSH服务来限制用户的访问权限。以下是一些常见的方法:
sshd_config
文件编辑 /etc/ssh/sshd_config
文件来配置SSH服务。
在 sshd_config
文件中添加或修改以下行:
AllowUsers user1 user2 user3
这将只允许 user1
, user2
, 和 user3
用户通过SSH登录。
如果你想限制某个用户组的所有用户登录,可以使用:
AllowGroups group1 group2
你可以限制特定IP地址或IP范围访问SSH:
AllowUsers user1@192.168.1.1 user2@192.168.1.*
DenyUsers user3
PAM
(Pluggable Authentication Modules)PAM可以提供更细粒度的访问控制。
pam_access
首先,安装 pam_access
:
sudo yum install pam_access
然后,编辑 /etc/pam.d/sshd
文件,添加以下行:
account required pam_access.so
接着,编辑 /etc/security/access.conf
文件,添加访问控制规则:
-:ALL EXCEPT root:ALL
+:user1:192.168.1.*
这行规则表示允许 user1
从 192.168.1.*
网络访问,其他用户全部拒绝。
Fail2Ban
Fail2Ban
可以监控SSH登录失败日志,并自动封禁失败的IP地址。
Fail2Ban
sudo yum install fail2ban
Fail2Ban
编辑 /etc/fail2ban/jail.local
文件,添加以下内容:
[sshd]
enabled = true
port = sshd
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600
这将监控 /var/log/secure
文件中的SSH登录失败日志,如果某个IP地址在600秒内失败超过3次,将被封禁600秒。
Chroot Jail
Chroot Jail可以将用户的根目录限制在一个特定的目录中,从而提高安全性。
首先,确保你有足够的磁盘空间,并创建必要的目录结构:
sudo mkdir -p /chroot/home/user1
sudo chown root:root /chroot/home/user1
sudo chmod 755 /chroot/home/user1
然后,复制必要的系统文件到Chroot环境中:
sudo cp -R /bin /lib /lib64 /usr /sbin /var/log /chroot/home/user1
sshd_config
编辑 /etc/ssh/sshd_config
文件,添加或修改以下行:
Match User user1
ChrootDirectory /chroot/home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这将把 user1
的根目录限制在 /chroot/home/user1
,并禁止TCP和X11转发。
SELinux
如果你启用了SELinux,可以使用它来进一步限制用户的访问权限。
编辑 /etc/selinux/config
文件,确保SELinux处于 enforcing 模式:
SELINUX=enforcing
然后,使用 semanage
工具来管理SELinux策略:
sudo yum install policycoreutils-python
sudo semanage fcontext -a -t ssh_home_t "/chroot/home(/.*)?"
sudo restorecon -Rv /chroot/home
这将允许 /chroot/home
目录及其子目录用于SSH Chroot Jail。
通过以上方法,你可以有效地限制CentOS系统中用户的SSH访问权限,提高系统的安全性。