Vsftpd配置詳解之Vsftpd配置下高級(jí)操作
vsftpd 配置下高級(jí)操作
這一次我們介紹一下 vsftpd的其它一些知識(shí),其中包括:雙模式切換、基于ip的虛擬ftp 站點(diǎn)、基于數(shù)據(jù)庫(kù)虛擬用戶建立及管理、基于 OpenSSL 的加密數(shù)據(jù)傳輸。
1. vsftpd 雙模式切換
前面我們提過(guò), vsftpd 服務(wù)是支持在linux下的兩種服務(wù)模式:獨(dú)立(standalone)模式和守護(hù)進(jìn)程(xinetd)模式。在 standalone 模式下,vsftpd進(jìn)程啟動(dòng)后會(huì)一直占用系統(tǒng)資源,當(dāng)有連接請(qǐng)求時(shí),它會(huì)迅速反應(yīng);在xinetd模式下,ftp服務(wù)是由守護(hù)進(jìn)程統(tǒng)一管理,當(dāng)出現(xiàn) ftp連接請(qǐng)求時(shí),守護(hù)進(jìn)程才將ftp服務(wù)啟動(dòng),這種方式***的優(yōu)點(diǎn)是沒(méi)有連接的時(shí)候ftp服務(wù)不會(huì)占用系統(tǒng)資源,處于睡眠狀態(tài),但因?yàn)橐ㄙM(fèi)時(shí)間去喚醒該服務(wù),所以響應(yīng)時(shí)間較長(zhǎng) 。
之前做的試驗(yàn)一直是把 vsftpd 做在獨(dú)立模式下,下面我們把它移到守護(hù)進(jìn)程下。注意在工作在守護(hù)進(jìn)程下時(shí),有的參數(shù)并不起作用,詳細(xì)請(qǐng)查閱vsftpd 幫助信息 (man vsftpd.conf)。
我們需要在守護(hù)進(jìn)程配置目錄 /etc/xinetd.d/里建立vsftpd 的守護(hù)進(jìn)程文件。我們?cè)诎惭b時(shí)已經(jīng)將該文件考到/etc/xinetd.d/目錄下了。我們稍稍修改其內(nèi)容:
- #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
- }
接下來(lái)把配置文件中的 listen=yes或listen_ipv6=yes去掉,停掉vsftpd服務(wù),重啟xinetd服務(wù):
# sesrvice vsftpd stop
# service xinetd restart
重新啟動(dòng)守護(hù)進(jìn)程后, vsftpd 服務(wù)就會(huì)讓守護(hù)進(jìn)程來(lái)管理了。在守護(hù)進(jìn)程管理過(guò)程中,我們?cè)傩薷闹髋渲梦募脑?,就不需要重新啟?dòng)服務(wù)了。
2. 基于 IP 的虛擬 ftp 站點(diǎn)
這一小節(jié)我們來(lái)討論在同一服務(wù)器上建立多個(gè) ftp站點(diǎn),每個(gè)站點(diǎn)相互獨(dú)立,擁有獨(dú)立的配置文件。當(dāng)然服務(wù)器必須有兩個(gè)以上的IP地址。在standalone模式下,我們可以考慮啟動(dòng)多個(gè)ftp服務(wù)進(jìn)程;在xinetd模式下,可以讓守護(hù)進(jìn)程來(lái)管理。下面我們分別討論這兩種情況。為簡(jiǎn)單起見(jiàn),我們?cè)诜?wù)器上建立兩個(gè)匿名虛擬站點(diǎn)。下面是這兩個(gè)站點(diǎn)的信息:
站點(diǎn) 1
站點(diǎn) 2
ip 地址
192.168.0.105
192.168.0.106
主配置文件
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd2.conf
匿名用戶映射的本地用戶名
默認(rèn)為 ftp
新建立 ftp2
匿名用戶主目錄
/var/ftp/
/var/ftp2/
standalone 模式下虛擬站點(diǎn)的建立
首先我們修改站點(diǎn) 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
站點(diǎn) 1就這樣配置完畢了。接下來(lái)為站點(diǎn)2建立ftp2的用戶:
- # mkdir /var/ftp2/
- # useradd -d /var/ftp2/ ftp2
為了讓站點(diǎn) 2知道匿名用戶的主目錄為/var/ftp2,我們需要在配置文件中手動(dòng)指定站點(diǎn)2使用ftp2用戶登錄,于是我們要用到下面這條語(yǔ)句:
- ftp_username=local_username
建立站點(diǎn) 2的配置文件/etc/vsftpd/vsftpd2.conf,內(nèi)容如下:
- 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
接下來(lái)我們啟動(dòng) vsftpd服務(wù),就可以看到效果了。需要注意的是這里就不能用service vsftpd start命令來(lái)啟動(dòng)服務(wù)了,必須用第三節(jié)前面介紹的方式啟動(dòng)。
- # /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
- ……
我們?cè)诟髯缘呐渲梦募O(shè)置了不同的 banner,上面已經(jīng)看到效果了。
守護(hù)進(jìn)程模式下虛擬站點(diǎn)的建立
在 standalone模式下,IP的綁定在配置文件里配置了,配置文件名及其位置在啟動(dòng)服務(wù)的命令參數(shù)里指定;在xinetd模式下,這兩步需要在守護(hù)進(jìn)程配置文件里配置。這樣在守護(hù)進(jìn)程里面我們就得用到這兩個(gè)設(shè)置:
bind= 綁定的ip
server_args= 每個(gè)站點(diǎn)的配置文件
那么我們來(lái)做守護(hù)進(jìn)程文件,首先來(lái)寫站點(diǎn) 1的守護(hù)進(jìn)程文件:
- # 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
- }
再建立站點(diǎn) 2的守護(hù)進(jìn)程文件,并輸入下面的內(nèi)容
- # 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
- }
這樣兩個(gè)守護(hù)進(jìn)程文件就寫完了,用戶也在上個(gè)試驗(yàn)已經(jīng)建立完了。接下來(lái)繼續(xù)修改兩個(gè)站點(diǎn)的配置文件,均是把 listen、listen_address兩行刪去即可?,F(xiàn)在我們可以重新啟動(dòng)xinetd服務(wù),測(cè)試結(jié)果就不貼出來(lái)了。
【編輯推薦】