|  首頁
說明

GoDaddy 說明

噠啦噠啦噠...計算中...計算中...啟動序列 42...
啵啵嗶嗶啵… 機器人自動化中… 此網頁是經由機器人自動翻譯成您的本地語言。某些翻譯可能還不盡完善,我們需要您的幫助!使用頁面底部的按鈕告訴我們本文是否有幫助。 前往英語版本

如何設定 FTP 伺服器上 Ubuntu 14.04

了解如何設定完整功能和高度安全的 FTP 伺服器上 Ubuntu 是由非常簡單的重要元件少數和設定幾分鐘的時間。從匿名的 FTP 存取、 根目錄限制或使用 SSL 甚至完全加密的轉讓,教學會提供您需要先將架設快速取得您的 FTP 伺服器的所有基礎。

遇到問題 入門版-1 |中-2|進階-3
所需的時間 20 分鐘
相關的產品 Ubuntu 式 VPS 或專屬的伺服器

安裝 vsftpd

雖然還有適用於 Linux 的各種不同的 FTP 伺服器工具,其中最受歡迎和成人選項是vsftpd.

加入您的伺服器為根,開始 SSHing,並使用引起取得指令安裝vsftpd:

$ apt-get update
$ apt-get install vsftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
[...]
The following NEW packages will be installed:
  vsftpd
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
Need to get 111 kB of archives.
After this operation, 361 kB of additional disk space will be used.
Get:1 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main vsftpd amd64 3.0.2-1ubuntu2.14.04.1 [111 kB]
Fetched 111 kB in 0s (231 kB/s)
Preconfiguring packages ...
Selecting previously unselected package vsftpd.
(Reading database ... 175600 files and directories currently installed.)
Preparing to unpack .../vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb ...
Unpacking vsftpd (3.0.2-1ubuntu2.14.04.1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up vsftpd (3.0.2-1ubuntu2.14.04.1) ...
vsftpd start/running, process 18690
Processing triggers for ureadahead (0.100.0-16) ...

設定

下一步是變更 vsftpd 任何設定。最愛的文字編輯器開啟 /etc/vsftpd.conf 檔案:

$ nano /etc/vsftpd.conf

編輯檔案,因此,如下:

# Example config file /etc/vsftpd.conf
# ...
# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
#write_enable=YES
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES

以上所示的重要設定簡述如下:

  • listen=YES告訴 vsftpd 獨立協助程式 (取得和執行的最簡單方法) 以執行。 anonymous_enable = 否不允許匿名 FTP 用戶,通常會優先基於安全性,但可以啟用測試目的。
  • local_enable=YES允許定義的 FTP 伺服器 /etc/passwd 檔案存取任何使用者帳戶,而是如何多數 FTP 用戶會連接。
  • write_enable=YES被略過依預設,但移除雜湊 (#) 可讓 FTP 伺服器上傳的檔案。 chroot_local_user = 是他們的主目錄限制使用者,也依預設出色註。

若要開始您測試並確定可正常使用;,開始使用上述參數的下列設定:

listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES

儲存vsftpd.conf檔案重新啟動 vsftpd 服務,才能生效變更:

$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18954

測試您的 FTP 伺服器

快速判斷您的伺服器已正確安裝是註冊或執行,嘗試從您的有效殼層、 使用匿名的名稱和空白的密碼連線至 FTP 伺服器:

$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

同時anonymous_enablelocal_enable設定為 「 是 」 設定中,您應該能成功登入您的當地的 FTP 伺服器如以上所示 !

與的方式,只需輸入結束在 ftp > 提示取消:

ftp> quit
221 Goodbye.

使用測試完成,您也可停用匿名存取再次由設定anonymous_enable=NO/etc/vsftpd.conf檔案並重新啟動服務:

$ nano /etc/vsftpd.conf

編輯此類似檔案:

# Set to NO to disable anonymous access
anonymous_enable=NO
sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 18996

新增 FTP 用戶

如果是新的伺服器加入特定使用者 FTP 功能建議。這是很簡單的程序,但開始建立新的使用者:

$ sudo adduser foobar
Adding user `foobar' ...
Adding new group `foobar' (1000) ...
Adding new user `foobar' (1000) with group `foobar' ...
Creating home directory `/home/foobar' ...
Copying files from `/etc/skel' ...
$ Enter new UNIX password:
$ Retype new UNIX password:
passwd: password updated successfully
Changing the user information for foobar
$ Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
$ Y

使用加入新的使用者可以立即聯繫您的伺服器休旅車的 FTP 用戶端 FileZilla,例如,但您將會立即執行入錯誤:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    500 OOPS: vsftpd: refusing to run with writable root inside chroot()

「 500 糟糕 」 錯誤 vsftpd 傳回的安全措施旨在防止寫入依預設 FTP 用戶的 root 存取。 若要解決此問題有兩個主要選項可用。

允許寫入使用者 root 存取

最簡單方法是變更/etc/vsftpd.conf再次檔案,並啟用一個特定的設定:

$ nano /etc/vsftpd.conf

編輯檔案,因此,如下:

# Allow users to write to their root directory
allow_writeable_chroot=YES

與 allow_writeable_chroot 啟用服務 vsftpd 重新啟動之後,您可立即成功 FTP 到您的伺服器休旅車您新建的用戶身分:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    USER foobar
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.

使用可寫入子目錄

維護稍微安全性的其他選項是未啟用 allow_writeable_chroot 的上述,而在以寫入權限的使用者根目錄中建立新的子目錄:

$ sudo chown root:root /home/foobar
$ sudo mkdir /home/foobar/uploads
$ sudo chown foobar:foobar /home/foobar/uploads
$ sudo service vsftpd restart

現在當您休旅車連接至您的 FTP 伺服器新用戶,使用者會沒有寫入權限,根目錄,但而存取完整寫入相反地,到新建的上傳目錄上傳檔案。

保護您的 FTP 使用 SSL

雖然標準加密的 FTP 存取目前為止所述足夠許多情況下,透過 FTP 傳送敏感資訊時很有用利用使用 SSL 的更安全連線。

若要開始,您可能需要產生新的 SSL 憑證,以下列命令,擁有完成程序適當的提示:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

現在您必須確認該 vsftpd 並知道的 SSL 憑證。開啟/etc/vsftpd.conf再次檔案:

$ sudo nano /etc/vsftpd.conf

看起來的兩個 rsa_ 設定這,表示的 SSL 憑證已建立位置的檔案下方:

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

如果這些行不存在,或符合建立的 SSL 憑證的適當路徑,順利更新。

此外,還有的處理 SSL 連線,特別強制使用 TLS 通訊協定也就是理想的設定:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

部分設定是簡單易懂,但的重要元件 SSL,使用只 TLS,並允許匿名存取限制的整體啟用。

加入您的設定和儲存的檔案,您必須再次重新啟動 vsftpd 服務:

$ sudo service vsftpd restart

現在您的 FTP 伺服器已準備好接受使用 「 FTP 超過 TLS 」 加密的安全連線。使用例如 FileZilla 用戶端,您會提出憑證快顯畫面驗證新建的 SSL 憑證要求。

根據您現在會安全連接,並會透過 SSL 加密轉讓接受:

Status:    Connecting to 104.131.170.253:21...
Status:    Connection established, waiting for welcome message...
Response:    220 (vsFTPd 3.0.2)
Command:    AUTH TLS
Response:    234 Proceed with negotiation.
Status:    Initializing TLS...
Status:    Verifying certificate...
Command:    USER foobar
Status:    TLS/SSL connection established.
Response:    331 Please specify the password.
Command:    PASS ****************
Response:    230 Login successful.


這篇文章有用嗎?
感謝您提供意見。 若要與客戶服務代表聯絡,請撥打支援中心電話號碼,或使用上方的對話選項。
很高興能幫上忙! 還有什麼可幫您的嗎?
很抱歉有這種情形。 請告訴我們您不了解的部分,或解決方案無法解決您問題的原因。