1、Pure-FTPd 简介
Pure-FTPd 是一款基于 BSD License 的开源 FTP 服务器软件,以 安全、高效、易用 为核心设计目标。其特点包括:
- 
  高安全性:支持 SSL/TLS 加密、虚拟用户、chroot 监狱模式,避免明文传输密码。 
- 
  轻量级:资源占用低,适合服务器部署。 
- 
  兼容性:支持 Linux、BSD、Solaris 等 Unix 系统,甚至 Android。 
- 
  灵活配置:支持 IPv6、虚拟主机、PAM 认证等高级功能。 
2、安装与配置
2.1、系统要求
- 
  操作系统:CentOS/RHEL 7+/Ubuntu 18.04+(其他 Unix 系统需编译安装)。 
- 
  依赖:epel-release(CentOS)或 build-essential(Ubuntu)。 
2.2、安装步骤
CentOS/RHEL
# 1. 安装 EPEL 源
sudo yum install -y epel-release
# 2. 安装 Pure-FTPd 及依赖
sudo yum install -y pure-ftpd openssl  # 含 OpenSSL 支持 SSL/TLS
# 3. 配置文件路径:/etc/pure-ftpd/pure-ftpd.conf
sudo cp /etc/pure-ftpd/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf.bak  # 备份原配置
# 4. 修改核心配置(推荐使用文本编辑器)
sudo nano /etc/pure-ftpd/pure-ftpd.conf关键配置项说明:
# 用户管理(虚拟用户)
PureDB /etc/pure-ftpd/pureftpd.pdb
# 日志记录
VerboseLog yes
# 禁止匿名登录
NoAnonymous yes
# 被动模式端口范围(需开放防火墙)
PassivePortRange 39000 40000
# 启用 SSL/TLS 加密(需生成证书)
TLS 1
CertificateFile /etc/pure-ftpd/cert.pem  # 证书路径(需提前生成)Ubuntu/Debian
# 1. 安装 Pure-FTPd 及依赖
sudo apt-get update
sudo apt-get install -y pure-ftpd openssl
# 2. 配置文件路径:/etc/pure-ftpd/conf/
# 修改配置文件(以 PassivePortRange 为例):
echo "39000 40000" | sudo tee /etc/pure-ftpd/conf/PassivePortRange
# 其他配置(如日志、SSL):
echo "yes" | sudo tee /etc/pure-ftpd/conf/VerboseLog
echo "yes" | sudo tee /etc/pure-ftpd/conf/NoAnonymous2.3、用户管理
创建虚拟用户
# 1. 创建用户数据库目录
sudo mkdir -p /etc/pure-ftpd/auth
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50puredb
# 2. 添加用户(示例:用户名 user1,密码 123456)
sudo pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/ftp/user1 -f /etc/pure-ftpd/pureftpd.pwd
sudo pure-pw mkdb参数说明:
- 
  -u:系统用户(需提前创建)。 
- 
  -d:用户主目录(需提前创建并设置权限)。 
2.4、启动与服务管理
# 启动服务
sudo systemctl start pure-ftpd
# 设置开机自启
sudo systemctl enable pure-ftpd
# 查看状态
sudo systemctl status pure-ftpd2.5、防火墙与端口配置
CentOS/Firewalld
# 开放 FTP 端口(21)和被动模式端口范围
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=39000-40000/tcp
sudo firewall-cmd --reloadUbuntu/UFW
sudo ufw allow 21/tcp
sudo ufw allow 39000:40000/tcp
sudo ufw reload3、高级配置与问题解决
3.1、SSL/TLS 加密配置
# 生成自签名证书(有效期 1 年)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pure-ftpd/cert.pem -out /etc/pure-ftpd/cert.pem
# 配置 Pure-FTPd 使用 SSL
sudo sed -i 's/# TLS 1/TLS 1/' /etc/pure-ftpd/pure-ftpd.conf  # CentOS
# Ubuntu 需在 /etc/pure-ftpd/conf/ 下创建 TLS 文件并写入 "1"
echo "1" | sudo tee /etc/pure-ftpd/conf/TLS3.2、解决被动模式连接问题
- 
  检查防火墙:确保 PassivePortRange 范围的端口已开放。 
- 
  NAT 环境配置(如使用路由器): # 设置外网 IP(需替换为实际 IP) echo "ForcePassiveIP your_public_ip" | sudo tee -a /etc/pure-ftpd/conf/ForcePassiveIP
3.3、调整并发连接数
# 修改配置文件(CentOS)
sudo nano /etc/pure-ftpd/pure-ftpd.conf
MaxClientsNumber 9999
MaxClientsPerIP 999
# Ubuntu 在 /etc/pure-ftpd/conf/ 下创建对应文件:
echo "9999" | sudo tee /etc/pure-ftpd/conf/MaxClientsNumber
echo "999" | sudo tee /etc/pure-ftpd/conf/MaxClientsPerIP3.4、SELinux 与 AppArmor
- 
  临时禁用 SELinux(仅测试环境): sudo setenforce 0
- 
  永久禁用 SELinux: sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
4、故障排查
- 
  检查服务状态: sudo systemctl status pure-ftpd
- 
  查看日志文件: # CentOS 日志路径: sudo tail -f /var/log/messages # Ubuntu 日志路径: sudo tail -f /var/log/syslog
- 
  端口监听检查: sudo netstat -tunlp | grep pure-ftpd # 检查是否监听 21 端口及被动端口
- 
  连接测试: # 使用 lftp 测试连接 lftp -u user1,123456 ftp://your_server_ip
5、安全加固建议
- 
  最小权限原则: - 
    用户目录设置 chroot 监狱模式: sudo pure-pw usermod user1 -j "" -R no # 禁用 shell 登录
- 
    目录权限设置: sudo chown -R ftpuser:ftpgroup /var/www/ftp/user1 sudo chmod -R 750 /var/www/ftp/user1
 
- 
    
- 
  定期更新: sudo yum update pure-ftpd # CentOS sudo apt-get upgrade pure-ftpd # Ubuntu
- 
  监控与报警: - 
    配置日志轮转: sudo nano /etc/logrotate.d/pure-ftpd
 
- 
    
六、附录
- 
  官方文档:Pure-FTPd 官网 
- 
  社区支持:GitHub 仓库 Pure-FTPd 
- 
  问题反馈:邮件列表 pure-ftpd-users@lists.pureftpd.org 
 
                     
                
             
                 
            
评论