劉陸民 董園飛
摘 要:FTP是目前互聯(lián)網(wǎng)上使用的比較廣泛的一種協(xié)議,它具高速傳輸數(shù)據(jù)和穩(wěn)定性的特點(diǎn),是基于GPL發(fā)布的在Unix/Linux操作系統(tǒng)上使用的非常安全穩(wěn)定的FTP服務(wù)器軟件,它可以做基于多個(gè)IP地址的虛擬FTP主機(jī)服務(wù)器,并且支持虛擬用戶和帶寬限制。文章通過(guò)對(duì)vsftpd虛擬用戶的研究,提出一種安全認(rèn)證機(jī)制,在提高傳輸效率的同時(shí),保證傳輸通道的安全性。
關(guān)鍵詞:vsftpd;虛擬用戶;安全認(rèn)證
在互聯(lián)網(wǎng)飛速發(fā)展的今天,人們結(jié)合自己在生活中遇到的問(wèn)題經(jīng)常需要去網(wǎng)上下載和上傳相關(guān)資源,在給別人提供方便的同時(shí),也能讓自己學(xué)到更多的知識(shí)。Linux下可用的FTP服務(wù)器端是很多的,如vsftp,proftp,uw-ftp等,其中vsftp用得最多,它和很多網(wǎng)絡(luò)服務(wù)一樣,也是按照客戶機(jī)/服務(wù)器系統(tǒng)(C/S)模式。針對(duì)FTP協(xié)議提供兩個(gè)端口,分別是20和21,其中21端口用于連接客戶端,服務(wù)器通過(guò)這個(gè)端口來(lái)查看是否有客戶端發(fā)送請(qǐng)求,另外一個(gè)20號(hào)端口用于傳輸數(shù)據(jù),F(xiàn)TP客戶端會(huì)用大于1024的一個(gè)隨機(jī)端口去連接FTP服務(wù)器21端口,當(dāng)傳輸數(shù)據(jù)時(shí),客戶端會(huì)隨機(jī)產(chǎn)生另外一個(gè)大于1024的端口去請(qǐng)求連接服務(wù)器20號(hào)端口,服務(wù)器接收到請(qǐng)求后會(huì)用自己的20端口主動(dòng)去連接客戶端,待文件傳輸完成后,再將該端口釋放掉,F(xiàn)TP服務(wù)具有管理簡(jiǎn)單性和雙向傳輸功能,所以目前使用得相當(dāng)廣泛[1]。
雖然使用FTP服務(wù)可以快速實(shí)現(xiàn)文件簡(jiǎn)單傳輸,但FTP協(xié)議本身使用明文的方式傳輸數(shù)據(jù),這就使得FTP服務(wù)存在著一定的安全隱患。為此,本文提出一種創(chuàng)建虛擬用戶采用加密通道的方式來(lái)訪問(wèn)FTP服務(wù)器,實(shí)現(xiàn)了在滿足訪問(wèn)資源的同時(shí)保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
1 vsftp虛擬用戶實(shí)現(xiàn)方式
根據(jù)用戶的類型不同,登錄FTP通常有以T3種方式。
(1)匿名用戶登錄:在訪問(wèn)FTP時(shí),不需要使用用戶名密碼登錄就可以看到服務(wù)器上存放的相關(guān)資源。
(2)本地用登錄:使用超級(jí)管理員創(chuàng)建的普通用戶登錄,給其密碼實(shí)現(xiàn)用戶登錄。
(3)虛擬用戶登錄:對(duì)于本地用戶來(lái)說(shuō),虛擬用戶是FTP服務(wù)器的專有用戶,虛擬用戶用來(lái)訪問(wèn)服務(wù)器提供的專有資源,很大程度上提高了服務(wù)器的安全性。相對(duì)于匿名用戶來(lái)說(shuō),虛擬用戶需要提供用戶名和密碼來(lái)訪問(wèn)服務(wù)器獲取服務(wù)器中指定的數(shù)據(jù),提高服務(wù)器安全的同時(shí)增加了對(duì)用戶和下載的可管理性。
FTP的兩種工作模式:(1)主動(dòng)模式。服務(wù)端從20號(hào)端口主動(dòng)向客戶端發(fā)起連接。(2)被動(dòng)模式。服務(wù)端在指定范圍內(nèi)的某個(gè)端口被動(dòng)等待客戶端發(fā)起連接。
主配置文件:/etc/vsftpd/vsftpd.conf權(quán)限是600,只有root具備可讀寫的權(quán)限。禁止登陸的FTP用戶列表:/etc/vsftp d/ftpusers/etc/vsftpd/user_list提供一份FTP用戶列表,是否禁止登陸,取決于主配置文件中的設(shè)置。
2 具體實(shí)現(xiàn)過(guò)程
以企業(yè)實(shí)例,詳細(xì)描述如何在Redhat9上實(shí)現(xiàn)虛擬用戶訪問(wèn)FTP服務(wù)器資源。要求實(shí)現(xiàn):(1)允許匿名用戶訪問(wèn)下載服務(wù)器上資源,不能上傳、創(chuàng)建和刪除資源。(2)允許Tom用戶登錄,可以下載文件,但不能上傳。允許lansha用戶可以登錄,可以下載和上傳文件[2]。
2.1 下載軟件包
下載vsftpd軟件包,使用tar命令解壓縮,vsftp下載地址http s://pkgs.org/download/vsftpd.有32位和64位可供選擇,結(jié)合本機(jī)需求下載指定軟件包,這里我們下載64位軟件包。
#tar -zxvf vsftpd-3.0.3.tar.gz
#rpm -ivh vsftpd-3.0.3-16.e15_4.l.i386.rpm
2.2 構(gòu)建基于虛擬用戶的vsftpd服務(wù)器
詳細(xì)步驟如下:(1)建立虛擬FTP用戶的賬號(hào)數(shù)據(jù)庫(kù)文件。(2)使用超級(jí)管理員創(chuàng)建FTP根目錄及虛擬用戶映射的系統(tǒng)用戶。(3)創(chuàng)建支持虛擬用戶的PAM認(rèn)證文件。(4)在vsftpd.conf文件中添加支持配置。(5)為個(gè)別虛擬用戶建立獨(dú)立的配置文件。(6)重新加載vsftpd配置。(7)使用虛擬FTP賬戶訪問(wèn)測(cè)試[3]。
2.2.1 建立虛擬FTP用戶的賬號(hào)數(shù)據(jù)庫(kù)文件
建立虛擬用戶賬號(hào)數(shù)據(jù)庫(kù)文件用于存放授權(quán)用戶的賬號(hào),具體過(guò)程如下:
# vim vusers.txt
wendy 123
natasha 456
# db_ load_T—t hash -fvusers.txt vusers.db
# file vusers.db
vusers.db: Berkeley DB (Hash, version 8,native byte-order)
# chmod 600 /etc/vsftpd/{vusers.txt,vusers.db
2.2.2 創(chuàng)建FTP根目錄及虛擬用戶映射的系統(tǒng)用戶
# mkdir /var/ftproot
#useradd—d/var/ftproot-s /sbin/nologin vsftp
# chmod 755 /var/ftproot
#chown vsftp:vsftp /var/ftproot
2.2.3 創(chuàng)建支持虛擬用戶的PAM認(rèn)證文件
#vim /etc/pam.d/vsftpd.vu
auturequired pam—userdb.so db=/etc/vsftp/vusers∥這兒vusers指的是vusers.db文件,在這要把db省略,否則報(bào)錯(cuò),當(dāng)時(shí)筆者就出錯(cuò)在這兒
account required pam_userdb.so db=/etc/vsftp/vusers//這個(gè)地方同上
2.2.4 編輯vsftp.conf配置文件,添加支持配置
匿名用戶:anonymous或ftp
anonymous_enable=YES∥啟用匿名訪問(wèn)
anon_ umask-022 11匿名用戶所上傳的權(quán)限掩碼
anon_root=/var/ftp∥匿名用戶的FTP根目錄
anon_upload_enable=YES∥允許匿名用戶上傳文件
anon_mkdir_ write_enable-YES//允許匿名用戶創(chuàng)建目錄
anon_other write_ enable-YES//開(kāi)放匿名用戶其他的權(quán)限
anon__ max_ rate=0 11限制最大傳輸速率,單位為字節(jié)
常用的本地用戶FTP配置項(xiàng)
listen=YES//是否以獨(dú)立運(yùn)行的方式監(jiān)聽(tīng)服務(wù)
listen address-192.168.4.1 11設(shè)置監(jiān)聽(tīng)的IP地址
listen_port=21//設(shè)置監(jiān)聽(tīng)FTP服務(wù)的端口號(hào)
write enable-YES//是否允許下載文件
userlist enable-YES//是否啟用user list中的用戶列表
max clients-0//限制并發(fā)客戶端連接數(shù)
max_per_jp=0//限制同-IP地址的并發(fā)連接數(shù)目
#vim /etc/vsftpd/vsftpd.conf
local enable=YES
write enable=YES
anon_ umask=022
guest_enable=YES
guest- username=vsftp
pam_service__ name=vsftpd.vu
user_config_dir=/etc/vsfipf/vu sers
2.2.5 為個(gè)別虛擬用戶建立獨(dú)立配置文件
# mkdir /etc/vsftpd/vusers;cd /etc/vsftpd/vusers
#vim wendy
anon_upload_enable=NO
anon__ mkdir write_ enable-NO
# vim natasha
anon_upload_enable=YES
anon__ mkdir write_ enable-YES
2.2.6 重新啟動(dòng)vsftp服務(wù),使用ftp虛擬賬戶測(cè)試
# service vsftpd restart
測(cè)試結(jié)果Tom用戶可以登錄,可以下載文件,但不能上傳
lansha用戶可以登錄,可以下載文件,可以上傳
3 結(jié)語(yǔ)
互聯(lián)網(wǎng)的普及使得資源利用共享得到快速發(fā)展,F(xiàn)TP備受各位企事業(yè)單位青睞。本文利用客戶端輸入虛擬用戶的名稱和密碼連接服務(wù)器,虛擬用戶會(huì)映射到系統(tǒng)賬號(hào)vuser文件中登錄ftp,然后修改服務(wù)器的配置文件vsftpd.conf找到虛擬用戶配置文件的存放目錄,根據(jù)虛擬用戶的配置文件指定的目錄路徑(local_root=/usr/local/amp/apache/htdocs/demo)訪問(wèn)到指定的目錄。注:虛擬用戶訪問(wèn)到的文件根目錄屬主需要改成vuserftp,即真正存在的用戶。在使用過(guò)程當(dāng)中,可以限制或指定用戶不可訪問(wèn)或只可訪問(wèn)服務(wù)器上的定點(diǎn)資源,極大提高了服務(wù)器的安全性與穩(wěn)定性,對(duì)服務(wù)器上的一些數(shù)據(jù)起到至關(guān)重要的作用。
本文的創(chuàng)新點(diǎn):FTP默認(rèn)是明文傳輸數(shù)據(jù)的,可以通過(guò)一些類似sniffer抓包軟件獲取到傳輸?shù)臄?shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行分析破解可以獲取到主機(jī)和服務(wù)器之間傳輸?shù)臄?shù)據(jù),對(duì)數(shù)據(jù)安全性來(lái)說(shuō)是災(zāi)難性的。我們通過(guò)建立支持虛擬用戶的PAM認(rèn)證文件,對(duì)用戶本身認(rèn)證后再傳輸數(shù)據(jù),點(diǎn)對(duì)點(diǎn)的傳輸數(shù)據(jù)被加密起到了保護(hù)作用。本文詳細(xì)描述了基于vsftpd虛擬用戶的實(shí)現(xiàn)過(guò)程,可以將配置好的服務(wù)器文件直接拷貝到其他同系統(tǒng)的服務(wù)器上使用,具有一定的使用價(jià)值。
[參考文獻(xiàn)]
[1]張玉琴.FTP服務(wù)器配置與管理[J].數(shù)字技術(shù)與應(yīng)用,2017 (4):53.
[2]郭杰.基于Vsftpd服務(wù)器數(shù)據(jù)傳輸模式淺析[J]電子測(cè)試,2015 (14):43-46.
[3]韓英慈.使用Linux系統(tǒng)建立網(wǎng)站的方法[J].數(shù)字技術(shù)與應(yīng)用,2016 (4):243.