温馨提示×

CentOS FTPServer安装步骤是什么

小樊
37
2025-12-29 08:04:25
栏目: 智能运维

CentOS 上搭建 FTPServer 的标准做法

在 CentOS 上推荐使用 vsftpd 搭建 FTP/FTPS 服务,以下为从安装到验证的完整步骤,涵盖防火墙、被动模式与 TLS 加密要点。

一 安装与启动服务

  • 更新索引并安装 vsftpd
    • sudo yum update -y
    • sudo yum install vsftpd -y
  • 启动并设置开机自启
    • sudo systemctl start vsftpd
    • sudo systemctl enable vsftpd
  • 确认服务状态
    • sudo systemctl status vsftpd

二 基础配置 vsftpd.conf

  • 编辑配置文件
    • sudo vi /etc/vsftpd/vsftpd.conf
  • 常用安全与功能项(按需求调整)
    • 禁用匿名、启用本地用户与写入
      • anonymous_enable=NO
      • local_enable=YES
      • write_enable=YES
    • 限制用户在主目录
      • chroot_local_user=YES
      • allow_writeable_chroot=YES(如需要可写)
    • 日志与连接
      • xferlog_enable=YES
      • connect_from_port_20=YES
    • 监听设置(IPv4 场景)
      • listen=YES
      • listen_ipv6=NO
    • 被动模式(穿越防火墙必需)
      • pasv_enable=YES
      • pasv_min_port=1024
      • pasv_max_port=1048
  • 保存后重启服务
    • sudo systemctl restart vsftpd

三 防火墙与被动端口

  • 使用 firewalld(CentOS 7+ 常用)
    • 开放 FTP 控制端口与被动端口段
      • sudo firewall-cmd --permanent --add-port=21/tcp
      • sudo firewall-cmd --permanent --add-port=20/tcp
      • sudo firewall-cmd --permanent --add-port=1024-1048/tcp
      • 或直接使用服务:sudo firewall-cmd --permanent --add-service=ftp
    • 重载规则
      • sudo firewall-cmd --reload
  • 如使用 iptables(如仍在使用)
    • sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    • sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    • 保存并重启 iptables 服务

四 创建用户与目录权限

  • 新建系统用户(禁止登录 shell 更安全)
    • sudo useradd -m -s /sbin/nologin ftpuser
    • sudo passwd ftpuser
  • 如需指定共享目录(示例:/var/ftp/data)
    • sudo mkdir -p /var/ftp/data
    • sudo chown ftpuser:ftpuser /var/ftp/data
    • sudo chmod 755 /var/ftp/data
  • 若启用 chroot 且需可写,确保目录对 ftpuser 可写,或使用 allow_writeable_chroot

五 启用 SSL/TLS 加密与连通性测试

  • 生成自签名证书(测试或内网可用)
    • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
      -keyout /etc/pki/tls/private/vsftpd.pem
      -out /etc/pki/tls/certs/vsftpd.pem
  • 配置 vsftpd 启用 TLS
    • ssl_enable=YES
    • allow_anon_ssl=NO
    • force_local_data_ssl=YES
    • force_local_logins_ssl=YES
    • ssl_tlsv1=YES
    • ssl_sslv2=NO
    • ssl_sslv3=NO
    • rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
    • rsa_private_key_file=/etc/pki/tls/private/vsftpd.pem
  • 重启服务
    • sudo systemctl restart vsftpd
  • 客户端连接测试
    • 命令行:ftp your_server_ip(明文)或 lftp ftps://your_server_ip(FTPS)
    • 图形工具(如 FileZilla):协议选 FTP over TLS (explicit),端口 21,使用创建的用户登录并测试上传/下载
  • SELinux 提示(如遇到权限问题)
    • 允许家目录访问:sudo setsebool -P ftp_home_dir on
    • 更宽松策略(视场景):sudo setsebool -P allow_ftpd_full_access on

0