Linux 伺服器系統管理第九章 伺服器管理  上一頁    下一頁

9-3 檔案傳輸伺服器 - vsftpd

內容:

9-3-1 FTP 簡介

『檔案傳輸協定』(File Transfer Protocol, FTP)主要應用於異質性電腦之間,檔案相互傳輸使用。各類型電腦的檔案儲存格式,多半不會相同,所以檔案如果沒有經過特殊處理,異質電腦之間的檔案將很困難相互共享。而共享的機制必須透過裝置將共享檔案以某一種標準格式儲存(ASCII Image 格式),再利用某一種專屬協定(FTP 協定)讓共享檔案可以在不同電腦之間流通,此設備即是 FTP 系統。在 FTP 系統上,客戶端可透過網路由 FTP 伺服器下載或上傳檔案。上傳檔案時,FTP 伺服器會使用某一種標準格式儲存;下載時,檔案儲存到目的主機時,也會轉換成該主機的檔案格式,如圖 9-6 所示。

9-7 FTP 系統架構

標準 Unix/Linux 版本上的 FTP 伺服器,使用者都必須具有系統帳戶名稱及密碼才可以登入。但目前 Internet 網路上共享資源愈來愈多,而且都是無條件讓使用者下載使用,如需要帳戶名稱及密碼的話,將會嚴重限制使用者的方便性,因此,就有『匿名 FTP』(Anonymous FTP)的產生。在匿名 FTP 之下,使用者以 anonymous 為使用者名稱,再以電子郵遞帳號作為密碼便可登入,來從事檔案傳輸的工作,除非特殊網站,否則一般伺服器並不會真正去偵測帳號的真實性,只判斷是否有『@』便決定允許登入與否。許多廠商會將一般共享軟體或產品更新程式放置於匿名 FTP 網站,供客戶自由下載。

目前許多知名的 FTP 網站都使用 vsftpdvery secure FTP daemon)套件,相對的,許多 Linux Distributuion 也都將該套件列入所發行 Linux 系統的標準配備中。本書就以此套件來說明 FTP 伺服器的安裝與管理。

9-3-2 FTP 伺服器安裝

(A) 查詢 vsftpd 服務

查詢 vsftpd 服務是否以安裝,操作如下:

[root@tsnien ~]# systemctl  |  grep vsftpd

[root@tsnien ~]#                      [沒訊息表示沒有安裝]

上述結果表示系統還未安裝 vsftpd 套件。

(B) 安裝 vsftpd 伺服器

只要網路設定正常,yum 可以線上直接安裝,操作方法如下:

[root@tsnien ~]# yum  -y  install  vsftpd

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: ftp.tc.edu.tw

 * extras: ftp.tc.edu.tw

 * updates: ftp.tc.edu.tw

 

Complete!

安裝完成之後,可再查詢 vsftpd 是否,如下:

[root@tsnien ~]# systemctl  | grep  vsftpd   [雖已安裝,但還未被導入執行]

[root@tsnien ~]# rpm  -qa  |grep  vsftpd  [查詢套件是否已安裝]

vsftpd-3.0.2-21.el7.x86_64                 [套件已安裝]

[root@tsnien ~]# systemctl  start  vsftpd     [啟動 vsftpd 套件]

[root@tsnien ~]# systemctl  | grep  vsftpd     [查詢vsftpd 服務]

 vsftpd.service  loaded active running   Vsftpd ftp daemon  [vsftpd 執行中]

(C) 安裝客戶端工具

一般伺服器主機也允許當作 FTP 客戶端操作,因此,也需安裝 FTP 工具,操作如下:

[root@tsnien ~]# yum  -y  install  ftp

Loaded plugins: fastestmirror, langpacks

Installed:

  ftp.x86_64 0:0.17-67.el7

Complete!

 (D) 組態設定

vsftpd 套件係利用 /etc/vsftpd/vsftpd.conf 設定檔來規劃其運作環境,主要的設定項目是:(1) 是否允許匿名登入(除 FTP 操作者外,不允許上傳檔案)、(2) 是否允許建立個人 FTP 網站、與(3) 個人 FTP 網站是否允許上傳檔案(內定值都是允許的,大多不需要修改)。

操作命令:# vi /etc/vsftpd/vsftpd.conf  (利用 vi 編輯,僅列出部分檔案)

Example config file /etc/vsftpd/vsftpd.conf

#

# The default compiled in settings are fairly paranoid. This sample file

# loosens things up a bit, to make the ftp daemon more usable.

……

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=YES                      【允許匿名登入】

#

# 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                          【允許個人網站上傳檔案】

……

 (E) 設定匿名 FTP 網站

匿名 FTPAnonymous FTP)網站也是需要適當的限制,譬如是否允許使用者上傳檔案,或建立新目錄,都是由 /etc/vsftpd/vsftpd.conf 檔案設定,設定範例如下:(內定值大多是不允許的,僅列出部分檔案)

……

# Uncomment this to allow the anonymous FTP user to upload files. This only

# has an effect if the above global write enable is activated. Also, you will

# obviously need to create a directory writable by the FTP user.

#anon_upload_enable=YES             【前面是 # 號表示沒有開放】

#

# Uncomment this if you want the anonymous FTP user to be able to create

# new directories.

#anon_mkdir_write_enable=YES         【前面是 # 號表示沒有開放】

……

