在CentOS上限制SFTP用户的访问权限,可以通过配置SSH和SFTP服务来实现。以下是一些常见的方法:
安装必要的软件包:
sudo yum install openssh-server
创建SFTP用户:
sudo adduser sftpuser
sudo passwd sftpuser
配置SSHD配置文件:
编辑 /etc/ssh/sshd_config
文件,添加或修改以下内容:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建SFTP用户组:
sudo groupadd sftpusers
将SFTP用户添加到组中:
sudo usermod -aG sftpusers sftpuser
设置Chroot目录的权限: 确保Chroot目录及其所有父目录的权限设置正确:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
创建SFTP用户的实际工作目录:
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
重启SSH服务:
sudo systemctl restart sshd
如果你的系统启用了SELinux,可以进一步限制SFTP用户的访问权限。
安装SELinux管理工具:
sudo yum install policycoreutils-python
设置SELinux上下文:
sudo chcon -Rv --reference=/ /home/sftpuser
配置SELinux策略:
编辑 /etc/selinux/config
文件,确保以下行未被注释:
SELINUX=enforcing
重启系统:
sudo reboot
你可以使用iptables或firewalld来限制SFTP用户的访问。
使用iptables:
sudo iptables -A INPUT -p tcp --dport 22 -m owner --uid-owner sftpuser -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
使用firewalld:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="sftpuser_ip" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
通过以上方法,你可以有效地限制CentOS上SFTP用户的访问权限,确保系统的安全性和稳定性。