Fedora 22 上配置 Proftpd 伺服器圖解教程

linux.cn發表於2015-08-05

在本文中,我們將瞭解如何在執行 Fedora 22 的電腦或伺服器上使用 Proftpd 架設 FTP 伺服器。ProFTPD 是一款基於 GPL 授權的自由開源 FTP 伺服器軟體,是 Linux 上的主流 FTP 伺服器。它的主要設計目標是提供許多高階功能以及給使用者提供豐富的配置選項以輕鬆實現定製。它具備許多在其他一些 FTP 伺服器軟體裡仍然沒有的配置選項。最初它是被開發作為 wu-ftpd 伺服器的一個更安全更容易配置的替代。

如何在 Fedora 22 上配置 Proftpd 伺服器

FTP 伺服器是這樣一個軟體,使用者可以通過 FTP 客戶端從安裝了它的遠端伺服器上傳或下載檔案和目錄。下面是一些 ProFTPD 伺服器的主要功能,更詳細的資料可以訪問 http://www.proftpd.org/features.html

  • 每個目錄都可以包含 “.ftpaccess” 檔案用於訪問控制,類似 Apache 的 “.htaccess”
  • 支援多個虛擬 FTP 伺服器以及多使用者登入和匿名 FTP 服務。
  • 可以作為獨立程式啟動服務或者通過 inetd/xinetd 啟動
  • 它的檔案/目錄屬性、屬主和許可權是基於 UNIX 方式的。
  • 它可以獨立執行,保護系統避免 root 訪問可能帶來的損壞。
  • 模組化的設計讓它可以輕鬆擴充套件其他模組,比如 LDAP 伺服器,SSL/TLS 加密,RADIUS 支援,等等。
  • ProFTPD 伺服器還支援 IPv6.

下面是如何在執行 Fedora 22 作業系統的計算機上使用 ProFTPD 架設 FTP 伺服器的一些簡單步驟。

1. 安裝 ProFTPD

首先,我們將在執行 Fedora 22 的機器上安裝 Proftpd 軟體。因為 yum 包管理器已經被拋棄了,我們將使用最新最好的包管理器 dnf。DNF 很容易使用,是 Fedora 22 上採用的非常人性化的包管理器。我們將用它來安裝 proftpd 軟體。這需要在終端或控制檯裡用 sudo 模式執行下面的命令。

$ sudo dnf -y install proftpd proftpd-utils

2. 配置 ProFTPD

現在,我們將修改軟體的一些配置。要配置它,我們需要用文字編輯器編輯 /etc/proftpd.conf 檔案。/etc/proftpd.conf 檔案是 ProFTPD 軟體的主要配置檔案,所以,這個檔案的任何改動都會影響到 FTP 伺服器。在這裡,是我們在初始步驟裡做出的改動。

$ sudo vi /etc/proftpd.conf

之後,在用文字編輯器開啟這個檔案後,我們會想改下 ServerName 以及 ServerAdmin,分別填入自己的域名和 email 地址。下面是我們改的。

ServerName       "ftp.linoxide.com"
ServerAdmin      arun@linoxide.com

在這之後,我們將把下面的設定加到配置檔案裡,這樣可以讓伺服器將訪問和授權記錄到相應的日誌檔案裡。

ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth

如何在 Fedora 22 上配置 Proftpd 伺服器

3. 新增 FTP 使用者

在設定好了基本的配置檔案後,我們很自然地希望新增一個以特定目錄為根目錄的 FTP 使用者。目前登入的使用者自動就可以使用 FTP 服務,可以用來登入到 FTP 伺服器。但是,在這篇教程裡,我們將建立一個以 ftp 伺服器上指定目錄為主目錄的新使用者。

下面,我們將建立一個名字是 ftpgroup 的新使用者組。

$ sudo groupadd ftpgroup

然後,我們將以目錄 /ftp-dir/ 作為主目錄增加一個新使用者 arunftp 並加入這個組中。

$ sudo useradd -G ftpgroup arunftp -s /sbin/nologin -d /ftp-dir/

在建立好使用者並加入使用者組後,我們將為使用者 arunftp 設定一個密碼。

$ sudo passwd arunftp

Changing password for user arunftp.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

現在,我們將通過下面命令為這個 ftp 使用者設定主目錄的讀寫許可權(LCTT 譯註:這是SELinux 相關設定,如果未啟用 SELinux,可以不用)。

$ sudo setsebool -P allow_ftpd_full_access=1
$ sudo setsebool -P ftp_home_dir=1

然後,我們會設定不允許其他使用者移動或重新命名這個目錄以及裡面的內容。

$ sudo chmod -R 1777 /ftp-dir/

4. 開啟 TLS 支援

