在CentOS上限制SFTP访问权限可以通过配置SSH服务器和SELinux来实现。以下是详细的步骤:
首先,确保你的CentOS系统上已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
编辑SSH配置文件 /etc/ssh/sshd_config
来限制SFTP访问。
sudo vi /etc/ssh/sshd_config
找到并修改以下配置项:
Match User
或 Match Group
来限制特定用户或组的SFTP访问。示例配置:
# 限制特定用户访问SFTP
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
# 禁用SSH登录
Match all
PasswordAuthentication no
PermitRootLogin no
创建一个专门用于SFTP访问的用户,并设置其主目录和权限。
sudo adduser sftpuser
sudo passwd sftpuser
为了安全起见,将SFTP用户的根目录设置为chroot环境。
sudo mkdir -p /home/sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
如果你的系统启用了SELinux,需要配置SELinux策略以允许chroot环境。
sudo setsebool -P ssh_chroot_rw_homedirs on
保存并退出配置文件后,重启SSH服务以应用更改。
sudo systemctl restart sshd
使用SFTP客户端连接到服务器,验证访问是否受限。
sftp sftpuser@your_server_ip
你应该只能看到SFTP相关的命令提示符,而无法进行SSH登录或其他操作。
通过以上步骤,你可以在CentOS上有效地限制SFTP访问权限,确保系统的安全性。