天天看點

ftp伺服器進階配置

 1.ftps配置

       引導語:ftp和http一樣在預設情況下使用明文進行資料傳輸,如果希望保證ftp伺服器與用戶端資料通信的安全,可以使用ssl保護其資料通信。在vsftpd 2.0.1以後的版本裡提供了對ssl的支援,這也使得vsftpd變得更加安全。

1)建立一個用于存放證書的目錄

[root@host ~]# mkdir /etc/vsftpd/.sslkey

[root@host ~]# cd /etc/vsftpd/.sslkey/

2)使用如下指令建立證書,生成的vsftpd.pem檔案中即包含私鑰也包含證書。

openssl req -new -x509 -nodes -out vsftpd.pem  -keyout vsftpd.pem

<a href="http://blog.51cto.com/attachment/201211/171804358.jpg" target="_blank"></a>

3)為也保證證書檔案的安全,可修改證書存放目錄的權限:

[root@host vsftpd]# chmod -R 400 /etc/vsftpd/.sslkey/

4)修改/etc/vsftpd/vsftpd.conf檔案,添加如下内容:

force_local_data_ssl=YES     #指定vsftpd強制非匿名使用者使用加密的資料傳輸

force_local_logins_ssl=YES   #指定vsftpd強制非匿名使用者使用加密登入

ssl_enable=YES             #指定vsftpd支援加密協定

ssl_sslv2=YES              #指定vsftpd支援安全套接字層v2

ssl_sslv3=YES             #指定vsftpd支援安全套接字層v3

ssl_tlsv1=YES            #指定vsftpd支援tls加密方式v1

rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem  #指定證書的存放路徑

5)重新開機vsftpd後,ftps配置完成,本地使用者直接從指令行通路,發現出現如下530錯誤,無法登入:

<a href="http://blog.51cto.com/attachment/201211/171826591.jpg" target="_blank"></a>

6)隻有lftp指令和第三方工具才支援通路ftps。下面以FlashFXP為例講述如何連接配接到ftps。

a.打開FlashFXP後,選擇"站點"--&gt;"站點管理器",建立一個站點,如下圖:

<a href="http://blog.51cto.com/attachment/201211/171848953.jpg" target="_blank"></a>

b.輸入相關的資訊後,單擊連接配接,會出現如下:

<a href="http://blog.51cto.com/attachment/201211/171910410.jpg" target="_blank"></a>

注:對上圖(1)的解釋:因為沒有配置dns解析,即主機ip與域名的對應關系,故會有如上提示,可以修改hosts檔案(向hosts檔案中加入一行即192.168.142.2 ftp.liuyuan51.com)實作狀态正常。

c.選擇接受,即可連接配接了,哈哈,如下圖:ftps連接配接成功

<a href="http://blog.51cto.com/attachment/201211/171926427.jpg" target="_blank"></a>

2.虛拟使用者通路(通過本地資料檔案實作)

注意:第二個實驗虛拟使用者,不要在第一個基礎,要初始化vsftp伺服器配置。

通過本地資料檔案實作虛拟使用者通路,首先需要建立一個檔案,将所有使用者和密碼儲存到該檔案中,這種方法主要适用于使用者比較少及變化不頻繁的情況下,

1)需要安裝生成資料庫的軟體包db4-utils; yum install db4-utils;

2)生成虛拟使用者檔案,在該檔案中使用者及密碼各一行。本章中是建立/etc/vsftpd/ftpuser.txt

 test1   #虛拟使用者1

 123    #虛拟使用者1密碼

 test2   #虛拟使用者2

 456     #虛拟使用者2密碼

3)生成虛拟使用者資料檔案,處于安全考慮應修改生成的使用者資料檔案權限:

#db_load  -T -t hash -f /etc/vsftpd/ftpuser.txt   /etc/vsftpd/ftpuser.db

#chmod  600  /etc/vsftpd/ftpuser.db

4)修改PAM認證檔案/etc/pam.d/vsftpd,将原有内容注釋并加入以下内容,通過以下兩行的配置可以将認證使用者及使用者其他 檢查的工作的資料來源改變為本地資料檔案(/etc/vsftpd/ftpuser.db)

需要使用子產品/lib/security/pam_userdb.so

檢視該子產品的手冊:

#vim /usr/share/doc/pam-0.99.6.2/txts/README.pam_userdb,用法如下圖例子:

<a href="http://blog.51cto.com/attachment/201212/131413348.jpg" target="_blank"></a>

#vim /etc/pam.d/vsftpd

auth    required        /lib/security/pam_userdb.so     db=/etc/vsftpd/ftpuser

account required        /lib/security/pam_userdb.so     db=/etc/vsftpd/ftpuser

<a href="http://blog.51cto.com/attachment/201211/172220596.jpg" target="_blank"></a>

5)使用如下指令建立本地映射使用者,修改本地映射使用者家目錄權限:

#mkdir /var/ftp/vuser    (目錄的所有者是root,)

#useradd  -d /var/ftp/vuser  -s /sbin/nologin  vuser   -M

#chmod o=rwx  /var/ftp/vuser   (修改目錄的權限值使虛拟使用者可以上傳、下載下傳、切換目錄)

6)修改/etc/vsftpd/vstpd.conf檔案,内容如下:(檢視man手冊,man 5 vsftpd.conf)

#vim /etc/vsftpd/vsftpd.conf

guest_enable=YES         #允許虛拟使用者

guest_username=vuser     #将虛拟使用者映射為本地的vuser使用者 

pam_service_name=vsftpd  #pam認證檔案(預設就是vsftpd)

7)重新開機vsftpd,登入測試,

<a href="http://blog.51cto.com/attachment/201211/172236407.jpg" target="_blank"></a>

9)測試成功,虛拟使用者登入的均是ftp伺服器上的同一個目錄,即建立的本地映射使用者vuser的家目錄。

ftpusers  指定哪些使用者不能通路ftp伺服器

user_list 【userlist_deny=yes時不能通路ftp伺服器;userlist_deny=no時,僅僅允許/etc/user_list中指定的使用者通路ftp伺服器】

本文轉自 劉園  51CTO部落格,原文連結:http://blog.51cto.com/colynn/1049842

繼續閱讀