Linux下FTP服務(wù)器vsftp配置大全超完整版_第1頁
Linux下FTP服務(wù)器vsftp配置大全超完整版_第2頁
Linux下FTP服務(wù)器vsftp配置大全超完整版_第3頁
Linux下FTP服務(wù)器vsftp配置大全超完整版_第4頁
Linux下FTP服務(wù)器vsftp配置大全超完整版_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Linux下FTP服務(wù)器vsftp配置大全超完整版收藏環(huán)境: RedHat AS4 說明: 如果不做說明,一般安裝命令均使用ROOT權(quán)限,用 # 表示 特別說明:無 以下文章介紹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)建必要的帳號,目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號,那就不用建立 # mkdir /usr/share/empty /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # mkdir /var/ftp /可能你的系統(tǒng)已經(jīng)存在此目錄,那就不用建立 # useradd -d /var/ftp ftp /可能你的系統(tǒng)已經(jīng)存在此帳號,那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸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 這樣就安裝完成了,那么我們開始進(jì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啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式) # /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & /以后臺方式啟動vsftpd 注意:每行的值都不要有空格,否則啟動時會出現(xiàn)錯誤,舉個例子,假如我在l

6、isten=YES后多了個空格,那我啟動時就出現(xiàn)如下錯誤: 500 OOPS: bad bool value in config file for: listen 測試搭建好的匿名用戶方式 # 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. 高級配置 細(xì)心的朋友可能已經(jīng)看出來我們只在默認(rèn)配置文件增加了四行,就實(shí)現(xiàn)了FTP連接(也證明了vsftpd的易用性),那么讓我們傳個文件吧,呀!傳輸失敗了(見圖1) 為什么呢?因?yàn)?vsftpd 是為了安全需要,/var/ftp目錄不能把所有的權(quán)限打開,所以我們這時要建一個目

8、錄pub,當(dāng)然也還是需要繼續(xù)修改配置文件的。 # mkdir /var/ftp/pub # chmod -R 777 /var/ftp/pub 為了測試方便,我們先建立一個名為kill-ano的腳本,是為了殺掉FTP程序的 #!/bin/bash a=/bin/ps $1-A | grep vsftpd-ano | awk print $akill -9 那么現(xiàn)在大家看看我的匿名服務(wù)器配置文件吧 anonymous_enable=YES /允許匿名訪問,這是匿名服務(wù)器必須的 write_enable=YES /全局配置可寫 no_anon_password=YES /匿名用戶login時不詢問

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)換目錄,則會顯示該目錄下的.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 /客戶端超過600S沒有動作就自動被服務(wù)器踢出 data_connection_timeout=120 /數(shù)據(jù)傳輸時超過120S沒有動作被服務(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 /不檢測SHELL 現(xiàn)在再測試,先kill掉再啟動FTP程序 # ./kill-ano # /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & 上傳一個文件測試一下,怎么樣?OK了吧,下載剛上傳的那個文件,恩?不行,提示 550 Failed to open file. 傳輸已失??! 傳輸隊(duì)列已完成 1 個文件傳輸失敗 沒有關(guān)系,你記得咱們設(shè)置了anon_umask=077了嗎?所以你下載不了,如果你到服務(wù)器上touch 一個文件(644),測試一下,是可以被下載下來的,好了,匿名服務(wù)器就說到這里了。 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)建必要的帳號,目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號,那就不用建立 # 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)存在此帳號,那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸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 這樣就安裝完成了,那么我們開始進(jìn)行簡單的配置 # vi /etc/vsftpd-loc.conf ,將如下三行加入文件 listen=YES listen_port=21 tcp_wrappers=YES /支持tcp_wrappers,限制訪問(/etc/hosts.allow,/etc/hosts.deny)listen=YES的意思是使用standal

16、one啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式),注意事項(xiàng)請參看匿名用戶的配置。 anonymous_enable=NO local_enable=YES /這兩項(xiàng)配置說不允許匿名用戶登陸,允許本地用戶登陸 # /usr/local/sbin/vsftpd-loc /etc/vsftpd-loc.conf & /以后臺方式啟動vsftpd 測試搭建好的匿名用戶方式,先測試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,他的登陸目錄就是自己的主目錄。 再測試一個系統(tǒng)用戶,那我們先建立一個用戶名叫xuchen的 # useradd xuchen # passwd xuchen Changing password for user xuchen. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 建立好了,讓我們開始測試吧! # 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,他的登陸目錄也是自己的主目錄。哈哈,又完成了!高級配置 細(xì)心的朋友可能已經(jīng)看出來如果我們不支持PAM認(rèn)證方式,那么本地用戶就可以登陸,而默認(rèn)編譯的vsftpd支持PAM認(rèn)證方式,所以是不支持本地用戶登陸的。恩,從這點(diǎn)說,這也是vsftp安全的一個表現(xiàn)-禁止本地用戶登陸。 我們登陸后進(jìn)行測試,傳一個文件上去,得,失敗了,那下載個文件下來吧,恩,這是成功的(見圖2),而且我們發(fā)現(xiàn)我們可以進(jìn)入到系統(tǒng)根目錄(見圖3),這樣很危險。 那么改配置文件吧,為了測試方便,我們先建立一個名為kill-loc的腳本,也是為了殺掉FTP程序的 #!/bin/bash $1a=/bin

