01
查看系统信息
pdsyw@pdsyw1024:~/Desktop$ cat /etc/os-version pdsyw@pdsyw1024:~/Desktop$ uname -a
作用
确认当前系统平台(如统信 UOS)和内核架构信息(如 ARM64),便于判断软件兼容性和安装策略。
02
安装pure-ftpd
pdsyw@pdsyw1024:~/Desktop$ sudo apt install pure-ftpd
作用
通过 APT 包管理器安装 pure-ftpd 服务端程序,它是一个轻量、高性能、安全的 FTP 服务软件。
03
启用虚拟用户支持
pdsyw@pdsyw1024:~/Desktop$ echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryoneyes pdsyw@pdsyw1024:~/Desktop$ echo "/etc/pure-ftpd/pureftpd.pdb" | sudo tee /etc/pure-ftpd/conf/PureDB/etc/pure-ftpd/pureftpd.pdb
作用
ChrootEveryone=yes:限制用户只能访问自己的主目录,防止跨目录访问,提高安全性;
PureDB:指定虚拟用户使用的数据库路径,用于虚拟用户身份验证。
04
创建系统用户及上传目录
pdsyw@pdsyw1024:~/Desktop$ sudo useradd -m ftpuser -s /usr/sbin/nologin pdsyw@pdsyw1024:~/Desktop$ sudo mkdir -p /ftp/uploads pdsyw@pdsyw1024:~/Desktop$ sudo chown -R ftpuser:ftpuser /ftp
作用
ftpuser 是所有虚拟用户的宿主系统账号,不允许登录系统;
/ftp/uploads 是虚拟用户上传文件的目标目录;
设置该目录归属为 ftpuser,以确保文件权限和访问安全。
05
创建 Pure-FTPd 虚拟用户
pdsyw@pdsyw1024:~/Desktop$ sudo pure-pw useradd testftp -u ftpuser -d /ftp/uploadsPassword:Enter it again: pdsyw@pdsyw1024:~/Desktop$ sudo pure-pw mkdb
作用
创建一个名为 testftp 的虚拟 FTP 用户,绑定到 /ftp/uploads;
虚拟用户对应的实际文件访问由 ftpuser 系统用户来执行;
pure-pw mkdb 命令将虚拟用户信息写入数据库文件 /etc/pure-ftpd/pureftpd.pdb。
06
启用 TLS 加密
pdsyw@pdsyw1024:~/Desktop$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ > -keyout /etc/ssl/private/pure-ftpd.pem \ > -out /etc/ssl/private/pure-ftpd.pem Generating a RSA private key ................................+++++ ........................+++++ writing new private key to '/etc/ssl/private/pure-ftpd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:ShangHai Locality Name (eg, city) []:ShangHai Organization Name (eg, company) [Internet Widgits Pty Ltd]:pdsyw Organizational Unit Name (eg, section) []:pdsyw Common Name (e.g. server FQDN or YOUR name) []:pdsyw Email Address []:pdsyw@pdsyw.cn
作用
创建自签名证书用于 TLS 加密;
使 FTP 登录和传输过程加密,防止明文账号密码泄露;
-nodes 表示不加密私钥,方便服务自动加载。
07
设置权限
pdsyw@pdsyw1024:~/Desktop$ sudo chmod 600 /etc/ssl/private/pure-ftpd.pem
作用
确保 TLS 私钥文件只有 root 可读,避免被非授权用户访问,从而保障通信安全。
08
生成 DH 参数
pdsyw@pdsyw1024:~/Desktop$ sudo openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048 pdsyw@pdsyw1024:~/Desktop$ sudo chmod 600 /etc/ssl/private/pure-ftpd-dhparams.pem
作用
DH 参数用于 TLS 会话中密钥交换的安全性增强,生成强度为 2048 位的密钥交换参数文件。
09
关闭pure-ftpd服务
pdsyw@pdsyw1024:~/Desktop$ sudo systemctl stop pure-ftpd pdsyw@pdsyw1024:~/Desktop$ sudo systemctl disable pure-ftpd
作用
防止系统自带的默认配置干扰后续自定义配置。我们将通过 systemd 定义一个新的服务启动方式。
10
编辑systemd 服务
pdsyw@pdsyw1024:~/Desktop$ sudo vim /etc/systemd/system/pure-ftpd.service pdsyw@pdsyw1024:~/Desktop$ cat /etc/systemd/system/pure-ftpd.service [Unit] Description=Pure-FTPd FTP Server (with PureDB and TLS) After=network.target [Service] ExecStart=/usr/sbin/pure-ftpd \ -l puredb:/etc/pure-ftpd/pureftpd.pdb \ -j \ -E \ -Y 2 \ -8 UTF-8 \ -p 30000:30050 \ -P 10.211.55.148 Restart=on-failure [Install] WantedBy=multi-user.target
作用
定义了 Pure-FTPd 的运行参数、认证方式、加密策略和端口设置,让服务更灵活、受控。
11
启动 systemd 服务
pdsyw@pdsyw1024:~/Desktop$ sudo systemctl enable pure-ftpd.service pdsyw@pdsyw1024:~/Desktop$ sudo systemctl restart pure-ftpd.service pdsyw@pdsyw1024:~/Desktop$ sudo systemctl status pure-ftpd.service
作用
将自定义服务注册为开机启动,并立即启动该服务。status 用于确认是否启动成功。
12
查看ip
pdsyw@pdsyw1024:~/Desktop$ ip a
作用
用于确认 FTP 服务器的 IP 地址,客户端连接时需要填写这个地址。
13
filezilla客户端下载
14
使用filezilla客户端登录
15
确认证书
16
连接成功
本教程演示了如何:
在统信 UOS 上部署 Pure-FTPd;
配置虚拟用户及目录权限;
启用 TLS 加密保障数据安全;
使用 systemd 管理服务;
通过 FileZilla 测试连接;
此文章出处【鹏大圣运维】
地址:福州市晋安区福新中路89号时代国际广场917-918室
闽ICP备18013712号-2