一、主動(dòng)被動(dòng)模式
二、配置參數(shù)
1. 登錄和對(duì)匿名用戶的設(shè)置
|
|
write_enable=YES |
是否對(duì)登錄用戶開啟寫權(quán)限授霸。屬全局性設(shè)置里烦。默認(rèn)NO |
local_enable=YES |
是否允許本地用戶登錄FTP服務(wù)器坊夫。默認(rèn)為NO |
anonymous_enable=YES |
設(shè)置是否允許匿名用戶登錄FTP服務(wù)器凛辣。默認(rèn)為YES |
ftp_username=ftp |
定義匿名用戶的賬戶名稱,默認(rèn)值為ftp废封。 |
no_anon_password=YES |
匿名用戶登錄時(shí)是否詢問(wèn)口令貌踏。設(shè)置為YES十饥,則不詢問(wèn)。默認(rèn)NO |
anon_world_readable_only=YES |
匿名用戶是否允許下載可閱讀的文檔祖乳,默認(rèn)為YES逗堵。 |
anon_upload_enable=YES |
是否允許匿名用戶上傳文件。只有在write_enable設(shè)置為 YES時(shí)眷昆,該配置項(xiàng)才有效蜒秤。而且匿名用戶對(duì)相應(yīng)的目錄必須有寫權(quán)限。默認(rèn)為NO亚斋。 |
anon_mkdir_write_enable=YES |
是否允許匿名用戶創(chuàng)建目錄作媚。只有在write_enable設(shè)置為YES時(shí)有效。且匿名用戶對(duì)上層目錄有寫入的權(quán)限伞访。默認(rèn)為NO掂骏。 |
anon_other_write_enable=NO |
若設(shè)置為YES,則匿名用戶會(huì)被允許擁有多于上傳和建立目錄的權(quán)限厚掷,還會(huì)擁有刪除和更名權(quán)限弟灼。默認(rèn)值為NO。 |
2. 登錄和對(duì)匿名用戶的設(shè)置
用戶登錄FTP服務(wù)器成功后冒黑,服務(wù)器可向登錄用戶輸出預(yù)設(shè)置的歡迎信息田绑。
|
|
ftpd_banner=Welcome to my FTP server. |
用戶登錄FTP服務(wù)器成功后,服務(wù)器可向登錄用戶輸出預(yù)設(shè)置的歡迎信息抡爹。 |
banner_file=/etc/vsftpd/banner |
設(shè)置用戶登錄時(shí)掩驱,將要顯示輸出的文件。該設(shè)置項(xiàng)將覆蓋ftpd_banner的設(shè)置冬竟。 |
dirmessage_enable=YES |
設(shè)置是否顯示目錄消息欧穴。若設(shè)置為YES,則當(dāng)用戶進(jìn)入特定目錄(比如/var/ftp/linux)時(shí)泵殴,將顯示該目錄中的由message_file配置項(xiàng)指定的文件(.message)中的內(nèi)容涮帘。 |
message_file=.message |
設(shè)置目錄消息文件⌒ψ纾可將顯示信息存入該文件调缨。該文件需要放在 相應(yīng)的目錄(比如/var/ftp/linux)下 |
3. 設(shè)置用戶登錄后所在的目錄
|
|
local_root=/var/ftp |
設(shè)置本地用戶登錄后所在的目錄疮鲫。默認(rèn)配置文件中沒(méi)有設(shè)置該項(xiàng),此時(shí)用戶登錄FTP服務(wù)器后弦叶,所在的目錄為該用戶的主目錄俊犯,對(duì)于root用戶,則為/root目錄伤哺。 |
anon_root=/var/ftp |
設(shè)置匿名用戶登錄后所在的目錄燕侠。若未指定,則默認(rèn)為/var/ftp目錄立莉。 |
4. 控制用戶是否允許切換到上級(jí)目錄
在默認(rèn)配置下贬循,用戶可以使用“cd..”命名切換到上級(jí)目錄。比如桃序,若用戶登錄后所在的目錄為/var/ftp,則在“ftp>”命令行 下烂瘫,執(zhí)行“cd..”命令后媒熊,用戶將切換到其上級(jí)目錄/var,若繼續(xù)執(zhí)行該命令坟比,則可進(jìn)入Linux系統(tǒng)的根目錄芦鳍,從而可以對(duì)整個(gè)Linux的文件系統(tǒng) 進(jìn)行操作。
若設(shè)置了write_enable=YES葛账,則用戶還可對(duì)根目錄下的文件進(jìn)行改寫操作柠衅,會(huì)給系統(tǒng)帶來(lái)極大的安全隱患,因此籍琳,必須防止用戶切換到Linux的根目錄菲宴,相關(guān)的配置項(xiàng)如下:
|
|
chroot_list_enable=YES |
設(shè)置是否啟用chroot_list_file配置項(xiàng)指定的用戶列表文件。設(shè)置為YES則除了列在j/etc/vsftpd/chroot_list文件中的的帳號(hào)外趋急,所有登錄的用戶都可以進(jìn)入ftp根目錄之外的目錄喝峦。默認(rèn)NO |
chroot_list_file=/etc/vsftpd/chroot_list |
用于指定用戶列表文件,該文件用于控制哪些用戶可以切換到FTP站點(diǎn)根目錄的上級(jí)目錄呜达。 |
chroot_local_user=YES |
用于指定用戶列表文件中的用戶谣蠢,是否允許切換到上級(jí)目錄。默認(rèn)NO |
注意:要對(duì)本地用戶查看效果查近,需先設(shè)置local_root=/var/ftp
具體情況有以下幾種:
- 當(dāng)chroot_list_enable=YES眉踱,chroot_local_user=YES時(shí),在/etc/vsftpd/chroot_list文件中列出的用戶霜威,可以切換到上級(jí)目錄谈喳;未在文件中列出的用戶,不能切換到站點(diǎn)根目錄的上級(jí)目錄侥祭。
- 當(dāng)chroot_list_enable=YES叁执,chroot_local_user=NO時(shí)茄厘,在/etc/vsftpd/chroot_list文件中列出的用戶,不能切換到站點(diǎn)根目錄的上級(jí)目錄谈宛;未在文件中列出的用戶次哈,可以切換到上級(jí)目錄。
- 當(dāng)chroot_list_enable=NO吆录,chroot_local_user=YES時(shí)窑滞,所有用戶均不能切換到上級(jí)目錄。
- 當(dāng)chroot_list_enable=NO恢筝,chroot_local_user=NO時(shí)哀卫,所有用戶均可以切換到上級(jí)目錄。
- 當(dāng)用戶不允許切換到上級(jí)目錄時(shí)撬槽,登錄后FTP站點(diǎn)的根目錄“/”是該FTP賬戶的主目錄此改,即文件的系統(tǒng)的/var/ftp目錄。
5. 設(shè)置訪問(wèn)控制
(1)設(shè)置允許或不允許訪問(wèn)的主機(jī)(見TBP14)
|
|
tcp_wrappers=YES |
用來(lái)設(shè)置vsftpd服務(wù)器是否與tcp wrapper相結(jié)合侄柔,進(jìn)行主機(jī)的訪問(wèn)控制共啃。默認(rèn)設(shè)置為YES,vsftpd服務(wù)器會(huì)檢查/etc/hosts.allow和/etc /hosts.deny中的設(shè)置暂题,以決定請(qǐng)求連接的主機(jī)是否允許訪問(wèn)該FTP服務(wù)器移剪。這兩個(gè)文件可以起到簡(jiǎn)易的防火墻功能。 |
比如薪者,若要僅允許192.168.168.1~192.168.168.254的用戶纵苛,可以訪問(wèn)連接vsftpd服務(wù)器,則可在/etc/hosts.allow文件中添加以下內(nèi)容:
vsftpd:192.168.168.0/255.255.255.0:allow
all:all:deny
(2)設(shè)置允許或不允許訪問(wèn)的用戶
對(duì)用戶的訪問(wèn)控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件來(lái)控制實(shí)現(xiàn)言津。相關(guān)配置命令如下:
|
|
userlist_enable=YES |
決定/etc/vsftpd/user_list文件是否啟用生效攻人。YES則生效,NO不生效纺念。 |
userlist_deny=YES |
決定/etc/vsftpd/user_list文件中的用戶是允許訪問(wèn)還是不允許訪問(wèn)贝椿。若設(shè)置為YES,則/etc/vsftpd/user_list 文件中的用戶將不允許訪問(wèn)FTP服務(wù)器陷谱;若設(shè)置為NO烙博,則只有vsftpd.user_list文件中的用戶,才能訪問(wèn)FTP服務(wù)器烟逊。 |
6. 設(shè)置訪問(wèn)速度
|
|
anon_max_rate=0 |
設(shè)置匿名用戶所能使用的最大傳輸速度渣窜,單位為b/s。若設(shè)置為0宪躯,則不受速度限制乔宿,此為默認(rèn)值。 |
local_max_rate=0 |
設(shè)置本地用戶所能使用的最大傳輸速度访雪。默認(rèn)為0详瑞,不受限制掂林。 |
7. 定義用戶配置文件
在vsftpd服務(wù)器中,不同用戶還可使用不同的配置坝橡,這要通過(guò)用戶配置文件來(lái)實(shí)現(xiàn)泻帮。
|
|
user_config_dir=/etc/vsftpd/userconf |
用于設(shè)置用戶配置文件所在的目錄。 |
設(shè)置了該配置項(xiàng)后计寇,當(dāng)用戶登錄FTP服務(wù)器時(shí)锣杂,系統(tǒng)就會(huì)到/etc/vsftpd/userconf目錄下讀取與當(dāng)前用戶名相同的文件,并根據(jù)文件中的配 置命令番宁,對(duì)當(dāng)前用戶進(jìn)行更進(jìn)一步的配置元莫。比如,利用用戶配置文件蝶押,可實(shí)現(xiàn)對(duì)不同用戶進(jìn)行訪問(wèn)的速度進(jìn)行控制踱蠢,在各用戶配置文件中,定義 local_max_rate配置棋电,以決定該用戶允許的訪問(wèn)速度朽基。
8. 與連接相關(guān)的設(shè)置
|
|
listen=YES |
設(shè)置vsftpd服務(wù)器是否以standalone模式運(yùn)行。以standalone模式運(yùn)行是一種較好的方式离陶,此時(shí)listen必須設(shè)置為YES, 此為默認(rèn)值衅檀,建議不要更改招刨。很多與服務(wù)器運(yùn)行相關(guān)的配置命令,需要此運(yùn)行模式才有效哀军。若設(shè)置為NO沉眶,則vsftpd不是以獨(dú)立的服務(wù)運(yùn)行,要受 xinetd服務(wù)的管理控制杉适,功能上會(huì)受限制谎倔。 |
max_clients=0 |
設(shè)置vsftpd允許的最大連接數(shù),默認(rèn)為0猿推,表示不受限制片习。若設(shè)置為150時(shí),則同時(shí)允許有150個(gè)連接蹬叭,超出的將拒絕建立連接藕咏。只有在以standalone模式運(yùn)行時(shí)才有效。 |
max_per_ip=0 |
設(shè)置每個(gè)IP地址允許與FTP服務(wù)器同時(shí)建立連接的數(shù)目秽五。默認(rèn)為0孽查,不受限制。通程勾可對(duì)此配置進(jìn)行設(shè)置盲再,防止同一個(gè)用戶建立太多的連接西设。只有在以standalone模式運(yùn)行時(shí)才有效。 |
listen_address=IP地址 |
設(shè)置在指定的IP地址上偵聽用戶的FTP請(qǐng)求答朋。若不設(shè)置贷揽,則對(duì)服務(wù)器所綁定的所有IP地址進(jìn)行偵聽。只有在以standalone模式運(yùn)行時(shí)才有效绿映。 對(duì)于只綁定了一個(gè)IP地址的服務(wù)器擒滑,不需要配置該項(xiàng),默認(rèn)情況下叉弦,配置文件中沒(méi)有該配置項(xiàng)丐一。若服務(wù)器同時(shí)綁定了多個(gè)IP地址,則應(yīng)通過(guò)該配置項(xiàng)淹冰,指定在哪 個(gè)IP地址上提供FTP服務(wù)库车,即指定FTP服務(wù)器所使用的IP地址。 注意:設(shè)置此值前后樱拴,可以通過(guò)netstat -tnl對(duì)比端口的監(jiān)聽情況 |
accept_timeout=60 |
設(shè)置建立被動(dòng)(PASV)數(shù)據(jù)連接的超時(shí)時(shí)間柠衍,單位為秒,默認(rèn)值為60晶乔。 |
connect_timeout=60 |
PORT方式下建立數(shù)據(jù)連接的超時(shí)時(shí)間珍坊,單位為秒。 |
data_connection_timeout=300 |
設(shè)置建立FTP數(shù)據(jù)連接的超時(shí)時(shí)間正罢,默認(rèn)為300秒阵漏。 |
idle_session_timeout=600 |
設(shè)置多長(zhǎng)時(shí)間不對(duì)FTP服務(wù)器進(jìn)行任何操作,則斷開該FTP連接翻具,單位為秒履怯,默認(rèn)為600秒。即設(shè)置發(fā)呆的逾時(shí)時(shí)間裆泳,在這個(gè)時(shí)間內(nèi)叹洲,若沒(méi)有數(shù)據(jù)傳送或指令的輸入,則會(huì)強(qiáng)行斷開連接工禾。 |
pam_service_name=vsftpd |
設(shè)置在PAM所使用的名稱运提,默認(rèn)值為vsftpd。 |
setproctitle_enable=NO|YES |
設(shè)置每個(gè)與FTP服務(wù)器的連接闻葵,是否以不同的進(jìn)程表現(xiàn)出來(lái)糙捺,默認(rèn)值為NO,此時(shí)只有一個(gè)名為vsftpd的進(jìn)程笙隙。若設(shè)置為YES洪灯,則每個(gè)連接都會(huì)有一個(gè)vsftpd進(jìn)程,使用“ps -ef|grep ftp”命令可查看到詳細(xì)的FTP連接信息。安全起見签钩,建議關(guān)閉掏呼。 |
9. FTP工作方式與端口設(shè)置
(1)FTP工作方式簡(jiǎn)介
FTP的工作方式有兩種,一種是PORT FTP铅檩,另一種是PASV FTP憎夷。下面介紹其工作方式。
二者的區(qū)別在于PORT FTP的數(shù)據(jù)傳輸端口是由FTP服務(wù)器指定的昧旨,而PASV FTP則是由FTP客戶端指定的拾给,而且每次數(shù)據(jù)連接所使用的端口號(hào)都不同。正因?yàn)槿绱送梦郑栽贑uteFTP等FTP客戶端軟件中蒋得,其連接類型設(shè)置項(xiàng)中有PORT和PASV兩種選擇。
當(dāng)FTP服務(wù)器設(shè)置為PASV工作模式時(shí)乒疏,客戶端也必須設(shè)置為PASV連接類型额衙。若客戶端連接類型設(shè)置為PORT,則能建立FTP連接怕吴,但在執(zhí)行l(wèi)s或get等需要數(shù)據(jù)請(qǐng)求的命令時(shí)窍侧,將會(huì)出現(xiàn)無(wú)響應(yīng)并最終報(bào)告無(wú)法建立數(shù)據(jù)連接。
(2)與端口相關(guān)的配置
|
|
listen_port=21 |
設(shè)置FTP服務(wù)器建立連接所偵聽的端口转绷,默認(rèn)值為21伟件。 |
connect_from_port_20=Y(jié)ES |
默認(rèn)值為YES,指定FTP數(shù)據(jù)傳輸連接使用20端口议经。若設(shè)置為NO锋爪,則進(jìn)行數(shù)據(jù)連接時(shí),所使用的端口由ftp_data_port指定爸业。 |
ftp_data_port=20 |
設(shè)置PORT方式下FTP數(shù)據(jù)連接所使用的端口,默認(rèn)值為20 |
pasv_enable=YES|NO |
若設(shè)置為YES亏镰,則使用PASV工作模式扯旷;若設(shè)置為NO,使用PORT模式索抓。默認(rèn)為YES钧忽,即使用PASV模式。 |
pasv_max_port=0 |
設(shè)置在PASV工作方式下逼肯,數(shù)據(jù)連接可以使用的端口范圍的上界耸黑。默認(rèn)值為0,表示任意端口篮幢。 |
pasv_mim_port=0 |
設(shè)置在PASV工作方式下大刊,數(shù)據(jù)連接可以使用的端口范圍的下界。默認(rèn)值為0三椿,表示任意端口缺菌。 |
pasv_promiscuous=no |
是否屏蔽對(duì)pasv進(jìn)行安全檢查葫辐,(當(dāng)有安全隧道時(shí)可禁用) |
pasv_address=ip地址 |
pasv模式中服務(wù)器傳回的ip地址 |
10. 設(shè)置傳輸模式
FTP在傳輸數(shù)據(jù)時(shí),可使用二進(jìn)制(Binary)方式伴郁,也可使用ASCII模式來(lái)上傳或下載數(shù)據(jù)耿战。
|
|
ascii_download_enable=YES |
設(shè)置是否啟用ASCII模式下載數(shù)據(jù)。默認(rèn)為NO焊傅。 |
ascii_upload_enable=YES |
設(shè)置是否啟用ASCII模式上傳數(shù)據(jù)剂陡。默認(rèn)為NO。 |
11. 設(shè)置上傳文檔的所屬關(guān)系和權(quán)限
(1)設(shè)置匿名上傳文檔的屬主
|
|
chown_uploads=YES |
用于設(shè)置是否改變匿名用戶上傳的文檔的屬主狐胎。默認(rèn)為NO鸭栖。若設(shè)置為YES,則匿名用戶上傳的文檔的屬主將被設(shè)置為chown_username配置項(xiàng)所設(shè)置的用戶名顽爹。 |
chown_username=whoever |
設(shè)置匿名用戶上傳的文檔的屬主名纤泵。只有chown_uploads=YES時(shí)才有效。建議不要設(shè)置為root用戶镜粤。 但系統(tǒng)默root |
(2)新增文檔的權(quán)限設(shè)定
|
|
local_umask=022 |
設(shè)置本地用戶新增文檔的umask捏题,默認(rèn)為022,對(duì)應(yīng)的權(quán)限為755肉渴。umask為022公荧,對(duì)應(yīng)的二進(jìn)制數(shù)為000 010 010,將其取反為111 101 101同规,轉(zhuǎn)換成十進(jìn)制數(shù)循狰,即為權(quán)限值755,代表文檔的所有者(屬主)有讀寫執(zhí)行權(quán)券勺,所屬組有讀和執(zhí)行權(quán)绪钥,其他用戶有讀和執(zhí)行權(quán)。022適合于大多數(shù)情 況关炼,一般不需要更改程腹。若設(shè)置為077,則對(duì)應(yīng)的權(quán)限為700儒拂。 |
anon_umask=022 |
設(shè)置匿名用戶新增文檔的umask寸潦。默認(rèn)077 |
file_open_mode=0755 |
設(shè)置上傳文檔的權(quán)限。權(quán)限采用數(shù)字格式社痛。 默認(rèn)0666 |
12. 日志文件
|
|
xferlog_enable=YES |
是否啟用上傳/下載日志記錄见转。默認(rèn)為NO |
xferlog_file=var/log/vsftpd.log |
設(shè)置日志文件名及路徑。需啟用xferlog_enable選項(xiàng) |
xferlog_std_format=YES |
日志文件是否使用標(biāo)準(zhǔn)的xferlog日志文件格式(與wu-ftpd使用的格式相同) 蒜哀。默認(rèn)為NO |
13. 其他設(shè)置
|
|
text_userdb_names=NO |
設(shè)置在執(zhí)行l(wèi)s命令時(shí)斩箫,是顯示UID、GID還是顯示出具體的用戶名或組名稱。默認(rèn)為NO校焦,以UID和GID方式顯示赊抖,若希望顯示用戶名和組名稱,則設(shè)置為YES寨典。 |
ls_recurse_enable=YES |
若設(shè)置為YES氛雪,則允許執(zhí)行“l(fā)s –R”這個(gè)命令,默認(rèn)值為NO耸成。在配置文件中該配置項(xiàng)被注釋掉了报亩,與此類似的還有一些配置,需要啟用時(shí)井氢,將注釋符去掉并進(jìn)行YES或NO的設(shè)置即可 |
三弦追、原文鏈接
FTP協(xié)議的主動(dòng)模式和被動(dòng)模式的區(qū)別
FTP的主動(dòng)模式和被動(dòng)模式
FTP服務(wù)之工作模式及配置詳解
vsftpd主配置文件