21、/ps -A | grep vsftpd-loc | awk print $akill -9 現(xiàn)在提供我的本地用戶驗(yàn)證服務(wù)器配置文件吧(在匿名里寫過的注釋我就不在這里寫了)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),用戶都會登陸于自己的主目錄,就跟咱們前面測試的結(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推薦使用一個權(quán)限很低的用戶,最好是沒有家目錄(/dev/null),沒有登陸shell(/sbin/nologin),系統(tǒng)會更安全 ftpd_banner=Welcome to FTP service. check_shell=NO userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd.denyuser 以上三條設(shè)定不允許登陸的用戶,用戶列表存放在/etc/vsftpd.denyuser中,一行一個帳號如果我把xuchen這個用戶加到vsf

24、tpd.denyuser里,那么登陸時會出現(xiàn)如下錯誤: # 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. 呵呵,有意思吧,自己測試吧,本地用戶登陸方式就介紹到這里吧!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)建必要的帳號,目錄: # useradd nobody /可能你的系統(tǒng)已經(jīng)存在此帳號,那就不用建立 # 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)存在此帳號,那就不用建立 # chown root:root /var/ftp # chmod og-w /var/ftp 請記住,如果你不想讓用戶在本地登陸,那么你需要把他的登陸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 這樣就安裝完成了,那么我們開始進(jìn)行簡單的配置 對于用DB庫存儲用戶名及密碼的方式來說: (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)建立一個logins.txt的文件,單行為用戶名,雙行為密碼,例如 # vi /home/logins.

29、txt xuchen 12345 (3)建立數(shù)據(jù)庫文件并設(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、立一個虛擬用戶 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àng)請參看匿名用戶的配置,這里不再贅述) # vi /etc/vsftpd-pam.conf listen=YES listen_port=21 tcp_wrappers=YES /支持tcp_wrappers,限制訪問(/etc/hosts.allow,/etc/hosts.deny)listen=YES的意思是使

31、用standalone啟動vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推薦使用standalone方式) anonymous_enable=NO local_enable=YES /PAM方式此處必須為YES,如果不是將出現(xiàn)如下錯誤: 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ī)采用被動方式 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)啟動程序 # /usr/local/sbin/vsftpd-pam /etc/vsftpd

33、-pam.conf & (8)測試連通及功能 # vi /home/vsftpd/test /建立一個文件,內(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ù)器,看不到文件列表,但可以下載已知文件名的文件,不能上傳文件,非常安全吧! 如果我們需要用戶看到文件,怎么辦?也好辦,在配置文件中加入如下語句: anon_world_reada

35、ble_only=NO /匿名登入者不能下載可閱讀的檔案,默認(rèn)值為YES 如果需要讓用戶上傳文件和下載文件分開,建議如下這么做 # 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 加入如下語句 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里下載文件,很簡單得實(shí)現(xiàn)了分用戶上傳和下載 對于用Mysql庫存儲用戶名及密碼的方式來說: 就是把用戶名和密碼放在mysql庫里,實(shí)現(xiàn)起來也相當(dāng)簡單 (1)建立一個庫并設(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ù)(對應(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庫來驗(yàn)證沒有多大區(qū)別,其實(shí)就是一個東西,一個用mysql來驗(yàn)證,一個用db庫,我個人比較傾向于用db庫來驗(yàn)證,在這個環(huán)境下,相對于Mysql來說,安全系數(shù)更高一點(diǎn)。

