CentOS6.4_X64安裝配置vsFTP-2.2.2 一、環(huán)境 : CentOS6.4_X64 Vsftpd-2.2.2 二、安裝軟件及依賴軟件包 1、一般pam和db4默認(rèn)系統(tǒng)已經(jīng)安裝,如果沒有安裝如下一并安裝吧 #rpm –qa pam #rpm –qa db4 ///檢測是否安裝 #yum install vsftpd pam db4 -y ///安裝所需軟件 2、將vsftp配置為系統(tǒng)服務(wù) 3、安裝完成后生成如下配置文件: [root@localhost vsftpd]# ll /etc/vsftpd/ -rw-------. 1 root root 125 Feb 192013 ftpusers -rw-------. 1 root root 361 Feb 192013 user_list -rw-r--r--. 1 root root 4691 Sep 17 16:54 vsftpd.conf -rwxr--r--. 1 root root 338 Feb 192013 vsftpd_conf_migrate.sh 三、 建立FTP的宿主帳戶 1、建立ftp虛擬宿主帳戶 ///vsftpd供虛擬帳戶映射的系統(tǒng)真實用戶,不需要登錄shell權(quán)限 四、VSFTPD的配置文件 配置vsftpd.conf ///該文件在/etc/vsftpd/ cd /etc/vsftpd/cp vsftpd.conf vsftpd.conf.bak2、下面更改配置文件: [root@localhost vsftpd]# vi vsftpd.conf anonymous_enable=NO //不允許匿名用戶訪問。 local_enable=YES //設(shè)定本地用戶可以訪問。主要是為虛擬宿主用戶,如果該項目設(shè)定為NO那么所有虛擬用戶將無法訪問。 write_enable=YES //設(shè)定可以進行寫操作。 local_umask=022 //設(shè)定上傳后文件的權(quán)限掩碼。 idle_session_timeout=600 data_connection_timeout=1200 //設(shè)置超時時間 dirmessage_enable=YES ///設(shè)定開啟目錄標(biāo)語功能。 xferlog_enable=YES ///設(shè)定開啟日志記錄功能。 connect_from_port_20=YES ///設(shè)定端口20進行數(shù)據(jù)連接。 并且必須給與該vsftpd用戶對日志文件vsftpd.log的讀寫權(quán)限,否則服務(wù)將啟動失敗。 xferlog_std_format=YES ///設(shè)定日志使用標(biāo)準(zhǔn)的記錄格式。 注意,一旦做出更改宿主用戶后,必須注意一起與該服務(wù)相關(guān)的讀寫文件的讀寫賦權(quán)問題。比如日志文件就必須給與該用戶寫入權(quán)限等。 async_abor_enable=YES ///設(shè)定支持異步傳輸功能。 chroot_local_user=YES chroot_list_enable=YES ///禁止用戶登出自己的FTP主目錄。 chroot_list_file=/etc/vsftpd/chroot_list ///如果開啟了chroot_list_enable=YES,那么一定要開啟這個,這條是鎖定登錄用戶只能家目錄的位置。
touch/etc/vsftp/chroot_list,然后將帳戶輸入一行一個,保存就可以了,如果不需要限制用戶,也可以只建立一個空文件,或者將chroot_list_enable=NO ls_recurse_enable=NO ///禁止用戶登陸FTP后使用"ls -R"的命令。該命令會對服務(wù)器性能造成巨大開銷。如果該項被允許,那么擋多用戶同時使用該命令時將會對該服務(wù)器造成威脅。 listen=YES ///設(shè)定該Vsftpd服務(wù)工作在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務(wù)擁有自己的守護進程支持,在ps -A命令下我們將可用看到vsftpd的守護進程名。如果不想工作在StandAlone模式下,則可以選擇SuperDaemon模式,在該模式下 vsftpd將沒有自己的守護進程,而是由超級守護進程Xinetd全權(quán)代理,與此同時,Vsftp服務(wù)的許多功能將得不到實現(xiàn)。 userlist_enable=YES ///設(shè)定userlist_file中的用戶將不得使用FTP。 tcp_wrappers=YES ///設(shè)定支持TCP Wrappers。 使用虛擬用戶需要增加以下部分默認(rèn)中不包含這些設(shè)定項目,需要自己手動添加: guest_enable=YES ///設(shè)定啟用虛擬用戶功能。 這個被指定的目錄里,將存放每個Vsftp虛擬用戶個性的配置文件,注:就是這些配置文件名必須和虛擬用戶名相同。
五、創(chuàng)建日志文件 [root@localhost vsftpd]# chown vsftpd.vsftpd /var/log/vsftpd.log 六、創(chuàng)建虛擬用戶名單文件 建立了一個虛擬用戶名單文件,用來記錄vsftpd虛擬用戶的用戶名和口令的數(shù)據(jù)文件,這里命名為v_user。為了目錄清晰,這個名單文件就放置在/etc/vsftpd/vconf/下 [root@localhost vsftpd]# mkdir /etc/vsftpd/vconf/ [root@localhost vsftpd]# touch /etc/vsftpd/vconf/v_user 七、創(chuàng)建虛擬用戶 編輯上面創(chuàng)建的虛擬用戶名單文件v_user,在其中加入用戶的用戶名和口令信息。 格式:奇數(shù)行為用戶名,偶數(shù)行是密碼,其他的以此類推 [root@localhost vsftpd]# vi /etc/vsftpd/vconf/v_user test //用戶名 八、生成虛擬用戶數(shù)據(jù)庫文件 [root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db 需要特別注意的是,以后再要添加虛擬用戶的時候,只需要按照上面的格式:“奇數(shù)行為用戶名,偶數(shù)行是密碼”的格式將新用戶名和口令添加進虛擬用戶名單文件。如此不會生效的,還要再執(zhí)行一遍“ db_load -T -t hash -f 虛擬用戶名單文件 虛擬用戶數(shù)據(jù)庫文件.db ”的命令使其生效才可以! db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db -T允許應(yīng)用程序能夠?qū)⑽谋疚募D(zhuǎn)譯載入進數(shù)據(jù)庫。由于我們之后是將虛擬用戶的信息以文件方式存儲在文件里的,為了讓Vsftpd這個應(yīng)用程序能夠通過文本來載入用戶數(shù)據(jù),必須要使用這個選項。 -t如果指定了選項-T,那么一定要追跟子選項-t,追加在-T選項后,用來指定轉(zhuǎn)譯載入的數(shù)據(jù)庫類型。擴展介紹下,-t可以指定的數(shù)據(jù)類型有Btree、Hash、Queue和Recon數(shù)據(jù)庫。這里,接下來我們需要指定的是Hash型。 九、設(shè)置數(shù)據(jù)庫文件的權(quán)限 十、修改/etc/pam.d/vsftpd文件,增加以下紅色部分內(nèi)容 #%PAM-1.0 auth sufficient pam_userdb.so db=/etc/vsftpd/vconf/v_user account sufficient pam_userdb.so db=/etc/vsftpd/vconf/v_user session optionalpam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session requiredpam_loginuid.so session include password-auth 以上紅色部分兩條是手動添加的,內(nèi)容是對虛擬用戶的安全和帳戶權(quán)限進行驗證。 這里的auth是指對用戶的用戶名口令進行驗證。 再后面的pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個庫函數(shù)進行。 特別注意: 一定要使用“sufficient” ,按照老版本的做法,這里使用required ,則會發(fā)生用戶認(rèn)證不通過,報如下錯誤: [root@localhost vsftpd]# tail /var/log/secure Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): check pass; user unknown Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=test r host=localhost Sep 17 17:28:20 localhost vsftpd[1387]: pam_succeed_if(vsftpd:auth): error retrieving information about user test 十一、創(chuàng)建用戶的配置文件 用戶配置文件的名字要和創(chuàng)建的“虛擬用戶”名字對應(yīng) #touch /etc/vsftpd/vconf/test #vim /etc/vsftpd/vconf/test local_root=/data/ftp/ //虛擬用戶的個人目錄路徑 //如果開啟,那么所有非匿名登陸的用戶名都會被切換成guest_username指定的用戶名 anon_upload_enable=YES //匿名用戶可以上傳 anon_mkdir_write_enable=YES //匿名用戶可以建目錄 anon_other_write_enable=YES //匿名用戶其它的寫權(quán)利 local_max_rate=1048576 //本地用戶的最大傳輸速度,單位是Byts/s
#vim /etc/vsftpd/vconf/test local_root=/data/ftp/ //虛擬用戶的個人目錄路徑 write_enable=NO //用戶無寫權(quán)限 anon_upload_enable=NO //匿名用戶不可以上傳 anon_mkdir_write_enable= NO //匿名用戶不可以建目錄 anon_other_write_enable= NO //匿名用戶無寫權(quán)利 local_max_rate=1048576 //本地用戶的最大傳輸速度,單位是Byts/s, 十二、建立虛擬用戶目錄 mkdir /data/ftp/chown vsftpd.vsftpd /data/ftp/chmod 700 /data/ftp/ ///如果不設(shè)置為700的權(quán)限,則會發(fā)生如下錯誤
配置就此完成,如果想增加新的用戶,只要按照上面的第八步、第十一步進行就可以了。 十三、所有配置完后的目錄文件及結(jié)構(gòu) [root@localhost vsftpd]# ll /etc/vsftpd/ -rw-r--r--. 1 root root 0 Sep 17 16:47 chroot_list -rw-------. 1 root root 125 Feb 192013 ftpusers -rw-------. 1 root root 361 Feb 192013 user_list drwxr-xr-x. 2 root root 4096 Sep 17 18:22 vconf -rw-r--r-- 1 root root 4689 Sep 18 10:32 vsftpd.conf -rwxr--r--. 1 root root 338 Feb 192013 vsftpd_conf_migrate.sh [root@localhost vsftpd]# ll /etc/vsftpd/vconf -rw-r--r-- 1 root root125 Sep 17 18:22 test -rw-------. 1 root root 12 Sep 17 16:55 vir_user -rw-------. 1 root root 12288 Sep 17 16:55 vir_user.db 十四、關(guān)于防火墻規(guī)則 1、添加下面規(guī)則到 iptables #iptables-restore < /etc/sysconfig/iptables //重載配置,即時生效 2、SElinux狀態(tài)及關(guān)閉 注釋:
#setenforce 0|1 //配置狀態(tài)
#vim /etc/selinux/config //編輯文件SELINUX=“diskabled”,即時不生效,重啟后生效 參考轉(zhuǎn)載自 https://blog.51cto.com/luoxj100/1889309 |
|