在CentOS系统上设置SFTP权限时,有几个关键技巧可以帮助你增强系统的安全性与便捷性。以下是一些有效的设置技巧:
创建一个专门用于SFTP的用户组,例如 sftpusers
,将需要使用SFTP服务的用户添加到该组中。
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
使用 chrootDirectory
指令将用户限制在其家目录下,确保用户无法访问上级目录。
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
注意:指定的目录及其所有父目录必须由root用户拥有,并且权限设置不能超过755。
用户的家目录必须由root拥有,并且权限设置为755。
sudo chown root:root /home/username
sudo chmod 755 /home/username
在用户的家目录下创建一个他们可以写入的目录,并设置适当的权限。
sudo mkdir /home/username/uploads
sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads
编辑 /etc/ssh/sshd_config
文件,确保以下配置项正确设置:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注意:确保所有配置修改后重启SSH服务以生效。
sudo systemctl restart sshd
chrootDirectory
指定的目录及其所有父目录,拥有者都必须是root。为了对用户操作进行审计,可以创建一个SFTP日志目录,并配置日志记录。
sudo mkdir /var/log/sftp-server
sudo chmod 750 /var/log/sftp-server
sudo chown root:root /var/log/sftp-server
修改 /etc/rsyslog.conf
文件,增加如下内容:
local0.* /var/log/sftp-server.log
然后重启rsyslog服务:
sudo systemctl restart rsyslog
确保开放SFTP服务所使用的端口(一般是22端口)。
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload
禁用不必要的端口转发和X11转发:
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
防止用户通过SFTP访问其他目录,确保所有上级目录权限设置严格。
通过这些配置技巧,你可以有效地管理和设置CentOS系统中的SFTP权限,确保文件传输的安全性和可靠性。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: 怎样在 CentOS 上安装配置 FTP 服务器