43、 (6)# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam1.conf & /以后臺方式啟動 (7)測試連通 # 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)證方式,很簡單吧? 4、為FTP增加磁盤配額,從而避免惡意用戶用垃圾數(shù)據(jù)塞滿你的硬盤 我首先要說的是這個功能是系統(tǒng)自帶的,而不是vsftp 的功能之一,千萬別搞混了。好了,我們先假設(shè)我們的系統(tǒng)用戶ftpd的主目錄是/home/ftpd,它是建立在/home分區(qū)中,那么如果我們要對ftpd用戶進(jìn)行磁盤限額,那我們需要修改

45、/etc/fstab中根分區(qū)的記錄,將/home分區(qū)的第4個字段改成defaults,usrquota,如下: LABEL=/home /home ext3 defaults,usrquota 1 2 # reboot /重新啟動系統(tǒng)使設(shè)置生效 也可以用 # mount -o remount /dev/sda6 /dev/sda6的掛接點(diǎn)就是/home,這樣可以不用啟動系統(tǒng)。 這里我還要說明一下,如果我們對一個組進(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 說明:a-自動開啟掛載文件系統(tǒng)的配額,v-顯示信息,u-啟用用戶配額or g-啟用組配額 # edquota ftpd /為用戶ftpd設(shè)置磁盤配額 OR # edquota -g grp /為組grp設(shè)置磁盤配額 系統(tǒng)會自動打開配額文件,如下: 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。隨后的兩列用來設(shè)置用戶在該文件系統(tǒng)上的軟硬塊限度。inodes 列顯示了用戶當(dāng)前使用的i節(jié)點(diǎn)數(shù)量。最后兩列用來設(shè)置用戶在該文件系統(tǒng)上的軟硬i節(jié)點(diǎn)限度.硬限是用戶或組群可以使用的磁盤空間的絕對最大值。達(dá)到了該限度后,磁盤空間就不能再被用戶或組群使用了。軟限定義可被使用的最大磁盤空間量。和硬限不同的是,軟限可以在一段時期內(nèi)被超過。這段時期被稱為過渡期(grace period),默認(rèn)七天的超越。過渡期可以用秒鐘、分鐘、小時、天數(shù)、周數(shù)、或月數(shù)表示。如果以上值中的任何一個被設(shè)置為 0,那個限度就不會被設(shè)置。我

48、設(shè)置了硬塊限度為1KB,是為了測試方便。 # quotaon -avu /打開磁盤配額監(jiān)控進(jìn)程,u是用戶g是組,這里我沒設(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)來設(shè)置過渡期(grace period) /當(dāng)然只針對軟限制而言 和另一個 edquota 命令相似,這個命令也會