另外,匿名網站所儲存的位置是在 /var/ftp/pub 目錄下 FTP 管理者或該目錄擁有者可上傳檔案供匿名使用者下載。

(F) 開啟防火牆 - ftp 埠口

開啟防火牆的 ftp 埠口,如下:

[root@localhost ~]# firewall-cmd --add-service=ftp --permanent

success

[root@localhost ~]# firewall-cmd --reload

success

(G) 重新啟動 vsftpd

更改組態檔案後,須重新啟動才有效,如下:

[root@tsnien ~]# systemctl  restart  vsftpd       [重新啟動 vsftpd]

[root@tsnien ~]#

(H) 設定開機啟動 - setup

(I) FTP 使用者管理

/etc/vsftpd/ 目錄下,有兩個管理 FTP 使用者的設定檔,如下:

  • ftpusers此檔案所記錄的帳戶名稱,將不允許登入 FTP 伺服器。

  • user_list如果系統變數 userlist_deny=no,表示允許此檔案內所記錄的帳戶可以登入 FTP 伺服器;相反的 userlist_deny=yes(內定值),則表示不允許登入。

所謂允許登入 FTP 的意思是允許該帳戶名稱建立個人 FTP 網站,不允許登入,則不允許建立個人網站。

9-3-3 Windows客戶端操作

vsftpd 服務啟動後,每一個使用者的家目錄(Home directory),即是該使用者的個人 FTP 網站位置。登入時,必須輸入使用者名稱與密碼;以 student01 使用者為例,其家目錄為 /home/student01,客戶端可利用下列兩種方法上傳或下載檔案。

(A) FileZilla Client 操作

目前免費 FTP 傳輸工具以 FileZilla 最為普遍使用,可利用 Google 搜尋並下載安裝,如下:

安裝後,即可啟動上傳或下載檔案:

(B) FTP 命令 操作

Windows 工作站或 Unix/Linix 系統上,命令登入如下:

D:\>ftp                           [鍵入 ftp 命令]

ftp> open 120.119.165.113            [鍵入 open IP 位址]

 

Connected to 120.119.165.113.

220 (vsFTPd 2.3.4)

User (120.119.165.113:(none)): tsnien     [鍵入使用者名稱]

331 Please specify the password.

Password:********

230 Login successful.

ftp> ls                               [鍵入 shell 命令]

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

Backup2013_04_15

ftp> pwd                               [鍵入 pwd 命令]

257 "/home/tsnien"

257 "/home/tsnien"

ftp>

其中『?』命令是 Help 的功能,它會顯示出所有 FTP 命令,我們大略由上列命令名稱來知道它的功能為何,但是我們還是將較常用的命令條列如表 9-1

9-1 常用的 FTP 命令

命令名稱

        

?

顯示命令(help)。

!

執行本機命令,如 ! ls 表示執行本機上的 ls 命令。

ascii

設定 ASCII 模式傳輸,使用於文字檔案傳輸。

binary

設定二進位模式傳輸,一般使用於執行檔或影像檔傳輸。

bye

結束 FTP 連線。

cd

切換伺服器的工作目錄。

close

關閉 FTP 連線。

debug

進入偵錯模式。

delete

刪除遠端伺服器檔案。

dir

顯示遠端伺服器工作目錄下的檔案和目錄清單。

get

下載一個檔案

mdelete

刪除多個遠端檔案。

mget

下載多個檔案。

mkdir

在遠端伺服器建立目錄。

mput

上傳多個檔案到遠端伺服器。

open

開啟 FTP 連線。

put

上傳一個檔案到遠端伺服器。

pwd

顯示目前遠端伺服器的工作目錄。

rmdir

刪除遠端伺服器的目錄。

status

顯示目前連線狀態。

type

設定檔案傳輸模式。

user

登入 FTP 伺服器使用者名稱(如 user tsnien)。

9-3-4 匿名 FTP 管理

匿名 FTP (Anonymous FTP) 允許使用者以 Anonymous 帳號登入,密碼僅有 "@" 記號的 E-mail 帳號即可(系統不會檢查真偽)。應用於公用檔案讓一般用戶下載,客戶端不需要在系統上建立帳號即可下載檔案,但吾人大多會限制其被上傳檔案的功能( 9-2-3 敘述)Anonymous FTP 公用檔案儲存於 /var/ftp/pub 目錄下,需具有 root 權限才可以上傳檔案,但 vsftpd 安裝後,自動限制 root 登入 FTP 功能,因此,需編輯 /etc/vsftpd/ftpusers /etc/vsftpd/user_list 兩檔案。

(A) 開啟 root FTP 登入

編輯 /etc/vsftpd/ftpusers /etc/vsftpd/user_list 兩檔案,以 # vi /etc/vsftp/ftpusers 為例,如下:

# Users that are not allowed to login via ftp

# root    (前面加入 # )

bin

daemon

adm

lp

sync

.....

(B) 上傳公用檔案 - root

開啟 FilleZilla 後,以 root 帳號登入,並上傳一個檔案到 /var/ftp/pub 目錄下。

(C) Chrome 瀏覽器下載 - Windows

客戶端可利用瀏覽器直接下載公用檔案,如下:(ftp://192.168.1.107)

翻轉工作室:粘添壽

 

Linux 伺服器系統管理 - CentOS:

 

 

 

翻轉電子書系列: