如何在阿里雲 CentOS 8 / RHEL 8 上安裝 vsftpd(ftp 伺服器)
FTP是檔案傳輸協議的縮寫,是一種提供對駐留在伺服器上的檔案的訪問的協議。它是使使用者能夠通過 Internet 下載檔案的最早協議之一。通過 FTP 協議,使用者可以輕鬆地在伺服器上下載和上傳檔案。
Vsftpd是Very Secure FTP daemon 的縮寫,是一個安全的 FTP 守護程序,是 FTP 協議的升級版。它通過加密傳送到伺服器和從伺服器傳送的流量來強制安全連線到 FTP 伺服器,並且通過這樣做,檔案傳輸是安全的,不會受到黑客的攻擊。
在本主題中,我們將重點介紹在 CentOS 8 / RHEL 8 上安裝 vsftpd。
步驟 1) 使用 dnf 命令安裝 vsftpd
馬上,我們將安裝 vsftpd。
sudo dnf install vsftpd
按“y”並按 ENTER 開始安裝。安裝需要幾秒鐘,很快就會完成。下面的輸出確認 vsftpd 已成功安裝。
輸出表明我們已經安裝了vsftpd版本3.0.3-31.el8.x86_64。要確認這一點,請執行以下命令
[ linuxtechi@centos8-vsftpd ~]$ rpm -q vsftpd vsftpd-3.0.3-31.el8.x86_64 [ linuxtechi@centos8-vsftpd ~]$
成功安裝後,輸出應與終端上列印的版本相符。要檢索有關 Vsftpd 的更多詳細資訊,請在末尾附加 -i 標誌,如下所示:
rpm -qi vsftpd
這將在螢幕上列印附加資訊,例如架構、安裝日期、許可證和簽名等。
安裝 vsftpd 後,我們需要執行它以方便訪問檔案共享。
要啟動 vsftpd 服務,請執行以下命令:
sudo systemctl start vsftpd
您可能還希望使其在重新啟動時自動啟動。為此,請執行命令
sudo systemctl start vsftpd
要驗證系統上 vsftpd 的狀態,請執行:
sudo systemctl status vsftpd
如果您在終端上看到綠色的“active: (running)”指令,則 vsftpd 服務已啟動並正在執行。
步驟 2) 建立 ftp 使用者及其目錄
接下來,我們將建立一個用於訪問 FTP 伺服器的使用者。在這種情況下,使用者將是 ftpuser 但您可以隨意為您的使用者指定一個您選擇的名稱。
$ sudo adduser ftpuser $ sudo passwd ftpuser
FTP 使用者就位後,我們將繼續建立 FTP 目錄並分配以下許可權和目錄所有權。
$ sudo mkdir -p /home/ftpuser/ftp_dir $ sudo chmod -R 750 /home/ftpuser/ftp_dir $ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
我們還需要將FTP使用者新增到/etc/vsftpd/user_list檔案中,以允許該使用者訪問vsftp伺服器。
sudo bash -c 'echo ftpuser >> /etc/vsftpd/user_list'
步驟3)通過其配置檔案配置vsftpd
到目前為止,我們已成功安裝並確認 vsftpd 已啟動並正在執行。Vsftpd 需要進一步調整以允許使用者訪問伺服器。
vsftpd 的預設配置檔案是/etc/vsftpd/vsftpd.conf檔案。該檔案充滿了有助於加強 FTP 伺服器安全性的指令。
在本節中,我們將對配置檔案進行一些調整,並允許使用者訪問伺服器。
要允許本地使用者遠端訪問 FTP 伺服器並阻止匿名使用者,請確保您具有如下所示的指令:
anonymous_enable=NO
local_enable=YES
要授予使用者執行任何 FTP 命令和進行更改(例如上傳、下載和刪除檔案)的許可權,請準備好以下行。
write_enable=YES
出於安全目的,您可以選擇限制使用者訪問其主目錄之外的任何檔案和目錄。因此,請準備好以下指令。
chroot_local_user=YES
要授予使用者對其各自主目錄的寫訪問許可權,請確保您擁有此指令。
allow_writeable_chroot=YES
接下來,我們將定義自定義埠以啟用被動 FTP 連線。在這種情況下,我們將指定埠 30000 和 31000。稍後我們將在防火牆上開啟它們。
pasv_min_port=30000 pasv_max_port=31000
接下來,我們將只允許/etc/vsftpd/user_list 中定義的使用者訪問伺服器並阻止其餘使用者。要實現這一點,請使用以下幾行。
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
最後,儲存並關閉檔案。要使更改保持不變,請重新啟動 Vsftpd 服務。
$ sudo systemctl restart vsftpd
此時,您可以通過執行來測試 FTP 連線性
$ ftp ip
指定 ftp 使用者的使用者名稱,然後提供密碼。您應該得到如圖所示的輸出。
如果連線時報錯,有可能是阿里雲的21埠沒開啟
雖然我們已經建立了到 vsftpd 伺服器的連線。連線不安全,傳送的資訊是純文字的,沒有加密。因此,我們需要採取額外的步驟來加密傳送到伺服器的通訊。
步驟 4)為 vsftpd 配置 SSL/TLS
為了加密伺服器和客戶端系統之間的通訊,我們需要生成一個 TLS 證書,然後配置伺服器以使用它。
要生成證書,請執行以下命令:
$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
隨後將出現一系列提示,您需要提供一些詳細資訊,例如國家/地區名稱、州或省以及組織名稱等。相應地填寫所有詳細資訊,如圖所示。
我們還需要告訴伺服器證書檔案的儲存位置。因此,返回配置檔案/etc/vsftpd/vsftpd.conf並指定證書檔案的路徑。
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem
然後,指示伺服器開啟 SSL。
ssl_enable=YES
儲存並退出配置檔案。使以上修改生效,重啟vsftpd服務,
$ sudo systemctl restart vsftpd
步驟 5) 在防火牆中允許 ftp 伺服器 (vsftpd) 埠
如果您正在執行防火牆,則需要允許這些顯著埠”
- 20 – 允許 FTP 流量
- 21 – FTP 資料埠
- 30000-31000 – 允許與 FTP 伺服器進行被動通訊。
因此,執行以下命令:
$ sudo firewall-cmd --permanent --add-port=20-21/tcp $ sudo firewall-cmd --permanent --add-port=30000-31000/tcp
然後重新載入防火牆以使更改生效。
$ sudo firewall-cmd --reload
步驟 6) 測試您的 vsftpd 或 FTP 伺服器
完成所有設定後,是時候測試我們的連線性了。在這個例子中,我們使用了一個名為FileZilla的 FTP 客戶端,它是一個免費的 FTP 客戶端,用於客戶端和伺服器系統。它支援普通 FTP 和 FTP over TLS,這是我們將要測試的。
啟動後,介面如圖所示。提供主機的 IP 地址 (vsftpd)、ftp 使用者的使用者名稱和密碼,然後單擊“快速連線”按鈕。
不久之後,將出現一個彈出視窗,顯示 FTP 伺服器的證書和會話詳細資訊。要繼續連線,請單擊“在以後的會話中始終信任此證書”,然後按 Enter。
如果您的所有配置都正確,您應該可以正常進入,如圖所示。在右下窗格中,遠端伺服器的主目錄如圖所示。您現在可以上傳、下載和編輯您認為合適的檔案。
我們關於在 CentOS 8 上安裝 vsftpd 的主題到此結束。我們希望您現在可以輕鬆地設定您自己的 vsftpd(安全 ftp)伺服器。請務必在您的技術朋友之間分享,並分享您寶貴的反饋和意見。
參考:https://www.linuxtechi.com/install-vsftpd-server-centos-8-rhel-8/
道雖邇,不行不至;事雖小,不為不成。