Pure-FTPd 安装与配置指南
AI-摘要
切换
Qi GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
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/NoAnonymous
2.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-ftpd
2.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 --reload
Ubuntu/UFW
sudo ufw allow 21/tcp
sudo ufw allow 39000:40000/tcp
sudo ufw reload
3、高级配置与问题解决
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/TLS
3.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/MaxClientsPerIP
3.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
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 云深不知处
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果