01
查看系統(tǒng)信息
pdsyw@pdsyw1024:~/Desktop$ cat /etc/os-version pdsyw@pdsyw1024:~/Desktop$ uname -a
作用
確認當前系統(tǒng)平臺(如統(tǒng)信 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
創(chuàng)建系統(tǒng)用戶及上傳目錄
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 是所有虛擬用戶的宿主系統(tǒng)賬號,不允許登錄系統(tǒng);
/ftp/uploads 是虛擬用戶上傳文件的目標目錄;
設置該目錄歸屬為 ftpuser,以確保文件權限和訪問安全。
05
創(chuàng)建 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
作用
創(chuàng)建一個名為 testftp 的虛擬 FTP 用戶,綁定到 /ftp/uploads;
虛擬用戶對應的實際文件訪問由 ftpuser 系統(tǒng)用戶來執(zhí)行;
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
作用
創(chuàng)建自簽名證書用于 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
作用
防止系統(tǒng)自帶的默認配置干擾后續(xù)自定義配置。我們將通過 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
連接成功
本教程演示了如何:
在統(tǒng)信 UOS 上部署 Pure-FTPd;
配置虛擬用戶及目錄權限;
啟用 TLS 加密保障數據安全;
使用 systemd 管理服務;
通過 FileZilla 測試連接;
此文章出處【鵬大圣運維】
關于我們
下載中心
地址:福州市晉安區(qū)福新中路89號時代國際廣場917-918室
閩ICP備18013712號-2