1. 程式人生 > 其它 >如何在阿里雲 CentOS 8 / RHEL 8 上安裝 vsftpd(ftp 伺服器)

如何在阿里雲 CentOS 8 / RHEL 8 上安裝 vsftpd(ftp 伺服器)

FTP檔案傳輸協議的縮寫,是一種提供對駐留在伺服器上的檔案的訪問的協議。它是使使用者能夠通過 Internet 下載檔案的最早協議之一。通過 FTP 協議,使用者可以輕鬆地在伺服器上下載和上傳檔案。

VsftpdVery 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/

道雖邇,不行不至;事雖小,不為不成。