目前 FTP 所用的加密手段並不安全,任何人都可以通過監聽網路卡來讀取 FTP 傳輸的資料。所以,我們將為自己的伺服器開啟 TLS 加密支援。這樣的話,需要編輯 /etc/proftpd.conf 配置檔案。在這之前,我們先備份一下當前的配置檔案,可以保證在改出問題後還可以恢復。

$ sudo cp /etc/proftpd.conf /etc/proftpd.conf.bak

然後,我們可以用自己喜歡的文字編輯器修改配置檔案。

$ sudo vi /etc/proftpd.conf

然後,把下面幾行附加到我們在第 2 步中所增加內容的後面。

TLSEngine on
TLSRequired on
TLSProtocol SSLv23
TLSLog /var/log/proftpd/tls.log
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem

如何在 Fedora 22 上配置 Proftpd 伺服器

完成上面的設定後,儲存退出。

然後,我們需要生成 SSL 憑證 proftpd.pem 並放到 /etc/pki/tls/certs/ 目錄裡。這樣的話,首先需要在 Fedora 22 上安裝 openssl。

$ sudo dnf install openssl

然後,可以通過執行下面的命令生成 SSL 憑證。

$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem

系統會詢問一些將寫入憑證裡的基本資訊。在填完資料後,就會生成一個 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 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) [XX]:NP
State or Province Name (full name) []:Narayani
Locality Name (eg, city) [Default City]:Bharatpur
Organization Name (eg, company) [Default Company Ltd]:Linoxide
Organizational Unit Name (eg, section) []:Linux Freedom
Common Name (eg, your name or your server's hostname) []:ftp.linoxide.com
Email Address []:arun@linoxide.com

在這之後,我們要改變所生成憑證檔案的許可權以增加安全性。

$ sudo chmod 600 /etc/pki/tls/certs/proftpd.pem

5. 允許 FTP 通過 Firewall

現在,需要允許 ftp 埠,一般預設被防火牆阻止了。就是說,需要允許 ftp 埠能通過防火牆訪問。

如果 開啟了 TLS/SSL 加密,執行下面的命令。

$ sudo firewall-cmd --add-port=1024-65534/tcp
$ sudo firewall-cmd --add-port=1024-65534/tcp --permanent

如果 沒有開啟 TLS/SSL 加密,執行下面的命令。

$ sudo firewall-cmd --permanent --zone=public --add-service=ftp

success

然後,重新載入防火牆設定。

$ sudo firewall-cmd --reload

success

6. 啟動並啟用 ProFTPD

全部設定好後,最後就是啟動 ProFTPD 並試一下。可以執行下面的命令來啟動 proftpd ftp 守護程式。

$ sudo systemctl start proftpd.service

然後,我們可以設定開機啟動。

$ sudo systemctl enable proftpd.service

Created symlink from /etc/systemd/system/multi-user.target.wants/proftpd.service to /usr/lib/systemd/system/proftpd.service.

7. 登入到 FTP 伺服器

現在,如果都是按照本教程設定好的,我們一定可以連線到 ftp 伺服器並使用以上設定的資訊登入上去。在這裡,我們將配置一下 FTP 客戶端 filezilla,使用 伺服器的 IP 或名稱 *作為主機名,協議選擇 *FTP,使用者名稱填入 arunftp,密碼是在上面第 3 步中設定的密碼。如果你按照第 4 步中的方式開啟了 TLS 支援,還需要在加密型別中選擇 要求顯式的基於 TLS 的 FTP,如果沒有開啟,也不想使用 TLS 加密,那麼加密型別選擇 簡單 FTP

如何在 Fedora 22 上配置 Proftpd 伺服器

要做上述設定,需要開啟選單裡的檔案,點選站點管理器,然後點選新建站點,再按上面的方式設定。

如何在 Fedora 22 上配置 Proftpd 伺服器

隨後系統會要求允許 SSL 憑證,點確定。之後,就可以從我們的 FTP 伺服器上傳下載檔案和資料夾了。

總結

最後,我們成功地在 Fedora 22 機器上安裝並配置好了 Proftpd FTP 伺服器。Proftpd 是一個超級強大,能高度定製和擴充套件的 FTP 守護軟體。上面的教程展示瞭如何配置一個採用 TLS 加密的安全 FTP 伺服器。強烈建議設定 FTP 伺服器支援 TLS 加密,因為它允許使用 SSL 憑證加密資料傳輸和登入。本文中,我們也沒有配置 FTP 的匿名訪問,因為一般受保護的 FTP 系統不建議這樣做。 FTP 訪問讓人們的上傳和下載變得非常簡單也更高效。我們還可以改變使用者埠增加安全性。好吧,如果你有任何疑問,建議,反饋,請在下面評論區留言,這樣我們就能夠改善並更新文章內容。謝謝!玩的開心!

相關文章