tft每日頭條

 > 科技

 > ubuntu怎麼搭建ftp服務器

ubuntu怎麼搭建ftp服務器

科技 更新时间:2024-09-02 13:24:05

Ftp(文件傳輸協議)是一種标準網絡協議,用于在遠程網絡之間傳輸文件。

有許多可用于 Linux 的開源 FTP 服務器。最流行和使用最廣泛的是PureFTPd 、ProFTPD 和vsftpd 。在本教程中,我們将安裝 vsftpd(非常安全的 Ftp 守護程序)。它是一個穩定、安全、快速的 FTP 服務器。我們還将向您展示如何配置 vsftpd 以将用戶限制在他們的主目錄中并使用 SSL/TLS 加密整個傳輸。

盡管本教程是為 Ubuntu 18.04 編寫的,但相同的說明适用于 Ubuntu 16.04 和任何基于 Debian 的發行版,包括 Debian、Linux Mint 和 Elementary OS。

要獲得更安全和更快的數據傳輸,請使用SCP 或SFTP 。

1、先決條件

在繼續本教程之前,請确保您以具有 sudo 權限的用戶身份登錄 。

2、在 Ubuntu 18.04 上安裝 vsftpd

vsftpd 軟件包在 Ubuntu 存儲庫中可用。要安裝它,隻需運行以下命令:

sudo apt update

sudo apt install vsftpd

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)1

vsftpd 服務将在安裝過程完成後自動啟動。通過打印服務狀态來驗證它:

執行命令:sudo systemctl status vsftpd

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)2

輸出将如下所示,表明 vsftpd 服務處于活動狀态并正在運行:

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)3

3、配置 vsftpd

可以通過編輯/etc/vsftpd.conf文件來配置 vsftpd 服務器。大多數設置都在配置文件中詳細記錄。有關所有可用選項,請訪問官方 vsftpd 頁面。

在以下部分中,我們将介紹配置安全 vsftpd 安裝所需的一些重要設置。

首先打開 vsftpd 配置文件:

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)4

3.1 FTP訪問

我們将隻允許本地用戶訪問 FTP 服務器,找到anonymous_enable和local_enable指令并驗證您的配置是否與以下行匹配:

anonymous_enable=NO

local_enable=YES

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)5

3.2 啟用上傳

取消注釋write_enable設置以允許更改文件系統,例如上傳和删除文件。

write_enable=YES

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)6

3.3 Chroot監獄

要防止 FTP 用戶訪問其主目錄之外的任何文件,請取消注釋該chroot設置。

chroot_local_user=YES

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)7

默認情況下,為了防止安全漏洞,當啟用 chroot 時,如果用戶被鎖定的目錄是可寫的,vsftpd 将拒絕上傳文件。

啟用 chroot 時,使用以下方法之一允許上傳。

方法 1. - 允許上傳的推薦方法是保持 chroot 啟用,并配置 FTP 目錄。在本教程中,我們将在用戶主目錄中創建一個ftp目錄,該目錄将用作 chroot 和一個uploads用于上傳文件的可寫目錄。

user_sub_token=$USER

local_root=/home/$USER/FTP

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)8

方法 2. - 另一種選擇是在 vsftpd 配置文件中添加以下指令。如果您必須授予用戶對其主目錄的可寫訪問權限,請使用此選項。

allow_writeable_chroot=YES

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)9

3.4 被動 FTP 連接

vsftpd 可以使用任何端口進行被動 FTP 連接。我們将指定端口的最小和最大範圍,然後在我們的防火牆中打開該範圍。

将以下行添加到配置文件中:

pasv_min_port=30000

pasv_max_port=31000

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)10

3.5.限制用戶登錄

要僅允許某些用戶登錄 FTP 服務器,請在文件末尾添加以下行:

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

userlist_deny=NO

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)11

啟用此選項後,您需要通過将用戶名添加到文件中來明确指定哪些用戶能夠登錄/etc/vsftpd.user_list(每行一個用戶)。

3.6 使用 SSL/TLS 保護傳輸

為了使用 SSL/TLS 加密 FTP 傳輸,您需要擁有 SSL 證書并配置 FTP 服務器以使用它。

