VsftpdVsftpd中Vs的意思是“Verysecure”。從名稱可以看出,軟件的編寫(xiě)者非常注重其安全性。據(jù)官方網(wǎng)站的數(shù)據(jù),一臺(tái)Vsftpd服務(wù)器最多可以支持1500個(gè)并發(fā)用戶。24小時(shí)可以保存2.6TB數(shù)據(jù)。Vsftpd服務(wù)器的文件結(jié)構(gòu)如表1所示。
表1Vsftpd服務(wù)器的文件結(jié)構(gòu)
配置文件名稱功能說(shuō)明/usr/sbin/vsftpdVsftpd的主程序 /etc/rc.d/init.d/vsftpd啟動(dòng)腳本/etc/vsftpd/vsftpd.conf主配置文件 /etc/pam.d/vsftpdPAM認(rèn)證文件 /etc/vsftpd.ftpusers禁止使用Vsftpd的用戶列表文件 /etc/vsftpd.user_list禁止或允許使用Vsftpd的用戶列表文件 /var/ftp匿名用戶主目錄 /var/ftp/pub 匿名用戶的下載目錄/etc/logrotate.d/vsftpd.logVsftpd的日志文件
此外,還有一些說(shuō)明文檔和手冊(cè)文件。
1了解日志文件
了解日志文件對(duì)于故障排除非常重要,這里介紹詳細(xì)設(shè)置方法。vsftpd與log有關(guān)的選項(xiàng):
vsftpd_log_file
xferlog_enable
xferlog_std_format
xferlog_file
dual_log_enable
syslog_enable
log_ftp_protocol
no_log_lock
在介紹之前,我們來(lái)看看vsftp中關(guān)于日志記錄的參數(shù)。
xferlog_enable=yes/no//是否啟用xferlog日志格式
xferlog_std_format=yes/no//是否采用標(biāo)準(zhǔn)格式記錄日志
xferlog_file=/path/to/logfile//xferlog日志文件所在位置,默認(rèn)為/var/log/xferlog
上面的參數(shù)設(shè)置記錄xferlog日志的格式。這是早期Wu-ftpd服務(wù)的日志格式,它會(huì)記錄上傳和下載的動(dòng)作。vsftpd也有專有的日志格式,用下列參數(shù)設(shè)置:
dual_log_enable=yes/no//是否采用Vsftpd自己的日志記錄方式
log_ftp_protocol=yes/no//是否記錄所有的ftp命令日志vsftpd_log_file=/path/to/logfile//指定vsftpd日志文件位置,默認(rèn)為/var/log/vsftpd.log,xferlog_enable的默認(rèn)值為no(vsftpd提供的配置文件模版將其值改為了yes),dual_log_enable的默認(rèn)值也為no,就是說(shuō)默認(rèn)情況下vsftpd是不記錄日志的。我們也可以將日志信息寫(xiě)入系統(tǒng)日志/var/log/messages中,使用如下參數(shù):
syslog_enable=yes/no
下面是一個(gè)xferlog日志文件的內(nèi)容:
ThuMar408:12:3020081202.114.40.24237/incoming/index.htmla_oaguest@my.netftp0*c
第一行各個(gè)數(shù)據(jù)參數(shù)如下表
記錄數(shù)據(jù)參數(shù)說(shuō)明ThuMar408:12:302008當(dāng)前服務(wù)器本地時(shí)間,格式:"DDDMMMddhh:mm:ssYYYY"1傳輸文件時(shí)間,單位秒202.114.40.242遠(yuǎn)程主機(jī)IP地址/incoming/index.html傳輸文件名稱,包括路徑a傳輸類型包括:a:ascii碼傳輸,b:二進(jìn)制文件傳輸_特殊處理標(biāo)志:-:沒(méi)有處理C:文件壓縮U:文件不壓縮T:文件tar格式o文件傳輸方向o:從服務(wù)器到客戶端i:從客戶端到服務(wù)器a訪問(wèn)模式:a:匿名的用戶g:來(lái)賓用戶r:本地用戶即系統(tǒng)用戶guest@my.net用戶名稱ftp服務(wù)類型0認(rèn)證方式包括:1rfc931認(rèn)證0:沒(méi)有進(jìn)行認(rèn)證*認(rèn)證用戶的idc完成狀態(tài):c完全的傳輸轉(zhuǎn)移。i:沒(méi)有完成傳輸
2vsftp常見(jiàn)故障排除
1日志文件文件出現(xiàn)錯(cuò)誤信息“500OOPS:vsftpd:notfound:directorygivenin'secure_chroot_dir':/usr/share/empty”。
解決方法:vsftpd.conf添加一行:
secure_chroot_dir=/opt/usr/share/empty
建立一個(gè)目錄
mkdir/opt/usr/share/empty
然后關(guān)閉匿名登錄把vsftpd.conf
中的anonymous_enable=YES
修改為
anonymous_enable=NO
2怎么配置vsftpd來(lái)chroot虛擬用戶?
解決方法:
當(dāng)嘗試在vsftpd下chroot虛擬用戶的時(shí)候,需要這樣做:在vsftpd.conf里
guest_enable=yes
#virtualusersaremappedtouserftpwhichownsalldirs
guest_username=ftp
#chrootsthevirtualusertohisdirectory(userjoehasdirectoryjoe)
chroot_local_user=YES
user_sub_token=$USER
關(guān)鍵的事情是確保在/etc/passwd的ftp用戶的主目錄實(shí)際上包含在/var/ftp/$USER里的字符串$USER守護(hù)進(jìn)程會(huì)做一個(gè)簡(jiǎn)單的字符串匹配比較,來(lái)決定到哪里替換用戶的名字。
3vsftp中怎樣限制用戶只能在自己的home目錄下?
解決方法:
有些時(shí)候你不想讓FTP用戶可以訪問(wèn)他自己home目錄之外的其他文件。vsftp守護(hù)進(jìn)程可以通過(guò)chroot配置這個(gè)策略。編輯/etc/vsftpd/vsftpd.conf文件,添加一行:
chroot_local_user=YES
保存之后記得重啟vsftpd服務(wù):
servicevsftpdrestart
重啟服務(wù)之后,F(xiàn)TP所有用戶都將受限制,只能訪問(wèn)他們home目錄的文件了。
4如何修改vsftpd的默認(rèn)根目錄/var/ftp/pub到另一個(gè)目錄?
解決方法:修改ftp的根目錄只要修改/etc/vsftpd/vsftpd.conf文件即可:
加入如下兩行:
local_root=/var/www/html
chroot_local_user=YES
重新啟動(dòng)服務(wù):
servicevsftpdrestart
任何一個(gè)用戶ftp登錄到這個(gè)服務(wù)器上都會(huì)chroot到/var/www/html目錄下。
參考文獻(xiàn):
http://bsdftpd-ssl.sc.ru/doc/unix/xferlog.5.txt
http://vsftpd.beasts.org/vsftpd_conf.html
1日志文件文件出現(xiàn)錯(cuò)誤信息“500OOPS:vsftpd:notfound:directorygivenin'secure_chroot_dir':/usr/share/empty”。解決方法:vsftpd.conf添加一行:secure_chroot_dir=/opt/usr/share/empty建立一個(gè)目錄mkdir/opt/usr/share/empty然后關(guān)閉匿名登錄把vsftpd.conf中的anonymous_enable=YES修改為anonymous_enable=NO2怎么配置vsftpd來(lái)chroot虛擬用戶?解決方法:當(dāng)嘗試在vsftpd下chroot虛擬用戶的時(shí)候,需要這樣做:在vsftpd.conf里guest_enable=yes#virtualusersaremappedtouserftpwhichownsalldirsguest_username=ftp#chrootsthevirtualusertohisdirectory(userjoehasdirectoryjoe)chroot_local_user=YESuser_sub_token=$USER關(guān)鍵的事情是確保在/etc/passwd的ftp用戶的主目錄實(shí)際上包含在/var/ftp/$USER里的字符串$USER守護(hù)進(jìn)程會(huì)做一個(gè)簡(jiǎn)單的字符串匹配比較,來(lái)決定到哪里替換用戶的名字。3vsftp中怎樣限制用戶只能在自己的home目錄下?解決方法:有些時(shí)候你不想讓FTP用戶可以訪問(wèn)他自己home目錄之外的其他文件。vsftp守護(hù)進(jìn)程可以通過(guò)chroot配置這個(gè)策略。編輯/etc/vsftpd/vsftpd.conf文件,添加一行:chroot_local_user=YES保存之后記得重啟vsftpd服務(wù):servicevsftpdrestart重啟服務(wù)之后,F(xiàn)TP所有用戶都將受限制,只能訪問(wèn)他們home目錄的文件了。4如何修改vsftpd的默認(rèn)根目錄/var/ftp/pub到另一個(gè)目錄?解決方法:修改ftp的根目錄只要修改/etc/vsftpd/vsftpd.conf文件即可:加入如下兩行:local_root=/var/www/htmlchroot_local_user=YES重新啟動(dòng)服務(wù):servicevsftpdrestart任何一個(gè)用戶ftp登錄到這個(gè)服務(wù)器上都會(huì)chroot到/var/www/html目錄下。
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|