基於滴滴雲主機搭建 FTP 檔案共享伺服器(一)

java06051515發表於2018-12-13

FTP 簡單介紹

什麼是 FTP 伺服器?

FTP 伺服器(File Transfer Protocol Server)是在網際網路上提供檔案共享儲存和訪問服務的計算機,它們依照 FTP 協議提供服務。

FTP(File Transfer Protocol: 檔案傳輸協議)是一種 Internet 上用來傳送檔案的協議,支援這種協議的伺服器就是 FTP 伺服器。

常見 FTP 伺服器如下:

  • Windows:Serv-U FTP Server


  • Linux:oftpd、ftpd、vsftpd、pure-ftpd、proftpd、wu-ftpd、glftpd

功能比較簡單的有 ftpd 和 Oftpd,前者與 FTP 客戶端工具 FTP 類似,只有標準的功能,此外支援 SSL。Oftpd 是一款非常小巧的匿名 FTP 伺服器。

可配製型高階的主要是 vsftpd 和 pure-ftpd。 這兩個側重於安全、速度和輕量級,在大型 FTP 伺服器上用得比較多,尤其是 vsftpd,這類伺服器對使用者認證和許可權控制比較簡單,更注重安全型和速度。Pure-ftpd 相對 vsftpd 要強大一些,支援的使用者認證方式也比較多。

配置性更好的是 proftpd、wu-ftpd 和 glftpd。Proftpd 的配置方式跟 Apache 非常類似,支援虛擬伺服器,可針對目錄、虛擬使用者進行許可權配製,可繼承和覆蓋。

今天主要介紹 VSFTP。

VSFTP 是一個基於 GPL 釋出的類 Unix 系統上使用的 FTP 伺服器軟體,它的全稱是 Very Secure FTP,它的優勢就是安全、高速、穩定的 FTP 伺服器。接下來介紹如何搭建這個檔案共享伺服器。

開始安裝

首先安裝 VSFTP

安裝前檢查一下包是否已經安裝,如下:

如果沒有安裝,使用如下方式安裝:

接著安裝 LFTP,這個可以用來登入瀏覽 FTP 共享文件:

以上兩個都輸入 y 安裝即可, 滴滴雲 已經提供專業的 yum 安裝源,您可以放心的安裝相關服務。當然了,除了 yum 的安裝方式之外,您還可以選擇從官方下載原始碼或者 RPM 包來安裝,RPM 安裝命令:

  rpm   - ivh   / home / demo / vsftpd - 3.0.2 - 22.el7.x86_64.rpm

這根據您的使用方式來選擇,哪個方便使用哪個安裝。

開始配置

配置檔案位置

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置檔案

/etc/vsftpd/ftpusers:用於指定哪些使用者不能訪問 FTP 伺服器,是個黑名單

/etc/vsftpd/user_list:指定允許使用 vsftpd 的使用者列表檔案,是個白名單

vim /etc/vsftpd/user_list

# 如果  userlist_deny= YES (預設),不允許在這個檔案中的使用者登入 FTP,甚至不提示輸入密碼

# prompt 提示

/etc/vsftpd/vsftpd_conf_migrate.sh:是 vsftpd 操作的一些變數和設定指令碼

/var/ftp/:預設情況下匿名使用者的根目錄,其目錄如下:

服務啟動

我們先不做配置的情況下,看看預設能做什麼事情,啟動服務:

滴滴雲 主機預設安全組沒有開啟 21 埠,具體如何開啟參考 滴滴雲 官網介紹,開啟後如下:

訪問

以 mac 為例,mac 上自帶客戶端工具,其他作業系統也可以使用瀏覽器、資料夾資源管理器等工具進行訪問。

訪問協議字首都是  ftp://IP 地址 ,埠一般都是預設埠,開啟 mac 上的自帶工具 Finder,選擇前往,再選擇連線伺服器,如下:

進入如下介面,輸入 FTP 伺服器資訊:

預設只能使用匿名使用者訪問,如圖:

成功後如下圖:

下面做一些配置:
允許所有員工上傳和下載檔案,並允許建立使用者自己的目錄:

anon_mkdir_write_enable  欄位可以控制是否允許匿名使用者建立目錄。

檢視並備份原配置檔案:

允許匿名使用者訪問:

  anonymous_enable = YES

允許匿名使用者上傳檔案並可以建立目錄:

  anon_upload_enable = YES

  anon_mkdir_write_enable = YES

如圖:

重新啟動服務:

  [ root @ 10 - 255 - 1 - 40   vsftpd ] # systemctl restart vsftpd

  [ root @ 10 - 255 - 1 - 40   vsftpd ] #

mac 終端:

Windows 資源管理器:

解決辦法:

修改完後,再次訪問:

但是發現,能建立目錄,但不能刪除和重新命名資料夾,如圖所示:
 

我們建立一個資料夾,如下:

匿名使用者上傳檔案就算可以了,但是不能刪除和重新命名。

注:工作中,匿名使用者只是只讀訪問,寫的許可權也沒有的。

補充:如果想讓匿名使用者可以重新命名或者刪除的許可權,新增如下一條配置引數,即  anon_other_write_enable ,如下:

重新啟動服務就可以對重新命名和刪除資料夾了。

  [ root @ 10 - 255 - 1 - 40   ftp ] # systemctl restart vsftpd

匿名使用者就可以刪除和修改,非常不安全,所以要慎重使用這個引數。

注意,預設匿名使用者家目錄的許可權是 755,這個許可權是不能改變的。

實戰演練

假設現有兩個部門負責產品文件,他們分別使用 user1 和 user2 帳號進行管理。要求只允許 user1 和 user2 帳號登入 FTP 伺服器,但不能登入本地系統,並將這兩個帳號的目錄限制為  /home/test ,而且不能進入該目錄以外的任何目錄。

1.建立產品系統內容的 FTP 帳號 user1 和 user2 並禁止本地登入,然後設定其密碼

  [ root @ 10 - 255 - 1 - 40   ftp ] # useradd -s /sbin/nologin user1

同樣建立user2使用者。

修改兩個使用者密碼:

將 user2 同樣更改密碼,也可以直接使用命令 passwd user1 回車修改密碼。

2.配置  vsftpd.conf  主配置檔案並作相應修改

  [ root @ 10 - 255 - 1 - 40   ftp ] # vim /etc/vsftpd/vsftpd.conf

繼續修改,將:

修改為:

local_root=/home/test:設定本地使用者的根目錄為  /home/test
chroot_list_enable=YES:激 chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:設定鎖定使用者在根目錄中的列表檔案。此檔案存放要鎖定的使用者名稱

儲存並退出。

3.建立  /etc/vsftpd/chroot_list  檔案,新增 user1 和 user2 帳號

按照上述配置修改好檔案。

建立對應文件目錄:

使用資源管理器建立一個資料夾並驗證:

會出現如下登入介面:

隨便建立一個目錄,如下:

基本的測試完了,歡迎拍磚。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559758/viewspace-2284766/,如需轉載,請註明出處,否則將追究法律責任。

相關文章