您可以使用由受信任的證書頒發機構簽名的現有 SSL 證書或創建自簽名證書。

如果您有一個指向 FTP 服務器 IP 地址的域或子域,您可以輕松生成免費的 Let's Encrypt SSL 證書。

我們将使用該命令生成自簽名 SSL 證書。openssl

以下命令将創建一個有效期為 10 年的 2048 位私鑰和自簽名證書。私鑰和證書都将保存在同一個文件中:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)12

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)13

創建 SSL 證書後,打開 vsftpd 配置文件:

sudo nano /etc/vsftpd.conf

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)14

找到rsa_cert_fileandrsa_private_key_file指令,将它們的值更改為pam文件路徑并将ssl_enable指令設置為YES:

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_enable=YES

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)15

如果沒有另外指定,FTP 服務器将隻使用 TLS 來建立安全連接。

4、重啟 vsftpd 服務

完成編輯後,vsftpd 配置文件(不包括注釋)應如下所示:

listen=NO

listen_ipv6=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=YES

chroot_local_user=YES

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_enable=YES

user_sub_token=$USER

local_root=/home/$USER/ftp

pasv_min_port=30000

pasv_max_port=31000

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

userlist_deny=NO

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)16

保存文件并重新啟動 vsftpd 服務以使更改生效:

執行命令:sudo systemctl restart vsftpd

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)17

5、打開防火牆

如果您正在運行UFW 防火牆,則 需要允許 FTP 流量。

要打開端口21(FTP 命令端口)、端口20(FTP 數據端口)和30000-31000(被動端口範圍),請運行以下命令:

sudo ufw allow 20:21/tcp

sudo ufw allow 30000:31000/tcp

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)18

為避免被鎖定,請打開端口22:

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)19

通過禁用和重新啟用 UFW 重新加載 UFW 規則:

sudo ufw disable

sudo ufw enable

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)20

要驗證更改運行:

sudo ufw status

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)21

6、創建 FTP 用戶

為了測試我們的 FTP 服務器,我們将創建一個新用戶。

如果您已經有一個要授予 FTP 訪問權限的用戶,請跳過第一步。

如果您allow_writeable_chroot=YES在配置文件中設置,請跳過第 3 步。

6.1 創建一個名為的新用戶newftpuser:

執行命令:sudo adduser newftpuser

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)22

6.2 将用戶添加到允許的 FTP 用戶列表:

執行命令:echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)23

6.3創建 FTP 目錄樹并設置正确的權限 :

執行命令1:sudo mkdir -p /home/newftpuser/ftp/upload

執行命令2:sudo chmod 550 /home/newftpuser/ftp

執行命令3:sudo chmod 750 /home/newftpuser/ftp/upload

執行命令4:sudo chown -R newftpuser: /home/newftpuser/ftp

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)24

如上一節所述,用戶将能夠将其文件上傳到ftp/upload目錄。

此時,您的 FTP 服務器功能齊全,您應該能夠使用任何可以配置為使用 TLS 加密的 FTP 客戶端(例如FileZilla )連接到您的服務器 。

7、禁用外殼訪問

默認情況下,創建用戶時,如果未明确指定,用戶将擁有對服務器的 SSH 訪問權限。

要禁用 shell 訪問,我們将創建一個新的 shell,它會簡單地打印一條消息,告訴用戶他們的帳戶僅限于 FTP 訪問。

創建/bin/ftponly外殼并使其可執行:

執行命令1:echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly

執行命令2:sudo chmod a x /bin/ftponly

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)25

将新的 shell 附加到/etc/shells文件中的有效 shell 列表中:

執行命令:echo "/bin/ftponly" | sudo tee -a /etc/shells

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)26

将用戶外殼更改為/bin/ftponly:

執行命令:sudo usermod newftpuser -s /bin/ftponly

ubuntu怎麼搭建ftp服務器(如何在Ubuntu18.04)27

使用相同的命令更改您隻想授予 FTP 訪問權限的所有用戶的 shell。

8、結論

在本教程中,您學習了如何在 Ubuntu 18.04 系統上安裝和配置安全快速的 FTP 服務器。

如果您有任何問題或反饋,請随時發表評論。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved