新闻资讯
当前位置当前位置: 首页 > 新闻资讯 > 行业资讯

云服务器FTP搭建

发布时间: 2025-05-16 15:08:43 来源:南数网络

一、环境准备

  1. 云服务器选择:
    • 推荐配置:2 核 4G 内存以上,50GB SSD,公网 IP

    • 操作系统:CentOS 7+/Ubuntu 20.04+

    • 安全组规则(阿里云 / 腾讯云等):开放 TCP 20、21、30000-31000 端口(被动模式范围)

  2. 更新系统:
    bash
    # CentOS/RHELyum update -y# Ubuntu/Debianapt update && apt upgrade -y
    

     

二、安装 vsftpd 服务

CentOS 7

bash
# 安装vsftpdyum install vsftpd -y# 启动并设置开机自启systemctl enable vsftpd --now# 配置防火墙firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

Ubuntu 20

bash
# 安装vsftpdapt install vsftpd -y# 启动并设置开机自启systemctl enable vsftpd --now# 配置UFW防火墙ufw allow 20/tcp
ufw allow 21/tcp
ufw allow 30000:31000/tcp
ufw reload

三、配置 vsftpd

  1. 备份默认配置:
    bash
    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    

     

  2. 编辑主配置文件:
    bash
    vim /etc/vsftpd/vsftpd.conf
    

     

 

关键配置参数:

 

conf
# 基础设置
anonymous_enable=NO               # 禁用匿名访问
local_enable=YES                  # 启用本地用户
write_enable=YES                  # 启用写入权限
local_umask=022                   # 文件创建掩码

# 被动模式配置(关键!)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP           # 填写云服务器公网IP

# 安全增强
chroot_local_user=YES             # 限制用户在自家目录
allow_writeable_chroot=YES        # 允许chroot目录可写
rsa_cert_file=/etc/ssl/certs/vsftpd.pem  # SSL证书路径(后续配置)
ssl_enable=YES                    # 启用SSL
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

 

  1. 重启服务使配置生效:

    bash
    systemctl restart vsftpd
    

     

四、创建 FTP 用户与目录

  1. 创建专用 FTP 用户:
    bash
    useradd -d /data/ftp/user1 -s /sbin/nologin ftpuser1passwd ftpuser1                   # 设置密码
    

     

  2. 创建 FTP 根目录并设置权限:
    bash
    mkdir -p /data/ftp/user1chown -R ftpuser1:ftpuser1 /data/ftp/user1chmod -R 755 /data/ftp
    

     

五、配置 SSL 加密(可选但强烈推荐)

  1. 生成自签名证书:
    bash
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/vsftpd.key \-out /etc/ssl/certs/vsftpd.crt \-subj "/C=CN/ST=Shanghai/L=Shanghai/O=Company/OU=IT/CN=yourdomain.com"cat /etc/ssl/private/vsftpd.key /etc/ssl/certs/vsftpd.crt > /etc/ssl/certs/vsftpd.pemchmod 600 /etc/ssl/certs/vsftpd.pem
    

     

  2. 修改 vsftpd 配置启用 SSL:
    conf
    # ..已添加以下配置
    ssl_enable=YES
    rsa_cert_file=/etc/ssl/certs/vsftpd.pem
    rsa_private_key_file=/etc/ssl/certs/vsftpd.pem
    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
    

     

六、客户端连接测试

  1. 使用 FileZilla(Windows/macOS):
    • 协议:选择 "FTP-SSL/TLS" 或 "FTPS"

    • 主机:云服务器公网 IP

    • 端口:21

    • 加密:显式 FTPS

    • 登录类型:正常

    • 用户名 / 密码:ftpuser1 及对应密码

  2. 使用命令行(Linux/macOS):
    bash
    ftp -p 你的公网IP# 登录后使用ls、cd、put、get等命令操作
    

     

七、安全加固建议

  1. 限制 IP 访问:
    bash
    # 仅允许特定IP访问(示例:仅允许192.168.1.0/24网段)echo "192.168.1.0/24" > /etc/vsftpd/allowed_ipsvim /etc/pam.d/vsftpd# 添加以下行到文件开头auth required pam_listfile.so item=ip sense=allow file=/etc/vsftpd/allowed_ips onerr=fail apply=/usr/sbin/vsftpd
    

     

  2. 启用日志审计:
    conf
    # 在vsftpd.conf中添加
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    

     

  3. 设置连接限制:
    conf
    # 限制同一IP的并发连接数
    max_clients=100
    max_per_ip=5
    
    # 限制传输速率(KB/s)
    local_max_rate=5000
    

     

八、故障排查

  1. 查看服务状态:
    bash
    systemctl status vsftpd
    journalctl -u vsftpd -f
    

     

  2. 检查防火墙:
    bash
    # CentOSfirewall-cmd --list-all# Ubuntuufw status
    

     

  3. 被动模式问题:
    • 确认pasv_address为云服务器公网 IP

    • 检查安全组是否开放pasv_min_port-pasv_max_port范围

 

九、生产环境..实践

  1. 使用 SFTP 替代 FTP:
    若安全性要求极高,建议禁用 FTP,改用 SFTP(基于 SSH 协议):
    bash
    # 创建SFTP用户组groupadd sftpusersusermod -aG sftpusers ftpuser1# 配置SSHvim /etc/ssh/sshd_config# 添加/修改以下行Subsystem sftp internal-sftp
    Match Group sftpusers
        ChrootDirectory /data/ftp/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    systemctl restart sshd
    

     

  2. 监控与告警:
    配置 Prometheus+Grafana 监控 FTP 服务指标,设置连接数、传输速率异常告警。
  3. 定期备份:
    对 FTP 数据目录配置每日增量备份至对象存储(如 AWS S3、阿里云 OSS)。

 

通过以上步骤,你可以在云服务器上搭建一个安全、的 FTP 服务,支持多用户隔离和数据加密传输。建议优先使用 FTPS 或 SFTP 协议,避免明文传输敏感信息。

 

(声明:本文来源于网络,仅供参考阅读,涉及侵权请联系我们删除、不代表任何立场以及观点。)


云服务器FTP搭建 第1张