Vsftpd配置詳解之Vsftpd配置下高級操作
vsftpd 配置下高級操作
這一次我們介紹一下 vsftpd的其它一些知識,其中包括:雙模式切換、基于ip的虛擬ftp 站點、基于數據庫虛擬用戶建立及管理、基于 OpenSSL 的加密數據傳輸。
1. vsftpd 雙模式切換
前面我們提過, vsftpd 服務是支持在linux下的兩種服務模式:獨立(standalone)模式和守護進程(xinetd)模式。在 standalone 模式下,vsftpd進程啟動后會一直占用系統資源,當有連接請求時,它會迅速反應;在xinetd模式下,ftp服務是由守護進程統一管理,當出現 ftp連接請求時,守護進程才將ftp服務啟動,這種方式***的優點是沒有連接的時候ftp服務不會占用系統資源,處于睡眠狀態,但因為要花費時間去喚醒該服務,所以響應時間較長 。
之前做的試驗一直是把 vsftpd 做在獨立模式下,下面我們把它移到守護進程下。注意在工作在守護進程下時,有的參數并不起作用,詳細請查閱vsftpd 幫助信息 (man vsftpd.conf)。
我們需要在守護進程配置目錄 /etc/xinetd.d/里建立vsftpd 的守護進程文件。我們在安裝時已經將該文件考到/etc/xinetd.d/目錄下了。我們稍稍修改其內容:
- #vi /etc/xinetd.d/vsftpd
- service ftp
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /usr/local/sbin/vsftpd
- server_args = /etc/vsftpd/vsftpd.conf
- nice = 10
- }
接下來把配置文件中的 listen=yes或listen_ipv6=yes去掉,停掉vsftpd服務,重啟xinetd服務:
# sesrvice vsftpd stop
# service xinetd restart
重新啟動守護進程后, vsftpd 服務就會讓守護進程來管理了。在守護進程管理過程中,我們再修改主配置文件的話,就不需要重新啟動服務了。
2. 基于 IP 的虛擬 ftp 站點
這一小節我們來討論在同一服務器上建立多個 ftp站點,每個站點相互獨立,擁有獨立的配置文件。當然服務器必須有兩個以上的IP地址。在standalone模式下,我們可以考慮啟動多個ftp服務進程;在xinetd模式下,可以讓守護進程來管理。下面我們分別討論這兩種情況。為簡單起見,我們在服務器上建立兩個匿名虛擬站點。下面是這兩個站點的信息:
站點 1
站點 2
ip 地址
192.168.0.105
192.168.0.106
主配置文件
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd2.conf
匿名用戶映射的本地用戶名
默認為 ftp
新建立 ftp2
匿名用戶主目錄
/var/ftp/
/var/ftp2/
standalone 模式下虛擬站點的建立
首先我們修改站點 1的配置文件/etc/vsftpd/vsftpd.conf為下面所示:
- listen=yes
- listen_address=192.168.0.105
- anonymous_enable=yes
- local_enable=yes
- pam_service_name=vsftpd
- write_enable=yes
- ftpd_banner=This is ftp1 site
站點 1就這樣配置完畢了。接下來為站點2建立ftp2的用戶:
- # mkdir /var/ftp2/
- # useradd -d /var/ftp2/ ftp2
為了讓站點 2知道匿名用戶的主目錄為/var/ftp2,我們需要在配置文件中手動指定站點2使用ftp2用戶登錄,于是我們要用到下面這條語句:
- ftp_username=local_username
建立站點 2的配置文件/etc/vsftpd/vsftpd2.conf,內容如下:
- listen=yes
- listen_address=192.168.0.106
- anonymous_enable=yes
- local_enable=yes
- pam_service_name=vsftpd
- write_enable=yes
- ftp_username=ftp2
- ftpd_banner=This is ftp2 site
接下來我們啟動 vsftpd服務,就可以看到效果了。需要注意的是這里就不能用service vsftpd start命令來啟動服務了,必須用第三節前面介紹的方式啟動。
- # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &
- [1] 2287
- # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd2.conf &
- [1] 2288
- # ftp 192.168.0.105
- Connected to 192.168.0.105.
- 220 This is ftp1 site
- 530 Please login with USER and PASS.
- ……
- # ftp 192.168.0.106
- Connected to 192.168.0.106.
- 220 This is ftp2 site
- ……
我們在各自的配置文件設置了不同的 banner,上面已經看到效果了。
守護進程模式下虛擬站點的建立
在 standalone模式下,IP的綁定在配置文件里配置了,配置文件名及其位置在啟動服務的命令參數里指定;在xinetd模式下,這兩步需要在守護進程配置文件里配置。這樣在守護進程里面我們就得用到這兩個設置:
bind= 綁定的ip
server_args= 每個站點的配置文件
那么我們來做守護進程文件,首先來寫站點 1的守護進程文件:
- # vi /etc/xinetd.d/vsftpd
- service ftp
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /usr/local/sbin/vsftpd
- server_args = /etc/vsftpd/vsftpd.conf
- nice = 10
- bind = 192.168.0.105
- }
再建立站點 2的守護進程文件,并輸入下面的內容
- # vi /etc/xinetd.d/vsftpd2
- service ftp
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /usr/local/sbin/vsftpd
- server_args = /etc/vsftpd/vsftpd2.conf
- nice = 10
- bind = 192.168.0.106
- }
這樣兩個守護進程文件就寫完了,用戶也在上個試驗已經建立完了。接下來繼續修改兩個站點的配置文件,均是把 listen、listen_address兩行刪去即可。現在我們可以重新啟動xinetd服務,測試結果就不貼出來了。
【編輯推薦】