linux

Linux SFTP配置步骤及注意事项

小樊
48
2025-08-05 21:33:29
栏目: 智能运维

一、配置步骤

  1. 安装OpenSSH服务器

    • Debian/Ubuntu:sudo apt update && sudo apt install openssh-server
    • CentOS/RHEL:sudo yum install openssh-server
  2. 创建SFTP用户组与用户

    • 创建用户组:sudo groupadd sftpusers
    • 创建用户(禁止SSH登录):sudo useradd -g sftpusers -s /bin/false sftpuser
    • 设置密码:sudo passwd sftpuser
  3. 配置用户目录权限

    • 创建根目录(如/var/sftp)并设置权限:
      sudo mkdir -p /var/sftp
      sudo chown root:root /var/sftp
      sudo chmod 755 /var/sftp
      
    • 创建用户专属目录(如/var/sftp/sftpuser):
      sudo mkdir /var/sftp/sftpuser
      sudo chown sftpuser:sftpusers /var/sftp/sftpuser
      sudo chmod 755 /var/sftp/sftpuser
      
  4. 修改SSH配置文件
    编辑/etc/ssh/sshd_config,添加以下内容:

    Subsystem sftp internal-sftp
    Match Group sftpusers
        ChrootDirectory /var/sftp/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    • ChrootDirectory:限制用户仅能访问其家目录。
    • ForceCommand:强制使用SFTP,禁止SSH登录。
  5. 重启SSH服务
    sudo systemctl restart sshd

  6. 配置防火墙(可选)

    • 允许SSH端口(默认22):
      sudo ufw allow 22  # Ubuntu
      sudo firewall-cmd --add-service=ssh --permanent  # CentOS
      

二、注意事项

  1. 权限管理

    • SFTP根目录(如/var/sftp)必须归root所有,权限为755,用户目录权限为755
    • 禁止用户对根目录有写权限,避免越权访问。
  2. 安全增强

    • 禁用密码认证:建议使用SSH密钥认证,修改/etc/ssh/sshd_config
      PasswordAuthentication no,并添加公钥到~/.ssh/authorized_keys
    • 限制IP访问:通过防火墙规则限制特定IP访问SFTP服务。
    • 关闭SELinux(如适用):临时关闭sudo setenforce 0,或永久修改/etc/selinux/config
  3. 日志与监控

    • 启用详细日志:在sshd_config中添加LogLevel VERBOSE,定期查看/var/log/auth.log
    • 定期备份用户数据,防止数据丢失。
  4. 软件更新
    定期更新OpenSSH版本,修复安全漏洞。

三、验证配置

使用SFTP客户端连接测试:

sftp sftpuser@服务器IP

若能成功登录且仅能访问指定目录,则配置正确。

参考来源:[1,2,3,4,6,7,8,9,10,11]

0
看了该问题的人还看了