Pure-FTPd 是一款免费、开源的 FTP 服务器软件,可在 Ubuntu 及其他 Linux 发行版上使用。Pure-FTPd 专注于安全性、高性能和易用性,提供了丰富的功能,例如支持虚拟用户、使用 TLS/SSL 加密连接以及多种身份验证机制。它还支持限制带宽、限制用户权限以及启用匿名 FTP 访问等功能。与其他 FTP 服务器相比,Pure-FTPd 的配置更为简单,因此在 Ubuntu 系统的大小规模部署中广受欢迎。
FTP(文件传输协议)是一种标准的网络协议,用于在客户端和服务器之间通过网络(如互联网)传输文件。FTP 允许用户在远程服务器上上传、下载和管理文件,使用命令通道控制连接,使用数据通道传输文件。FTP 可工作在主动模式或被动模式下。由于数据(包括登录凭据)以明文传输,FTP 被认为是不安全的。本指南将介绍如何配置 Pure-FTPd 使用 FTPS(FTP over SSL/TLS),从而使 FTP 传输更加安全。
本教程将逐步引导您完成在 Ubuntu 上安装和配置 Pure-FTPd 的全过程。
前提条件
在继续安装之前,请确保您具备以下条件:
- 已搭建好的 Ubuntu 服务器。
- 具有 sudo 权限的用户账户。
安装 Pure-FTPd 的步骤
更新系统软件包
首先,更新系统的软件包列表:
sudo apt update安装 Pure-FTPd
接下来,使用以下命令安装 Pure-FTPd:
sudo apt install pure-ftpd配置 Pure-FTPd 以增强安全性
设置安全环境
为 FTP 用户创建专用组:
sudo groupadd ftpgroup为 Pure-FTPd 创建用户:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser管理用户访问
向 FTP 服务器添加用户(将 [username] 替换为所需的用户名):
sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]
sudo pure-pw mkdb配置 TLS 以实现安全数据传输
生成自签名证书:
sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem修改 Pure-FTPd 配置以启用 TLS:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restart高级配置选项
以下是可在 /etc/pure-ftpd/conf/ 目录下为 Pure-FTPd 配置的常用设置列表:
- AltLog:指定替代日志记录方法。例如
AltLog clf:/var/log/pureftpd.log将以 W3C 格式记录传输日志。 - AnonymousOnly:启用后(创建名为 AnonymousOnly 的文件),限制服务器只允许匿名登录。
- AntiWarez:存在此文件时,禁止用户上传服务器上已有的文件。
- AutoRename:如果同名文件已存在,自动重命名上传的文件。
- Bind:将服务器绑定到特定 IP 地址和端口,例如
Bind 21。 - ChrootEveryone:启用后,将所有用户限制在其主目录内。
- CreateHomeDir:用户登录时,如果主目录不存在则自动创建。
- Daemonize:存在此文件时,Pure-FTPd 以守护进程方式运行。
- ForcePassiveIP:强制服务器向被动模式客户端报告特定的 IP 地址。
- MaxClientsNumber:限制同时连接的最大客户端数。
- MaxClientsPerIP:限制来自单一 IP 地址的同时连接数。
- MaxDiskUsage:限制磁盘使用百分比,例如 95 表示 95%。
- MaxIdleTime:设置断开客户端前的最大空闲时间(分钟)。
- NoAnonymous:存在此文件时,禁用匿名登录。
- PassivePortRange:定义被动连接的端口范围,例如
30000 35000。 - PureDB:指定 PureDB 用户数据库文件的路径。
- TLSCipherSuite:指定加密连接允许使用的 TLS 密码套件。
- UMask:设置文件创建的默认 umask,例如
133:022。 - UnixAuthentication:启用针对 UNIX 密码数据库的身份验证。
- UploadScript:指定上传成功后运行的脚本。
以上列出了最常用的配置选项,但并不全面。如需完整信息,请参阅 Pure-FTPd 官方文档或运行以下命令:
pure-ftpd-wrapper --help监控与维护
定期检查 /var/log/pure-ftpd/ 中的日志,查看是否有异常活动或错误。