FTP文件傳輸服務(wù)
需求描述:
? 采用FTP虛擬用戶的方式,添加三個(gè)用戶:zhangsan、lisi、wangwu。
? 用戶訪問(wèn)及文件權(quán)限控制
? 開(kāi)放匿名訪問(wèn),任何用戶均可下載服務(wù)器/var/ftp/soft/目錄中的軟件資料。
? 用戶zhangsan可以對(duì)服務(wù)器的/var/ftp/soft/目錄進(jìn)行上傳、刪除等操作。
? 用戶lisi可以下載服務(wù)器/var/market/目錄中的市場(chǎng)活動(dòng)、銷售方案的資料。
? 用戶wangwu可以對(duì)服務(wù)器/var/market/目錄進(jìn)行上傳、刪除等操作。
? 所有通過(guò)FTP上傳的文件,均去除非屬主位的寫權(quán)限(即將權(quán)限掩碼設(shè)為022)。
? 對(duì)服務(wù)器中沒(méi)有明確授權(quán)的其他目錄,禁止任何用戶訪問(wèn)。
? 傳輸速率和并發(fā)連接控制
? 最多允許150個(gè)并發(fā)用戶連接,每個(gè)IP并發(fā)連接數(shù)不超過(guò)5個(gè)。
? 匿名用戶及l(fā)isi用戶的下載帶寬限制為100KB/s。
? wangwu用戶的下載、上傳帶寬限制為200KB/s。
具體步驟:
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的麗江網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
插入光盤并掛載,然后安裝vsftpd包。如圖所示:
vsftpd服務(wù)使用Berkeley DB格式的數(shù)據(jù)庫(kù)文件來(lái)存放虛擬用戶賬號(hào)。建立這種數(shù)據(jù)庫(kù)文件需要用到db_load工具,db_load工具由db4_utils軟件包提供,而db4_utils軟件包需要先從RHEL5光盤目錄中進(jìn)行安裝,其安裝可以執(zhí)行以下操作:
創(chuàng)建文本格式的用戶名、密碼列表
首先需要建立文本格式的用戶名/密碼列表文件,奇數(shù)行為用戶名,偶數(shù)行為上一行中用戶所對(duì)應(yīng)的密碼。如圖所示:
創(chuàng)建Berkeley DB格式的數(shù)據(jù)庫(kù)文件
有了文本格式的用戶名/密碼列表文件以后,以此文件為數(shù)據(jù)流通過(guò)db_load工具創(chuàng)建出Berkeley DB格式的數(shù)據(jù)庫(kù)文件。
在db_load命令中,“-f”選項(xiàng)用于指定數(shù)據(jù)源文件,“-T”選項(xiàng)允許非Berkeley DB的應(yīng)用程序使用從文本格式轉(zhuǎn)換的DB數(shù)據(jù)文件,“-t hash”選項(xiàng)指定讀取數(shù)據(jù)文件的基本方法。
為了提高虛擬用戶賬號(hào)問(wèn)價(jià)的安全性,應(yīng)將問(wèn)價(jià)權(quán)限設(shè)置為600,以避免數(shù)據(jù)外泄。其具體操作如下:
添加虛擬用戶的映射賬號(hào)、創(chuàng)建FTP根目錄
vsftp服務(wù)器對(duì)虛擬用戶的控制采用了映射的控制方式,將所有的虛擬用戶對(duì)應(yīng)到同一個(gè)系統(tǒng)用戶,該系統(tǒng)用戶宿主目錄作為所有虛擬用戶登錄后共用的FTP根目錄。因此還需要添加一個(gè)對(duì)應(yīng)的系統(tǒng)用戶賬戶(此賬號(hào)無(wú)需設(shè)置密碼及shell)。
修改vsftpd配置,添加虛擬用戶支持
在vsftpd.conf配置文件中添加guest_enable、guest_username配置項(xiàng),將訪問(wèn)FTP服務(wù)的所有虛擬用戶對(duì)應(yīng)到同一系統(tǒng)用戶賬號(hào)virtual,并修改pam_serivce_name配置項(xiàng),指向上一步建立的/etc/pam.d/vsftpd.vu認(rèn)證文件。
在vsftpd服務(wù)中,虛擬用戶被默認(rèn)作為匿名用戶進(jìn)行處理以降低權(quán)限,因此對(duì)應(yīng)的配置項(xiàng)通常以anon_開(kāi)頭。
為不同的虛擬用戶建立獨(dú)立的配置文件
通過(guò)前面的幾個(gè)步驟,實(shí)際上已經(jīng)可以重新加載vsftpd并提供服務(wù)了,使用任一個(gè)虛擬用戶賬號(hào)都可以登錄FTP服務(wù)器并下載文件。但因?yàn)樗械奶摂M用都映射到同一個(gè)系統(tǒng)用戶賬號(hào),因此FTP訪問(wèn)權(quán)限也是相同的,要么都只能下載,要么都能夠上傳。
若要為不同的虛擬用戶賬號(hào)設(shè)置不同的訪問(wèn)權(quán)限,可以通過(guò)為每個(gè)虛擬用戶建立單獨(dú)的配置文件來(lái)實(shí)現(xiàn),為FTP用戶啟用獨(dú)立配置文件,需要通過(guò)vsftpd.conf配置文件,添加“user_config_dir”配置項(xiàng)。
有了上述配置以后,就可以在/etc/vsftpd/vusers_dir/目錄中為每個(gè)虛擬用戶分別建立配置文件了。
在vsftpd.conf文件中啟用了“user_config_dir”配置項(xiàng)以后,應(yīng)該為每一個(gè)虛擬用戶都建立一個(gè)單獨(dú)的配置用戶(可以是空文件),否則該用戶可能會(huì)無(wú)法登錄。在每個(gè)用戶的獨(dú)立配置文件中,可以添加新的配置項(xiàng)來(lái)限制訪問(wèn)權(quán)限、下載速率等。
有了虛擬用戶數(shù)據(jù)庫(kù)文件,并為vsftpd正確添加了虛擬用戶支持以后,就可以重新加載vsftpd服務(wù)程序了。用戶可以使用FTP客戶程序訪問(wèn)該FTP服務(wù)器,以虛擬用戶賬號(hào)進(jìn)行測(cè)試。
FTP服務(wù)器搭建完成!
? 使用user_list用戶列表文件
當(dāng)vsftpd服務(wù)器開(kāi)放了“l(fā)ocal_enable”配置項(xiàng)以后,默認(rèn)情況下所有的系統(tǒng)用戶都可以登錄到此FTP服務(wù)器。若只希望對(duì)一小部分系統(tǒng)用戶開(kāi)放FTP服務(wù),則需要開(kāi)放用戶列表控制的相關(guān)配置項(xiàng),其中主要包括userlist_enbale、userlist_deny。如圖所示:
? 修改vsftpd服務(wù)的監(jiān)聽(tīng)地址、端口
更改端口號(hào)后,Linux訪問(wèn):ftp://IP地址端口號(hào)
? 允許使用FTP服務(wù)器的被動(dòng)模式
? 主動(dòng)模式:服務(wù)器主動(dòng)發(fā)起數(shù)據(jù)連接。首先由客戶端向服務(wù)端的21端口建立FTP控制連接,當(dāng)需要傳輸數(shù)據(jù)時(shí),客戶端以PORT命令告知服務(wù)器“我打開(kāi)了某端口,你過(guò)來(lái)連接我”,于是服務(wù)器從20端口向客戶端的該端口發(fā)送請(qǐng)求并建立數(shù)據(jù)連接。
? 被動(dòng)模式:服務(wù)器被動(dòng)等待數(shù)據(jù)連接。如果客戶機(jī)所在網(wǎng)絡(luò)的防火墻禁止主動(dòng)模式連接,通常會(huì)使用被動(dòng)模式。首先由客戶端向服務(wù)器端的21端口建立FTP控制連接。當(dāng)需要傳輸數(shù)據(jù)時(shí),服務(wù)器已PASV命令告知客戶端“我打開(kāi)了某端口,你過(guò)來(lái)連接我”,于是客戶端向服務(wù)器的該端口(非20)發(fā)送請(qǐng)求并建立數(shù)據(jù)連接。