如何在Fedora 22上配置Proftpd服務(wù)器
在本文中,我們將了解如何在運(yùn)行 Fedora 22 的電腦或服務(wù)器上使用 Proftpd 架設(shè) FTP 服務(wù)器。ProFTPD 是一款基于 GPL 授權(quán)的自由開源 FTP 服務(wù)器軟件,是 Linux 上的主流 FTP 服務(wù)器。它的主要設(shè)計(jì)目標(biāo)是提供許多高級(jí)功能以及給用戶提供豐富的配置選項(xiàng)以輕松實(shí)現(xiàn)定制。它具備許多在其他一些 FTP 服務(wù)器軟件里仍然沒有的配置選項(xiàng)。最初它是被開發(fā)作為 wu-ftpd 服務(wù)器的一個(gè)更安全更容易配置的替代。
FTP 服務(wù)器是這樣一個(gè)軟件,用戶可以通過 FTP 客戶端從安裝了它的遠(yuǎn)端服務(wù)器上傳或下載文件和目錄。下面是一些 ProFTPD 服務(wù)器的主要功能,更詳細(xì)的資料可以訪問 http://www.proftpd.org/features.html。
- 每個(gè)目錄都可以包含 ".ftpaccess" 文件用于訪問控制,類似 Apache 的 ".htaccess"。
- 支持多個(gè)虛擬 FTP 服務(wù)器以及多用戶登錄和匿名 FTP 服務(wù)。
- 可以作為獨(dú)立進(jìn)程啟動(dòng)服務(wù)或者通過 inetd/xinetd 啟動(dòng)
- 它的文件/目錄屬性、屬主和權(quán)限是基于 UNIX 方式的。
- 它可以獨(dú)立運(yùn)行,保護(hù)系統(tǒng)避免 root 訪問可能帶來的損壞。
- 模塊化的設(shè)計(jì)讓它可以輕松擴(kuò)展其他模塊,比如 LDAP 服務(wù)器,SSL/TLS 加密,RADIUS 支持,等等。
- ProFTPD 服務(wù)器還支持 IPv6。
下面是如何在運(yùn)行 Fedora 22 操作系統(tǒng)的計(jì)算機(jī)上使用 ProFTPD 架設(shè) FTP 服務(wù)器的一些簡單步驟。
1. 安裝 ProFTPD
首先,我們將在運(yùn)行 Fedora 22 的機(jī)器上安裝 Proftpd 軟件。因?yàn)?yum 包管理器已經(jīng)被拋棄了,我們將使用******的包管理器 dnf。DNF 很容易使用,是 Fedora 22 上采用的非常人性化的包管理器。我們將用它來安裝 proftpd 軟件。這需要在終端或控制臺(tái)里用 sudo 模式運(yùn)行下面的命令。
$ sudo dnf -y install proftpd proftpd-utils
2. 配置 ProFTPD
現(xiàn)在,我們將修改軟件的一些配置。要配置它,我們需要用文本編輯器編輯 /etc/proftpd.conf 文件。/etc/proftpd.conf 文件是 ProFTPD 軟件的主要配置文件,所以,這個(gè)文件的任何改動(dòng)都會(huì)影響到 FTP 服務(wù)器。在這里,是我們在初始步驟里做出的改動(dòng)。
$ sudo vi /etc/proftpd.conf
之后,在用文本編輯器打開這個(gè)文件后,我們會(huì)想改下 ServerName 以及 ServerAdmin,分別填入自己的域名和 email 地址。下面是我們改的。
ServerName "ftp.linoxide.com"ServerAdmin arun@linoxide.com
在這之后,我們將把下面的設(shè)定加到配置文件里,這樣可以讓服務(wù)器將訪問和授權(quán)記錄到相應(yīng)的日志文件里。
ExtendedLog /var/log/proftpd/access.log WRITE,READ defaultExtendedLog /var/log/proftpd/auth.log AUTH auth

調(diào)整 ProFTPD 設(shè)置
#p#
3. 添加 FTP 用戶
在設(shè)定好了基本的配置文件后,我們很自然地希望添加一個(gè)以特定目錄為根目錄的 FTP 用戶。目前登錄的用戶自動(dòng)就可以使用 FTP 服務(wù),可以用來登錄到 FTP 服務(wù)器。但是,在這篇教程里,我們將創(chuàng)建一個(gè)以 ftp 服務(wù)器上指定目錄為主目錄的新用戶。
下面,我們將建立一個(gè)名字是 ftpgroup 的新用戶組。
$ sudo groupadd ftpgroup
然后,我們將以目錄 /ftp-dir/ 作為主目錄增加一個(gè)新用戶 arunftp 并加入這個(gè)組中。
$ sudo useradd -G ftpgroup arunftp -s /sbin/nologin -d /ftp-dir/
在創(chuàng)建好用戶并加入用戶組后,我們將為用戶 arunftp 設(shè)置一個(gè)密碼。
$ sudo passwd arunftpChanging password for user arunftp.New password:Retype new password:passwd: all authentication tokens updated successfully.
現(xiàn)在,我們將通過下面命令為這個(gè) ftp 用戶設(shè)定主目錄的讀寫權(quán)限(LCTT 譯注:這是SELinux 相關(guān)設(shè)置,如果未啟用 SELinux,可以不用)。
$ sudo setsebool -P allow_ftpd_full_access=1$ sudo setsebool -P ftp_home_dir=1
然后,我們會(huì)設(shè)定不允許其他用戶移動(dòng)或重命名這個(gè)目錄以及里面的內(nèi)容。
$ sudo chmod -R 1777 /ftp-dir/
4. 打開 TLS 支持
目前 FTP 所用的加密手段并不安全,任何人都可以通過監(jiān)聽網(wǎng)卡來讀取 FTP 傳輸?shù)臄?shù)據(jù)。所以,我們將為自己的服務(wù)器打開 TLS 加密支持。這樣的話,需要編輯 /etc/proftpd.conf 配置文件。在這之前,我們先備份一下當(dāng)前的配置文件,可以保證在改出問題后還可以恢復(fù)。
$ sudo cp /etc/proftpd.conf /etc/proftpd.conf.bak
然后,我們可以用自己喜歡的文本編輯器修改配置文件。
$ sudo vi /etc/proftpd.conf
然后,把下面幾行附加到我們在第 2 步中所增加內(nèi)容的后面。
TLSEngine onTLSRequired onTLSProtocol SSLv23TLSLog /var/log/proftpd/tls.logTLSRSACertificateFile /etc/pki/tls/certs/proftpd.pemTLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem

