CentOS SFTP权限设置有哪些技巧

502
2025/3/11 15:32:57
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS系统上设置SFTP权限时,有几个关键技巧可以帮助你增强系统的安全性与便捷性。以下是一些有效的设置技巧:

1. 创建专用的SFTP用户组

创建一个专门用于SFTP的用户组,例如 sftpusers,将需要使用SFTP服务的用户添加到该组中。

sudo groupadd sftpusers
sudo usermod -aG sftpusers username

2. 配置SFTP Chroot环境

使用 chrootDirectory 指令将用户限制在其家目录下,确保用户无法访问上级目录。

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp

注意:指定的目录及其所有父目录必须由root用户拥有,并且权限设置不能超过755。

3. 设置用户家目录的权限

用户的家目录必须由root拥有,并且权限设置为755。

sudo chown root:root /home/username
sudo chmod 755 /home/username

4. 创建用户可写入的目录

在用户的家目录下创建一个他们可以写入的目录,并设置适当的权限。

sudo mkdir /home/username/uploads
sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads

5. 配置SSH服务

编辑 /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

6. 使用chrootDirectory的注意事项

  • chrootDirectory 指定的目录及其所有父目录,拥有者都必须是root。
  • 所有权限都要小于等于755。否则会导致连接问题。

7. 创建SFTP日志目录(可选)

为了对用户操作进行审计,可以创建一个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

8. 防火墙配置

确保开放SFTP服务所使用的端口(一般是22端口)。

sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload

9. 高级安全设置

  • 禁用不必要的端口转发和X11转发:

    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
    
  • 防止用户通过SFTP访问其他目录,确保所有上级目录权限设置严格。

通过这些配置技巧,你可以有效地管理和设置CentOS系统中的SFTP权限,确保文件传输的安全性和可靠性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 怎样在 CentOS 上安装配置 FTP 服务器