49、在文本編輯器中打開當(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 按你的需要修改后存盤退出 用以下命令顯示磁盤配額使用狀態(tài) # repquota -a 或 repquota /dev/sda6(用戶配額) # repquota -g -a 或 repquota -a /de

50、v/sda6 (組的配額) 如果一切按照你的意思實(shí)施了,那么我們就進(jìn)行測試了!如下圖4 我們傳了一個1k的文件,沒有成功,這樣我們就成功的為用戶ftpd增添了磁盤配額,要是哪一天你不想加磁盤配額了,怎么辦?參看如下命令: 取消某個文件系統(tǒng)的配額限制 #quotaoff -vug /dev/sda6 /刪除home分區(qū)的磁盤限額 #刪除/etc/fstab中設(shè)置配額的部分 修改軟配額的最大超越時間 注意: /,/boot/,/proc,/mnt/cdrom等不要使用配額,沒用。而且磁盤配額不適合FAT和FAT32系統(tǒng)。 以后當(dāng)新設(shè)置了某個用戶的配額,可以使用如下命令,馬上生效。 # quotac

51、heck -auvgm -是不嘗試重新掛載文件系統(tǒng) 備注: 1、vsftpd配置參數(shù)詳細(xì)整理 #接受匿名用戶 anonymous_enable=YES #匿名用戶login時不詢問口令 no_anon_password=YES #匿名用戶主目錄 anon_root=(none) #接受本地用戶 local_enable=YES #本地用戶主目錄 local_root=(none) #如果匿名用戶需要密碼,那么使用banned_email_file里面的電子郵件地址的用戶不能登錄deny_email_enable=YES #僅在沒有pam驗(yàn)證版本時有用,是否檢查用戶有一個有效的shell來登錄

52、check_shell=YES #若啟用此選項(xiàng),userlist_deny選項(xiàng)才被啟動 userlist_enable=YES #若為YES,則userlist_file中的用戶將不能登錄,為NO則只有userlist_file的用戶可以登錄 userlist_deny=NO #如果和chroot_local_user一起開啟,那么用戶鎖定的目錄來自/etc/passwd每個用戶指定的目錄(這個不是很清楚,很哪位熟悉的指點(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 匿名用戶其它的寫權(quán)利(更改權(quán)限?) anon_other_write_enable=NO 如果設(shè)為YES,匿名登入者會被允許下載可閱讀的檔案。默認(rèn)值為YES。 anon_world_readable_only=YES #如果開啟,那么所有非匿名登陸的用戶名都會被切換成guest

54、_username指定的用戶名 #guest_enable=NO 所有匿名上傳的文件的所屬用戶將會被更改成chown_username chown_uploads=YES 匿名上傳文件所屬用戶名 chown_username=lightwiter #如果啟動這項(xiàng)功能,則所有列在chroot_list_file之中的使用者不能更改根目錄 chroot_list_enable=YES #允許使用async ABOR命令,一般不用,容易出問題 async_abor_enable=YES 管控是否可用ASCII 模式上傳。默認(rèn)值為NO。 ascii_upload_enable=YES #管控是否可用A

55、SCII 模式下載。默認(rèn)值為NO。 ascii_download_enable=YES #這個選項(xiàng)必須指定一個空的數(shù)據(jù)夾且任何登入者都不能有寫入的權(quán)限,當(dāng)vsftpd 不需要file system 的權(quán)限時,就會將使用者限制在此數(shù)據(jù)夾中。默認(rèn)值為/usr/share/empty secure_chroot_dir=/usr/share/empty #超時設(shè)置# #空閑連接超時 idle_session_timeout=600 #數(shù)據(jù)傳輸超時 data_connection_timeout=120 #PAVS請求超時 ACCEPT_TIMEOUT=60 #PROT模式連接超時 connect_t

56、imeout=60 #服務(wù)器功能選項(xiàng)# #開啟日記功能 xferlog_enable=YES #使用標(biāo)準(zhǔn)格式 xferlog_std_format=YES #當(dāng)xferlog_std_format關(guān)閉且本選項(xiàng)開啟時,記錄所有ftp請求和回復(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 #開啟tcp_wrappers支持 tcp_wrappers=Y

57、ES #定義PAM 所使用的名稱,預(yù)設(shè)為vsftpd。 pam_service_name=vsftpd #當(dāng)服務(wù)器運(yùn)行于最底層時使用的用戶名 nopriv_user=nobody #使vsftpd在pasv命令回復(fù)時跳轉(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指定的端口,既然都綁定了也就是每時都開著的,就是那個什么standalone模式 list

58、en=YES #當(dāng)使用者登入后使用ls -al 之類的指令查詢該檔案的管理權(quán)時,預(yù)設(shè)會出現(xiàn)擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現(xiàn)擁有者的名稱,則將此功能開啟。 text_userdb_names=NO #顯示目錄清單時是用本地時間還是GMT時間,可以通過mdtm命令來達(dá)到一樣的效果 use_localtime=NO #測試平臺優(yōu)化 #use_sendfile=YES #信息類設(shè)置# #login時顯示歡迎信息.如果設(shè)置了banner_file則此設(shè)置無效 ftpd_banner=歡迎來到湖南三辰Fake-Ta FTP 網(wǎng)站. #允許為目錄配置顯示信息,顯示每個目錄下面的mess

59、age_file文件的內(nèi)容 dirmessage_enable=YES #顯示會話狀態(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 #禁止使用的匿名用戶登陸時作為密碼的電子郵件地址 banned_email_file=/etc/vs

60、ftpd.banned_emails #日志文件位置 xferlog_file=/var/log/vsftpd.log #目錄信息文件 message_file=.message # 目錄定義 # #定義用戶配置文件的目錄 user_config_dir=/etc/vsftpd/userconf #定義本地用戶登陸的根目錄,注意定義根目錄可以是相對路徑也可以是絕對路徑.相對路徑是針對用戶家目錄來說的. local_root=webdisk #此項(xiàng)設(shè)置每個用戶登陸后其根目錄為/home/username/webdisk #匿名用戶登陸后的根目錄 anon_root=/var/ftp #用戶連接選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論