打開 TLS 配置
完成上面的設(shè)定后,保存退出。
然后,我們需要生成 SSL 憑證 proftpd.pem 并放到 /etc/pki/tls/certs/ 目錄里。這樣的話,首先需要在 Fedora 22 上安裝 openssl。
$ sudo dnf install openssl
然后,可以通過執(zhí)行下面的命令生成 SSL 憑證。
$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
系統(tǒng)會(huì)詢問一些將寫入憑證里的基本信息。在填完資料后,就會(huì)生成一個(gè) 2048 位的 RSA 私鑰。
Generating a 2048 bit RSA private key...................+++...................+++writing new private key to '/etc/pki/tls/certs/proftpd.pem'-----You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:NPState or Province Name (full name) []:NarayaniLocality Name (eg, city) [Default City]:BharatpurOrganization Name (eg, company) [Default Company Ltd]:LinoxideOrganizational Unit Name (eg, section) []:Linux FreedomCommon Name (eg, your name or your server's hostname) []:ftp.linoxide.comEmail Address []:arun@linoxide.com
在這之后,我們要改變所生成憑證文件的權(quán)限以增加安全性。
$ sudo chmod 600 /etc/pki/tls/certs/proftpd.pem
5. 允許 FTP 通過 Firewall
現(xiàn)在,需要允許 ftp 端口,一般默認(rèn)被防火墻阻止了。就是說,需要允許 ftp 端口能通過防火墻訪問。
如果 打開了 TLS/SSL 加密,執(zhí)行下面的命令。
$ sudo firewall-cmd --add-port=1024-65534/tcp$ sudo firewall-cmd --add-port=1024-65534/tcp --permanent
如果 沒有打開 TLS/SSL 加密,執(zhí)行下面的命令。
$ sudo firewall-cmd --permanent --zone=public --add-service=ftpsuccess
然后,重新加載防火墻設(shè)定。
$ sudo firewall-cmd --reloadsuccess
#p#
6. 啟動(dòng)并激活 ProFTPD
全部設(shè)定好后,***就是啟動(dòng) ProFTPD 并試一下??梢赃\(yùn)行下面的命令來啟動(dòng) proftpd ftp 守護(hù)程序。
$ sudo systemctl start proftpd.service
然后,我們可以設(shè)定開機(jī)啟動(dòng)。
$ sudo systemctl enable proftpd.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/proftpd.service to /usr/lib/systemd/system/proftpd.service.
7. 登錄到 FTP 服務(wù)器
現(xiàn)在,如果都是按照本教程設(shè)置好的,我們一定可以連接到 ftp 服務(wù)器并使用以上設(shè)置的信息登錄上去。在這里,我們將配置一下 FTP 客戶端 filezilla,使用 服務(wù)器的 IP 或名稱 *作為主機(jī)名,協(xié)議選擇 *FTP,用戶名填入 arunftp,密碼是在上面第 3 步中設(shè)定的密碼。如果你按照第 4 步中的方式打開了 TLS 支持,還需要在加密類型中選擇 要求顯式的基于 TLS 的 FTP,如果沒有打開,也不想使用 TLS 加密,那么加密類型選擇 簡單 FTP。
FTP 登錄細(xì)節(jié)
要做上述設(shè)定,需要打開菜單里的文件,點(diǎn)擊站點(diǎn)管理器,然后點(diǎn)擊新建站點(diǎn),再按上面的方式設(shè)置。

FTP SSL 憑證
隨后系統(tǒng)會(huì)要求允許 SSL 憑證,點(diǎn)確定。之后,就可以從我們的 FTP 服務(wù)器上傳下載文件和文件夾了。
總結(jié)
***,我們成功地在 Fedora 22 機(jī)器上安裝并配置好了 Proftpd FTP 服務(wù)器。Proftpd 是一個(gè)超級(jí)強(qiáng)大,能高度定制和擴(kuò)展的 FTP 守護(hù)軟件。上面的教程展示了如何配置一個(gè)采用 TLS 加密的安全 FTP 服務(wù)器。強(qiáng)烈建議設(shè)置 FTP 服務(wù)器支持 TLS 加密,因?yàn)樗试S使用 SSL 憑證加密數(shù)據(jù)傳輸和登錄。本文中,我們也沒有配置 FTP 的匿名訪問,因?yàn)橐话闶鼙Wo(hù)的 FTP 系統(tǒng)不建議這樣做。 FTP 訪問讓人們的上傳和下載變得非常簡單也更高效。我們還可以改變用戶端口增加安全性。好吧,如果你有任何疑問,建議,反饋,請?jiān)谙旅嬖u(píng)論區(qū)留言,這樣我們就能夠改善并更新文章內(nèi)容。謝謝!玩的開心 :-)























