與 vsftpd 和 Pure-FTPd 一起,ProFTPD 是最流行的 FTP 服務器之一 Fedora, 今天的 Ubuntu 和類 Unix 環境。 它是一個免費的開源軟件,與類 Unix 系統兼容。 與同類產品相比,它為用戶提供了大量配置選項。
在這篇文章中,我將描述如何在 Debian 9 上使用 ProFTP 配置 FTP 服務器。
第 1 步:安裝 ProFTPD
要安裝 ProFTP,請執行以下命令,第一個命令 ‘apt-get update’ 將更新存儲庫中可用的軟件包列表。 第二個命令將執行實際安裝。
root@b74d3d863d39:~# apt-get update
root@b74d3d863d39:~# apt-get install proftpd
您可以通過執行以下命令來驗證安裝。 它應該在輸出中給出它的版本。
root@b74d3d863d39:~# proftpd -v
偉大的! 你已經成功地在服務器上安裝了 proftpd。 現在讓我們配置和使用 FTP 服務。 首先,我們需要創建 Linux 組和用戶。
步驟 2:創建 FTP 組
使用您選擇的名稱創建一個組。 在本文中,我們將分別使用“ftpgroup”和“pradip”作為組名和使用名。 通過執行以下命令創建一個組。
root@21bcc8c5b80e:/# addgroup ftpgroup
第三步:創建FTP用戶
通過替換命令“adduser ${username} -shell /bin/false -G ${groupname} -home ${USER_HOME_DIRECTORY}”中的適當值來創建用戶。 一個 example 如下所示。 它將提示輸入新密碼和用戶詳細信息。 創建用戶時使用與我們在第 2 步中創建的相同的組名。
root@21bcc8c5b80e:/# adduser pradip -shell /bin/false -ingroup ftpgroup -home /ftpshare
Adding user `pradip' ...
Adding new user `pradip' (1000) with group `ftpgroup' ...
Creating home directory `/ftpshare' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for pradip
Enter the new value, or press ENTER for the default
Full Name []: Pradip Sakhavala
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
步驟 4:配置 ProFTPD
現在我們需要配置 ProFTPD。 使用您喜歡的文本編輯器編輯文件 /etc/proftpd/proftpd.conf,如下所示。
root@21bcc8c5b80e:/# vi /etc/proftpd/proftpd.conf
[...]
UseIPv6 off
[...]
RootLogin off
RequireValidShell off
DefaultRoot ~
<Limit LOGIN>
DenyGroup !ftpgroup
</Limit>
我沒有使用 IPv6,所以我通過將“UseIPv6”設置為關閉來禁用它,如上所示。 我正在通過 RootLogon off 禁用 root 用戶登錄。 DefaultRoot 設置為“~”以限制用戶只能訪問其主文件夾。 DenyGroup 將只允許來自 ftpgroup 的用戶訪問 ftp 服務器,所有其他連接都將被拒絕。 請注意,您需要設置與步驟 2 中創建的組名稱相同的組名。
第五步:啟動ProFTP服務
現在通過發出以下命令重新啟動 proftpd 服務。
root@21bcc8c5b80e:/#service proftpd restart
一旦服務正常啟動,您可以通過點擊 URL ftp://{Server_IP or Server_hostname} 開始使用 ftp 服務器。 它會提示輸入用戶名和密碼。 使用您在步驟 3 中配置的相同詳細信息。
ProFTPD TLS 設置
要配置和運行 TLS,我們首先需要生成一個證書。 為此,首先,安裝 openssl 通過執行以下命令。
root@21bcc8c5b80e:/#sudo apt-get install openssl
在 /etc/proftpd 下創建 ssl 目錄。
root@21bcc8c5b80e:/# mkdir /etc/proftpd/ssl
通過執行以下命令生成自簽名證書。 它將要求提供一些信息,請相應地提供輸入。
root@21bcc8c5b80e:/#openssl req -new -x509 -keyout /etc/proftpd/ssl/proftpd.key.pem -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem
Generating a 2048 bit RSA private key
...+++
............................+++
writing new private key to '/etc/proftpd/ssl/proftpd.key.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]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:AMD
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Batman
Organizational Unit Name (eg, section) []:Build
Common Name (e.g. server FQDN or YOUR name) []:Pradip
Email Address []:[email protected]
proftpd.key 文件必須只能由 root 讀取。 為了保護環境,請執行以下命令。
root@21bcc8c5b80e:/# chmod 600 /etc/proftpd/ssl/proftpd.*
打開 /etc/proftpd/tls.conf 並更改和/或取消註釋行,如下所示。
root@21bcc8c5b80e:/# vi /etc/proftpd/tls.conf
<IfModule mod_tls.c>
[::]
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
[::]
</IfModule>
之後,重新啟動服務,如上面的步驟 5 所示。
結論
我們已經使用基本配置成功配置了 ProFTPd 服務器。 它具有許多本文無法涵蓋的功能。 你必須試試這個。 如果您在配置中發現任何困難,或者您認為您對這個主題有任何世界應該知道的東西,請在評論部分發布。
另請閱讀:
- 如何在 Ubuntu 18.04 上使用 SSL/TLS 配置 VSFTPD SFTP