![Linux下FTP服務(wù)器vsftp配置大全超完整版_第1頁(yè)](http://file4.renrendoc.com/view/4fa21c4781eb67728da992aebfa352ff/4fa21c4781eb67728da992aebfa352ff1.gif)
![Linux下FTP服務(wù)器vsftp配置大全超完整版_第2頁(yè)](http://file4.renrendoc.com/view/4fa21c4781eb67728da992aebfa352ff/4fa21c4781eb67728da992aebfa352ff2.gif)
![Linux下FTP服務(wù)器vsftp配置大全超完整版_第3頁(yè)](http://file4.renrendoc.com/view/4fa21c4781eb67728da992aebfa352ff/4fa21c4781eb67728da992aebfa352ff3.gif)
![Linux下FTP服務(wù)器vsftp配置大全超完整版_第4頁(yè)](http://file4.renrendoc.com/view/4fa21c4781eb67728da992aebfa352ff/4fa21c4781eb67728da992aebfa352ff4.gif)
![Linux下FTP服務(wù)器vsftp配置大全超完整版_第5頁(yè)](http://file4.renrendoc.com/view/4fa21c4781eb67728da992aebfa352ff/4fa21c4781eb67728da992aebfa352ff5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux下FTP服務(wù)器vsftp配置大全超完整版收藏環(huán)境: RedHat AS4 說(shuō)明: 如果不做說(shuō)明,一般安裝命令均使用ROOT權(quán)限,用 # 表示 特別說(shuō)明:無(wú) 以下文章介紹Liunx 環(huán)境下vsftpd的三種實(shí)現(xiàn)方法 ,目前已經(jīng)到2.0.3版本。假設(shè)我們已經(jīng)將vsftpd-2.0.3.tar.gz文件下載到服務(wù)器的/home/xuchen目錄 代碼: # cd /home/xuchen # tar xzvf vsftpd-2.0.3.tar.gz /解壓縮程序 # cd vsftpd-2.0.3 三、三種方式的實(shí)現(xiàn) 1、匿名用戶形式實(shí)現(xiàn) # vi builddefs.h 編輯buildd
2、efs.h 文件,文件內(nèi)容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 將以上undef的都改為define,支持tcp_wrappers,支持PAM認(rèn)證方式,支持SSL # make /直接在vsftpd-2.0.3里用make編譯 # ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 12
3、:29 vsftpd /可執(zhí)行程序已被編譯成功 創(chuàng)建必要的帳號(hào),目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # mkdir /usr/share/empty /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # mkdir /var/ftp /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # useradd -d /var/ftp ftp /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請(qǐng)記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸SHELL設(shè)置成/sbin/
4、nologin,比如以上的nobody和ftp我就設(shè)置成/sbin/nologin 安裝vsftp配置文件,可執(zhí)行程序,man等: # install -m 755 vsftpd /usr/local/sbin/vsftpd-ano # install -m 644 vsftpd.8 /usr/share/man/man8 # install -m 644 vsftpd.conf.5 /usr/share/man/man5 # install -m 644 vsftpd.conf /etc/vsftpd-ano.conf 這樣就安裝完成了,那么我們開(kāi)始進(jìn)行簡(jiǎn)單的配置 # vi /etc/vsf
5、tpd-ano.conf ,將如下三行加入文件 listen=YES listen_port=21 tcp_wrappers=YES anon_root=/var/ftp /設(shè)置匿名用戶本地目錄,和ftp用戶目錄必須相同 listen=YES的意思是使用standalone啟動(dòng)vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式) # /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & /以后臺(tái)方式啟動(dòng)vsftpd 注意:每行的值都不要有空格,否則啟動(dòng)時(shí)會(huì)出現(xiàn)錯(cuò)誤,舉個(gè)例子,假如我在l
6、isten=YES后多了個(gè)空格,那我啟動(dòng)時(shí)就出現(xiàn)如下錯(cuò)誤: 500 OOPS: bad bool value in config file for: listen 測(cè)試搭建好的匿名用戶方式 # ftp Connected to . 220 (vsFTPd 2.0.3) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): ftp 331 Please specify the pas
7、sword. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 / ftp quit 221 Goodbye. # OK,已經(jīng)完成了,very nice. 高級(jí)配置 細(xì)心的朋友可能已經(jīng)看出來(lái)我們只在默認(rèn)配置文件增加了四行,就實(shí)現(xiàn)了FTP連接(也證明了vsftpd的易用性),那么讓我們傳個(gè)文件吧,呀!傳輸失敗了(見(jiàn)圖1) 為什么呢?因?yàn)?vsftpd 是為了安全需要,/var/ftp目錄不能把所有的權(quán)限打開(kāi),所以我們這時(shí)要建一個(gè)目
8、錄pub,當(dāng)然也還是需要繼續(xù)修改配置文件的。 # mkdir /var/ftp/pub # chmod -R 777 /var/ftp/pub 為了測(cè)試方便,我們先建立一個(gè)名為kill-ano的腳本,是為了殺掉FTP程序的 #!/bin/bash a=/bin/ps $1-A | grep vsftpd-ano | awk print $akill -9 那么現(xiàn)在大家看看我的匿名服務(wù)器配置文件吧 anonymous_enable=YES /允許匿名訪問(wèn),這是匿名服務(wù)器必須的 write_enable=YES /全局配置可寫(xiě) no_anon_password=YES /匿名用戶login時(shí)不詢問(wèn)
9、口令 anon_umask=077 /匿名用戶上傳的文件權(quán)限是-rw- anon_upload_enable=YES /允許匿名用戶上傳文件 anon_mkdir_write_enable=YES /允許匿名用戶建立目錄 anon_other_write_enable=YES /允許匿名用戶具有建立目錄,上傳之外的權(quán)限,如重命名,刪除 dirmessage_enable=YES /當(dāng)使用者轉(zhuǎn)換目錄,則會(huì)顯示該目錄下的.message信息 xferlog_enable=YES /記錄使用者所有上傳下載信息 xferlog_file=/var/log/vsftpd.log /將上傳下載信息記錄到/
10、var/log/vsftpd.log中 xferlog_std_format=YES /日志使用標(biāo)準(zhǔn)xferlog格式 idle_session_timeout=600 /客戶端超過(guò)600S沒(méi)有動(dòng)作就自動(dòng)被服務(wù)器踢出 data_connection_timeout=120 /數(shù)據(jù)傳輸時(shí)超過(guò)120S沒(méi)有動(dòng)作被服務(wù)器踢出 chown_uploads=YES chown_username=daemon /上傳文件的屬主 ftpd_banner=Welcome to FTP service. /FTP歡迎信息 anon_max_rate=80000 /這是匿名用戶的下載速度為80KBytes/s ch
11、eck_shell=NO /不檢測(cè)SHELL 現(xiàn)在再測(cè)試,先kill掉再啟動(dòng)FTP程序 # ./kill-ano # /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & 上傳一個(gè)文件測(cè)試一下,怎么樣?OK了吧,下載剛上傳的那個(gè)文件,恩?不行,提示 550 Failed to open file. 傳輸已失?。?傳輸隊(duì)列已完成 1 個(gè)文件傳輸失敗 沒(méi)有關(guān)系,你記得咱們?cè)O(shè)置了anon_umask=077了嗎?所以你下載不了,如果你到服務(wù)器上touch 一個(gè)文件(644),測(cè)試一下,是可以被下載下來(lái)的,好了,匿名服務(wù)器就說(shuō)到這里了。 2、本地用戶形式實(shí)
12、現(xiàn) # cd /home/xuchen/vsftpd-2.0.3 /進(jìn)入vsftpd-2.0.3的源代碼目錄 # make clean /清除編譯環(huán)境 # vi builddefs.h 繼續(xù)編輯builddefs.h 文件,文件內(nèi)容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #define VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #define VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 將以上define VSF_BUILD_PAM行的defi
13、ne改為undef,支持tcp_wrappers,不支持PAM認(rèn)證方式,支持SSL,記住啊,如果支持了PAM認(rèn)證方式,你本地用戶是不能登陸的。 # make /直接在vsftpd-2.0.3里用make編譯 # ls -l vsftpd -rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd /可執(zhí)行程序已被編譯成功 創(chuàng)建必要的帳號(hào),目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # mkdir /usr/share/empty /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # mkdir /var/ftp /可能你的
14、系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # useradd -d /var/ftp ftp /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請(qǐng)記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸SHELL設(shè)置成/sbin/nologin,比如以上的nobody和ftp我就設(shè)置成/sbin/nologin 安裝vsftp配置文件,可執(zhí)行程序,man等: # install -m 755 vsftpd /usr/local/sbin/vsftpd-loc # install -m 644 vsftpd.8 /
15、usr/share/man/man8 # install -m 644 vsftpd.conf.5 /usr/share/man/man5 # install -m 644 vsftpd.conf /etc/vsftpd-loc.conf 這樣就安裝完成了,那么我們開(kāi)始進(jìn)行簡(jiǎn)單的配置 # vi /etc/vsftpd-loc.conf ,將如下三行加入文件 listen=YES listen_port=21 tcp_wrappers=YES /支持tcp_wrappers,限制訪問(wèn)(/etc/hosts.allow,/etc/hosts.deny)listen=YES的意思是使用standal
16、one啟動(dòng)vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式),注意事項(xiàng)請(qǐng)參看匿名用戶的配置。 anonymous_enable=NO local_enable=YES /這兩項(xiàng)配置說(shuō)不允許匿名用戶登陸,允許本地用戶登陸 # /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & /以后臺(tái)方式啟動(dòng)vsftpd 測(cè)試搭建好的匿名用戶方式,先測(cè)試root用戶吧 :) # ftp Connected to . 220 (vsFTPd 2.0.3) 530 Please login with U
17、SER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): root 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 /root ftp quit 221 Goodbye. 我們看到root用戶可以登
18、陸到ftp,他的登陸目錄就是自己的主目錄。 再測(cè)試一個(gè)系統(tǒng)用戶,那我們先建立一個(gè)用戶名叫xuchen的 # useradd xuchen # passwd xuchen Changing password for user xuchen. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 建立好了,讓我們開(kāi)始測(cè)試吧! # ftp Connected to . 220 (vsFTPd 2.0.3) 530 Please login with US
19、ER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): xuchen 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 /home/xuchen ftp quit 221 Goodbye. 我們看到x
20、uchen用戶可以登陸到ftp,他的登陸目錄也是自己的主目錄。哈哈,又完成了!高級(jí)配置 細(xì)心的朋友可能已經(jīng)看出來(lái)如果我們不支持PAM認(rèn)證方式,那么本地用戶就可以登陸,而默認(rèn)編譯的vsftpd支持PAM認(rèn)證方式,所以是不支持本地用戶登陸的。恩,從這點(diǎn)說(shuō),這也是vsftp安全的一個(gè)表現(xiàn)-禁止本地用戶登陸。 我們登陸后進(jìn)行測(cè)試,傳一個(gè)文件上去,得,失敗了,那下載個(gè)文件下來(lái)吧,恩,這是成功的(見(jiàn)圖2),而且我們發(fā)現(xiàn)我們可以進(jìn)入到系統(tǒng)根目錄(見(jiàn)圖3),這樣很危險(xiǎn)。 那么改配置文件吧,為了測(cè)試方便,我們先建立一個(gè)名為kill-loc的腳本,也是為了殺掉FTP程序的 #!/bin/bash $1a=/bin
21、/ps -A | grep vsftpd-loc | awk print $akill -9 現(xiàn)在提供我的本地用戶驗(yàn)證服務(wù)器配置文件吧(在匿名里寫(xiě)過(guò)的注釋我就不在這里寫(xiě)了)listen=YES listen_port=21 tcp_wrappers=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 /本地用戶文件上傳后的權(quán)限是-rw-r-r anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_
22、enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES connect_from_port_20=YES chroot_local_user=YES /限制用戶在自己的主目錄 #local_root=/ftp /你可以指定所有本地用戶登陸后的目錄,如果不設(shè)置此項(xiàng),用戶都會(huì)登陸于自己的主目錄,就跟咱們前面測(cè)試的結(jié)果是一樣的 local_max_rate=500000 /本地用戶的下載速度為500KBytes/s idle_session_timeout=600 data_connection_timeout=120 n
23、opriv_user= nobody /設(shè)定服務(wù)執(zhí)行者為nobody,vsftpd推薦使用一個(gè)權(quán)限很低的用戶,最好是沒(méi)有家目錄(/dev/null),沒(méi)有登陸shell(/sbin/nologin),系統(tǒng)會(huì)更安全 ftpd_banner=Welcome to FTP service. check_shell=NO userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd.denyuser 以上三條設(shè)定不允許登陸的用戶,用戶列表存放在/etc/vsftpd.denyuser中,一行一個(gè)帳號(hào)如果我把xuchen這個(gè)用戶加到vsf
24、tpd.denyuser里,那么登陸時(shí)會(huì)出現(xiàn)如下錯(cuò)誤: # ftp Connected to . 220 Welcome to FTP service. 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): xuchen 530 Permission denied. Login failed. 呵呵,有意思吧,自己測(cè)試吧,本地用戶登陸方式就介紹到這里吧!3、虛擬用戶形式實(shí)現(xiàn)(db及
25、mysql形式) # cd /home/xuchen/vsftpd-2.0.3 /進(jìn)入vsftpd-2.0.3的源代碼目錄 # make clean /清除編譯環(huán)境 # vi builddefs.h 繼續(xù)編輯builddefs.h 文件,文件內(nèi)容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #define VSF_BUILD_TCPWRAPPERS #undef VSF_BUILD_PAM #define VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 將以上define VSF_BUILD_PAM
26、行的undef改為define,支持tcp_wrappers,支持PAM認(rèn)證方式,支持SSL,和匿名用戶形式是一樣的。 # make /直接在vsftpd-2.0.3里用make編譯 # ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd /可執(zhí)行程序已被編譯成功 創(chuàng)建必要的帳號(hào),目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # mkdir /usr/share/empty /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # mkdir /var/ftp /可能你的系統(tǒng)已經(jīng)存在此目錄,那就
27、不用建立 # useradd -d /var/ftp ftp /可能你的系統(tǒng)已經(jīng)存在此帳號(hào),那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請(qǐng)記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸SHELL設(shè)置成/sbin/nologin,比如以上的nobody和ftp我就設(shè)置成/sbin/nologin 安裝vsftp配置文件,可執(zhí)行程序,man等: # install -m 755 vsftpd /usr/local/sbin/vsftpd-pam # install -m 644 vsftpd.8 /usr/share/ma
28、n/man8 # install -m 644 vsftpd.conf.5 /usr/share/man/man5 # install -m 644 vsftpd.conf /etc/vsftpd-pam.conf 這樣就安裝完成了,那么我們開(kāi)始進(jìn)行簡(jiǎn)單的配置 對(duì)于用DB庫(kù)存儲(chǔ)用戶名及密碼的方式來(lái)說(shuō): (1)查看系統(tǒng)是否有相應(yīng)軟件包 # rpm qa | grep db4 db4-devel-4.2.52-7.1 db4-4.2.52-7.1 db4-utils-4.2.52-7.1 (2)建立一個(gè)logins.txt的文件,單行為用戶名,雙行為密碼,例如 # vi /home/logins.
29、txt xuchen 12345 (3)建立數(shù)據(jù)庫(kù)文件并設(shè)置文件屬性 # db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db # chmod 600 /etc/vsftpd_login.db (4)建立認(rèn)證文件 # vi /etc/pam.d/ftp 插入如下兩行 auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login (5)建
30、立一個(gè)虛擬用戶 useradd -d /home/vsftpd -s /sbin/nologin vsftpd ls -ld /home/vsftpd drwx- 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/ (6)編寫(xiě)配置文件(注意事項(xiàng)請(qǐng)參看匿名用戶的配置,這里不再贅述) # vi /etc/vsftpd-pam.conf listen=YES listen_port=21 tcp_wrappers=YES /支持tcp_wrappers,限制訪問(wèn)(/etc/hosts.allow,/etc/hosts.deny)listen=YES的意思是使
31、用standalone啟動(dòng)vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式) anonymous_enable=NO local_enable=YES /PAM方式此處必須為YES,如果不是將出現(xiàn)如下錯(cuò)誤: 500 OOPS: vsftpd: both local and anonymous access disabled! write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_loca
32、l_user=YES guest_enable=YES guest_username=vsftpd /這兩行的意思是采用虛擬用戶形式 virtual_use_local_privs=YES /虛擬用戶和本地用戶權(quán)限相同 pasv_enable=YES /建立資料聯(lián)機(jī)采用被動(dòng)方式 pasv_min_port=30000 /建立資料聯(lián)機(jī)所可以使用port 范圍的上界,0表示任意。默認(rèn)值為0。 pasv_max_port=30999 /建立資料聯(lián)機(jī)所可以使用port 范圍的下界,0表示任意。默認(rèn)值為0。 (7)啟動(dòng)程序 # /usr/local/sbin/vsftpd-pam /etc/vsftpd
33、-pam.conf & (8)測(cè)試連通及功能 # vi /home/vsftpd/test /建立一個(gè)文件,內(nèi)容如下 1234567890 # chown vsftpd.vsftpd /home/vsftpd/test # ftp Connected to . 220 (vsFTPd 2.0.3) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): xuchen 331 Plea
34、se specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 / ftp size test 213 11 ftp quit 221 Goodbye. OK,用戶名為xuchen,密碼為12345可以連接到FTP服務(wù)器,看不到文件列表,但可以下載已知文件名的文件,不能上傳文件,非常安全吧! 如果我們需要用戶看到文件,怎么辦?也好辦,在配置文件中加入如下語(yǔ)句: anon_world_reada
35、ble_only=NO /匿名登入者不能下載可閱讀的檔案,默認(rèn)值為YES 如果需要讓用戶上傳文件和下載文件分開(kāi),建議如下這么做 # vi /home/logins.txt xuchen 12345 upload 45678 /首先建立虛擬用戶upload,密碼為45678 # db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db /更新數(shù)據(jù)文件 # mkdir /home/vsftpd/upload # vi /etc/vsftpd-pam.conf 加入如下語(yǔ)句 user_config_dir=/etc/vsftpd_user
36、_conf # mkdir /etc/vsftpd_user_conf # vi /etc/vsftpd_user_conf/upload 文件內(nèi)容如下 local_root=/home/vsftpd/upload write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES # chmod 700 /home/vsftpd/upload # chown vsftpd.vsftpd /home/vsftpd/u
37、pload/ 這樣,xuchen用戶可以下載/home/vsftpd里的文件及upload里的文件,而upload用戶可以上傳和下載/home/vsftpd/upload文件夾的東西,但不能到/home/vsftpd里下載文件,很簡(jiǎn)單得實(shí)現(xiàn)了分用戶上傳和下載 對(duì)于用Mysql庫(kù)存儲(chǔ)用戶名及密碼的方式來(lái)說(shuō): 就是把用戶名和密碼放在mysql庫(kù)里,實(shí)現(xiàn)起來(lái)也相當(dāng)簡(jiǎn)單 (1)建立一個(gè)庫(kù)并設(shè)置相應(yīng)權(quán)限 # mysql p mysqlcreate database ftpd; mysqluse ftpd; mysqlcreate table user(name char(20) binary,passw
38、d char(20) binary); mysqlinsert into user (name,passwd) values (test1,12345); mysqlinsert into user (name,passwd) values (test2,54321); mysqlgrant select on ftpd.user to ftpdlocalhost identified by 123456; mysqlflush privileges; 刷新權(quán)限設(shè)置 mysqlquit (2)下載libpam-mysql進(jìn)行安裝編譯 下載地址如下: . am_mysql-0.5.tar.gz
39、假設(shè)我們把它放在了/home/xuchen目錄下 # cd /home/xuchen # tar xzvf pam_mysql-0.5.tar.gz # cd pam_mysql # make # cp pam_mysql.so /lib/security (3)建立PAM認(rèn)證信息 # vi /etc/pam.d/ftp ,內(nèi)容如下 auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=pass
40、wd crypt=0 account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=ftpd table=user usercolumn=name passwdcolumn=passwd crypt=0 注意: crypt= n crypt=0: 明文密碼 crypt=1: 使用crpyt()函數(shù)(對(duì)應(yīng)SQL數(shù)據(jù)里的encrypt(),encrypt()隨機(jī)產(chǎn)生salt) crypt=2: 使用MYSQL中的password()函數(shù)加密 crypt=3:表示使用md5的散列方式 (4)
41、建立本地虛擬用戶 # useradd -d /home/ftpd -s /sbin/nologin ftpd (5)下面就差修改vsftpd.conf文件了,我把我的提供給大家參考吧:) # vi /etc/vsftpd-pam1.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES chroot_local_user=YES guest_en
42、able=YES guest_username=ftpd listen=YES listen_port=21 pasv_enable=YES pasv_min_port=30000 pasv_max_port=30999 anon_world_readable_only=NO virtual_use_local_privs=YES #user_config_dir=/etc/vsftpd_user_conf 可以看出,和前面的用db庫(kù)來(lái)驗(yàn)證沒(méi)有多大區(qū)別,其實(shí)就是一個(gè)東西,一個(gè)用mysql來(lái)驗(yàn)證,一個(gè)用db庫(kù),我個(gè)人比較傾向于用db庫(kù)來(lái)驗(yàn)證,在這個(gè)環(huán)境下,相對(duì)于Mysql來(lái)說(shuō),安全系數(shù)更高一點(diǎn)。
43、 (6)# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam1.conf & /以后臺(tái)方式啟動(dòng) (7)測(cè)試連通 # ftp Connected to . 220 (vsFTPd 2.0.3) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (:root): test1 331 Please specify the password. Password: 23
44、0 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 / ftp quit 221 Goodbye. 看,成功了!這樣就實(shí)現(xiàn)了mysql的認(rèn)證方式,很簡(jiǎn)單吧? 4、為FTP增加磁盤(pán)配額,從而避免惡意用戶用垃圾數(shù)據(jù)塞滿你的硬盤(pán) 我首先要說(shuō)的是這個(gè)功能是系統(tǒng)自帶的,而不是vsftp 的功能之一,千萬(wàn)別搞混了。好了,我們先假設(shè)我們的系統(tǒng)用戶ftpd的主目錄是/home/ftpd,它是建立在/home分區(qū)中,那么如果我們要對(duì)ftpd用戶進(jìn)行磁盤(pán)限額,那我們需要修改
45、/etc/fstab中根分區(qū)的記錄,將/home分區(qū)的第4個(gè)字段改成defaults,usrquota,如下: LABEL=/home /home ext3 defaults,usrquota 1 2 # reboot /重新啟動(dòng)系統(tǒng)使設(shè)置生效 也可以用 # mount -o remount /dev/sda6 /dev/sda6的掛接點(diǎn)就是/home,這樣可以不用啟動(dòng)系統(tǒng)。 這里我還要說(shuō)明一下,如果我們對(duì)一個(gè)組進(jìn)行磁配額,那我們需要增加參數(shù)grpquota,例如 LABEL=/home /home ext3 defaults,grpquota 1 2 也可以 LABEL=/home /hom
46、e ext3 defaults,usrquota,grpquota 1 2 你想怎么限制都可以,自己組合參數(shù)吧。 # quotacheck -avu 說(shuō)明:a-自動(dòng)開(kāi)啟掛載文件系統(tǒng)的配額,v-顯示信息,u-啟用用戶配額or g-啟用組配額 # edquota ftpd /為用戶ftpd設(shè)置磁盤(pán)配額 OR # edquota -g grp /為組grp設(shè)置磁盤(pán)配額 系統(tǒng)會(huì)自動(dòng)打開(kāi)配額文件,如下: Disk quotas for user ftpd (uid 502): Filesystem blocks soft hard inodes soft hard /dev/sda6 424 0 0 1
47、3 0 0 第一列是啟用了配額的文件系統(tǒng)的名稱。第二列顯示了用戶當(dāng)前使用的塊數(shù),單位為KB。隨后的兩列用來(lái)設(shè)置用戶在該文件系統(tǒng)上的軟硬塊限度。inodes 列顯示了用戶當(dāng)前使用的i節(jié)點(diǎn)數(shù)量。最后兩列用來(lái)設(shè)置用戶在該文件系統(tǒng)上的軟硬i節(jié)點(diǎn)限度.硬限是用戶或組群可以使用的磁盤(pán)空間的絕對(duì)最大值。達(dá)到了該限度后,磁盤(pán)空間就不能再被用戶或組群使用了。軟限定義可被使用的最大磁盤(pán)空間量。和硬限不同的是,軟限可以在一段時(shí)期內(nèi)被超過(guò)。這段時(shí)期被稱為過(guò)渡期(grace period),默認(rèn)七天的超越。過(guò)渡期可以用秒鐘、分鐘、小時(shí)、天數(shù)、周數(shù)、或月數(shù)表示。如果以上值中的任何一個(gè)被設(shè)置為 0,那個(gè)限度就不會(huì)被設(shè)置。我
48、設(shè)置了硬塊限度為1KB,是為了測(cè)試方便。 # quotaon -avu /打開(kāi)磁盤(pán)配額監(jiān)控進(jìn)程,u是用戶g是組,這里我沒(méi)設(shè)置g參數(shù) 要校驗(yàn)用戶的配額是否被設(shè)置,我們可以使用以下命令: # quota ftpd Disk quotas for user ftpd (uid 502): Filesystem blocks quota limit grace files quota limit grace /dev/sda6 424* 0 1 13 0 0 # edquota t(-g)來(lái)設(shè)置過(guò)渡期(grace period) /當(dāng)然只針對(duì)軟限制而言 和另一個(gè) edquota 命令相似,這個(gè)命令也會(huì)
49、在文本編輯器中打開(kāi)當(dāng)前的文件系統(tǒng)配額: Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sda6 7days 7days 按你的需要修改后存盤(pán)退出 用以下命令顯示磁盤(pán)配額使用狀態(tài) # repquota -a 或 repquota /dev/sda6(用戶配額) # repquota -g -a 或 repquota -a /de
50、v/sda6 (組的配額) 如果一切按照你的意思實(shí)施了,那么我們就進(jìn)行測(cè)試了!如下圖4 我們傳了一個(gè)1k的文件,沒(méi)有成功,這樣我們就成功的為用戶ftpd增添了磁盤(pán)配額,要是哪一天你不想加磁盤(pán)配額了,怎么辦?參看如下命令: 取消某個(gè)文件系統(tǒng)的配額限制 #quotaoff -vug /dev/sda6 /刪除home分區(qū)的磁盤(pán)限額 #刪除/etc/fstab中設(shè)置配額的部分 修改軟配額的最大超越時(shí)間 注意: /,/boot/,/proc,/mnt/cdrom等不要使用配額,沒(méi)用。而且磁盤(pán)配額不適合FAT和FAT32系統(tǒng)。 以后當(dāng)新設(shè)置了某個(gè)用戶的配額,可以使用如下命令,馬上生效。 # quotac
51、heck -auvgm -是不嘗試重新掛載文件系統(tǒng) 備注: 1、vsftpd配置參數(shù)詳細(xì)整理 #接受匿名用戶 anonymous_enable=YES #匿名用戶login時(shí)不詢問(wèn)口令 no_anon_password=YES #匿名用戶主目錄 anon_root=(none) #接受本地用戶 local_enable=YES #本地用戶主目錄 local_root=(none) #如果匿名用戶需要密碼,那么使用banned_email_file里面的電子郵件地址的用戶不能登錄deny_email_enable=YES #僅在沒(méi)有pam驗(yàn)證版本時(shí)有用,是否檢查用戶有一個(gè)有效的shell來(lái)登錄
52、check_shell=YES #若啟用此選項(xiàng),userlist_deny選項(xiàng)才被啟動(dòng) userlist_enable=YES #若為YES,則userlist_file中的用戶將不能登錄,為NO則只有userlist_file的用戶可以登錄 userlist_deny=NO #如果和chroot_local_user一起開(kāi)啟,那么用戶鎖定的目錄來(lái)自/etc/passwd每個(gè)用戶指定的目錄(這個(gè)不是很清楚,很哪位熟悉的指點(diǎn)一下) passwd_chroot_enable=NO #定義匿名登入的使用者名稱。默認(rèn)值為ftp。 ftp_username=FTP #用戶權(quán)限控制# #可以上傳(全局控制
53、). write_enable=YES #本地用戶上傳文件的umask local_umask=022 #上傳文件的權(quán)限配合umask使用 #file_open_mode=0666 #匿名用戶可以上傳 anon_upload_enable=NO #匿名用戶可以建目錄 anon_mkdir_write_enable=NO 匿名用戶其它的寫(xiě)權(quán)利(更改權(quán)限?) anon_other_write_enable=NO 如果設(shè)為YES,匿名登入者會(huì)被允許下載可閱讀的檔案。默認(rèn)值為YES。 anon_world_readable_only=YES #如果開(kāi)啟,那么所有非匿名登陸的用戶名都會(huì)被切換成guest
54、_username指定的用戶名 #guest_enable=NO 所有匿名上傳的文件的所屬用戶將會(huì)被更改成chown_username chown_uploads=YES 匿名上傳文件所屬用戶名 chown_username=lightwiter #如果啟動(dòng)這項(xiàng)功能,則所有列在chroot_list_file之中的使用者不能更改根目錄 chroot_list_enable=YES #允許使用async ABOR命令,一般不用,容易出問(wèn)題 async_abor_enable=YES 管控是否可用ASCII 模式上傳。默認(rèn)值為NO。 ascii_upload_enable=YES #管控是否可用A
55、SCII 模式下載。默認(rèn)值為NO。 ascii_download_enable=YES #這個(gè)選項(xiàng)必須指定一個(gè)空的數(shù)據(jù)夾且任何登入者都不能有寫(xiě)入的權(quán)限,當(dāng)vsftpd 不需要file system 的權(quán)限時(shí),就會(huì)將使用者限制在此數(shù)據(jù)夾中。默認(rèn)值為/usr/share/empty secure_chroot_dir=/usr/share/empty #超時(shí)設(shè)置# #空閑連接超時(shí) idle_session_timeout=600 #數(shù)據(jù)傳輸超時(shí) data_connection_timeout=120 #PAVS請(qǐng)求超時(shí) ACCEPT_TIMEOUT=60 #PROT模式連接超時(shí) connect_t
56、imeout=60 #服務(wù)器功能選項(xiàng)# #開(kāi)啟日記功能 xferlog_enable=YES #使用標(biāo)準(zhǔn)格式 xferlog_std_format=YES #當(dāng)xferlog_std_format關(guān)閉且本選項(xiàng)開(kāi)啟時(shí),記錄所有ftp請(qǐng)求和回復(fù),當(dāng)調(diào)試比較有用. #log_ftp_protocol=NO #允許使用pasv模式 pasv_enable=YES #關(guān)閉安全檢查,小心呀. #pasv_promiscuous+NO #允許使用port模式 #port_enable=YES #關(guān)閉安全檢查 #prot_promiscuous #開(kāi)啟tcp_wrappers支持 tcp_wrappers=Y
57、ES #定義PAM 所使用的名稱,預(yù)設(shè)為vsftpd。 pam_service_name=vsftpd #當(dāng)服務(wù)器運(yùn)行于最底層時(shí)使用的用戶名 nopriv_user=nobody #使vsftpd在pasv命令回復(fù)時(shí)跳轉(zhuǎn)到指定的IP地址.(服務(wù)器聯(lián)接跳轉(zhuǎn)?) pasv_address=(none) #服務(wù)器性能選項(xiàng)# #是否能使用ls -R命令以防止浪費(fèi)大量的服務(wù)器資源 #ls_recurse_enable=YES #是否使用單進(jìn)程模式 #one_process_model #綁定到listen_port指定的端口,既然都綁定了也就是每時(shí)都開(kāi)著的,就是那個(gè)什么standalone模式 list
58、en=YES #當(dāng)使用者登入后使用ls -al 之類(lèi)的指令查詢?cè)摍n案的管理權(quán)時(shí),預(yù)設(shè)會(huì)出現(xiàn)擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現(xiàn)擁有者的名稱,則將此功能開(kāi)啟。 text_userdb_names=NO #顯示目錄清單時(shí)是用本地時(shí)間還是GMT時(shí)間,可以通過(guò)mdtm命令來(lái)達(dá)到一樣的效果 use_localtime=NO #測(cè)試平臺(tái)優(yōu)化 #use_sendfile=YES #信息類(lèi)設(shè)置# #login時(shí)顯示歡迎信息.如果設(shè)置了banner_file則此設(shè)置無(wú)效 ftpd_banner=歡迎來(lái)到湖南三辰Fake-Ta FTP 網(wǎng)站. #允許為目錄配置顯示信息,顯示每個(gè)目錄下面的mess
59、age_file文件的內(nèi)容 dirmessage_enable=YES #顯示會(huì)話狀態(tài)信息,關(guān)! #setproctitle_enable=YES # 文件定義 # #定義不能更改用戶主目錄的文件 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #定義限制/允許用戶登錄的文件 userlist_file=/etc/vsftpd/vsftpd.user_list #定義登錄信息文件的位置 banner_file=/etc/vsftpd/banner #禁止使用的匿名用戶登陸時(shí)作為密碼的電子郵件地址 banned_email_file=/etc/vs
60、ftpd.banned_emails #日志文件位置 xferlog_file=/var/log/vsftpd.log #目錄信息文件 message_file=.message # 目錄定義 # #定義用戶配置文件的目錄 user_config_dir=/etc/vsftpd/userconf #定義本地用戶登陸的根目錄,注意定義根目錄可以是相對(duì)路徑也可以是絕對(duì)路徑.相對(duì)路徑是針對(duì)用戶家目錄來(lái)說(shuō)的. local_root=webdisk #此項(xiàng)設(shè)置每個(gè)用戶登陸后其根目錄為/home/username/webdisk #匿名用戶登陸后的根目錄 anon_root=/var/ftp #用戶連接選
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- PB-22-N-5-Hydroxypentyl-3-carboxyindole-metabolite-生命科學(xué)試劑-MCE-1773
- L-Glutamic-acid-ammonium-生命科學(xué)試劑-MCE-7975
- 1-Octadecyl-lysophosphatidic-acid-PA-O-18-0-0-0-生命科學(xué)試劑-MCE-8369
- 2025年度績(jī)效合同簽訂與履行指南
- 二零二五年度未簽合同員工勞動(dòng)仲裁應(yīng)對(duì)措施及賠償協(xié)議
- 二零二五年度物業(yè)與業(yè)主之間綠化賠償合作協(xié)議
- 2025年度煙酒店員工培訓(xùn)與職業(yè)發(fā)展合同
- 柴油發(fā)電機(jī)組技術(shù)協(xié)議
- 施工日志填寫(xiě)樣本防雷工程施工
- 小學(xué)語(yǔ)文人教一年級(jí)上冊(cè)識(shí)字2《日月明》教學(xué)設(shè)計(jì)
- 充電樁知識(shí)培訓(xùn)課件
- 2025年七年級(jí)下冊(cè)道德與法治主要知識(shí)點(diǎn)
- 2025年交通運(yùn)輸部長(zhǎng)江口航道管理局招聘4人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專(zhuān)家共識(shí)(2024版)解讀
- 廣東省廣州市2025屆高三上學(xué)期12月調(diào)研測(cè)試(零模)英語(yǔ) 含解析
- 偏癱足內(nèi)翻的治療
- 藥企質(zhì)量主管競(jìng)聘
- 信息對(duì)抗與認(rèn)知戰(zhàn)研究-洞察分析
- 心腦血管疾病預(yù)防課件
- 手術(shù)室專(zhuān)科護(hù)士工作總結(jié)匯報(bào)
- 2025屆高三聽(tīng)力技巧指導(dǎo)-預(yù)讀、預(yù)測(cè)
評(píng)論
0/150
提交評(píng)論