vsftpd 配置(中)
發(fā)布時間:2009-03-10 15:08:07 作者:佚名
我要評論

4. IP監(jiān) 聽與連接控制
vsftpd工作在模式(standalone)下的啟動參數(shù)有兩項:
listen=yes/no
listen_ipv6=yes/no
其中第一條已經(jīng)前面已經(jīng)提過了,第二條應(yīng)用在ipv6
我們將下面兩行加入配置文件中:
port_enable=yes
connect_from_port_20=no
登錄服務(wù)器運行3次ls(顯示文件列表)命令,再在服務(wù)器端運行netstat命令查看效果:
# ftp 127.0.0.1
Connected to 127.0.0.1.
……
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode off.
ftp> ls
……
226 Directory send OK.
ftp> ls
……
ftp> ls
……
ftp> bye
# netstat -an|more
……
tcp 0 0 127.0.0.1:1069 127.0.0.1:1068 TIME_WAIT
tcp 0 0 127.0.0.1:21 127.0.0.1:1065 TIME_WAIT
tcp 0 0 127.0.0.1:1071 127.0.0.1:1070 TIME_WAIT
tcp 0 0 127.0.0.1:1067 127.0.0.1:1066 TIME_WAIT
……
我們看到服務(wù)器開了3個大于1024的端口去連接客戶端,這3個連接就是3次ls命令產(chǎn)生的。如果我們把connect_from_port_20參數(shù)的值改為yes,再做上述實驗,就會發(fā)現(xiàn)服務(wù)器3次連接都固定打開20端口。如果我們再加上ftp_data_port=2020語句,再做上述實驗,服務(wù)器就會固定開啟2020端口。
net.JPG (39.08 KB)
2007-5-15 15:06
大家來看這張圖,局域網(wǎng)客戶機使用私有IP地址,并采用出口路由器做的 NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)連到 internet。ftp 服務(wù)器采用的是port模式。當(dāng)客戶端使用port命令向服務(wù)器發(fā)出包含自身IP地址和端口的包,此包通過路由器時路由器必須檢查其內(nèi)容,把包中的IP地址和端口翻譯成分配給客戶的地址和端口,而這個操作要求路由器必須工作在應(yīng)用層!我們不可能要求每個客戶的路由器都有此功能,但如果路由器沒有正常完成這步工作,ftp數(shù)據(jù)傳輸就失敗了。
另外,由于第三方third-party模式的支持,黑客還可能在PORT命令中設(shè)置IP地址和端口號參數(shù)來指定一臺其它主機的地址和端口號來發(fā)動攻擊(稱為FTP反彈攻擊)。雖然有的防火墻設(shè)備已經(jīng)修正了該問題,但對于大多數(shù)防火墻和路由器來說這個問題還是一個非常嚴(yán)重的。
FTP Passive模式
下面描述了Passive模式的ftp-data連接建立的步驟:
(1) 當(dāng)用戶請求數(shù)據(jù)傳輸?shù)臅r候,客戶端軟件發(fā)送PASV命令給服務(wù)器端表明客戶端希望進入Passive模式;
(2) 服務(wù)器端進行應(yīng)答,應(yīng)答數(shù)據(jù)包內(nèi)有服務(wù)器的IP地址和一個臨時端口,這個臨時的端口是客戶端在打開數(shù)據(jù)傳輸連接時應(yīng)該使用的端口;
(3) 客戶端服務(wù)器發(fā)出連接請求,源端口為客戶端自己選擇的一個臨時端口,目的端口為服務(wù)器在PASV應(yīng)答命令中指定的臨時端口號;
(4) 服務(wù)器響應(yīng)客戶端請求,并繼續(xù)完成TCP三次握手之后,ftp-data連接建立,開始傳送數(shù)據(jù)。
接下來我們來看看vsftpd中關(guān)于Passive模式中設(shè)置語句:
pasv_enable=yes/no
pasv_min_port=yes/no
pasv_max_port=yes/no
pasv_promiscuous=yes/no
pasv_address=ip_address
第一行設(shè)置是否啟用 pasv 模式。pasv_min_port 和pasv_max_port 是設(shè)置在 pasv 模式下開啟的端口范圍。一般情況下,如果設(shè)置成 pasv 模式,我們最好指定端口范圍,便于防火墻設(shè)置開啟這個范圍的端口以接受客戶端的連接請求。pasv_promiscuous與port_promiscuous參數(shù)一樣是設(shè)置在pasv下是否設(shè)置安全的傳輸,我們也要將其值設(shè)為no(默認值即為no)。pasv_address 后接一個有效的ip地址,來指定pasv打開端口的ip地址。但是默認情況下這行是取消的,因為服務(wù)會在 tcp 連接的套接字中知道連接的ip地址。我們把主配置文件改成這樣然后看一下設(shè)置效果:
listen=yes
anonymous_enable=yes
pasv_enable=yes
pasv_min_port=3000
pasv_max_port=3003
登錄服務(wù)器運行3次ls命令,再在服務(wù)器端運行netstat命令查看效果:
# netstat -an
……
tcp 0 0 192.168.0.105:3000 192.168.0.122:11066 TIME_WAIT
tcp 0 0 192.168.0.105:3002 192.168.0.122:11065 TIME_WAIT
tcp 0 0 192.168.0.105:3001 192.168.0.122:11063 TIME_WAIT
我們看到,每次ls命令產(chǎn)生了一個連接,服務(wù)器開的端口是3000和3003之間。在 vsftpd2.0.3 以后的版本中, pasv 端口允許我們重復(fù)開啟,在之前的版本里是不允許的,也就是說同一個端口可以同時與客戶端建立多條連接,大家可以自己試驗一下。
大多數(shù)人認為在防火墻網(wǎng)絡(luò)環(huán)境中Passive模式比Port模式的問題少,但我們注意到在Passive模式下,客戶端向服務(wù)器端一個臨時的目的端口發(fā)起連接,一些防火墻或者設(shè)備的訪問控制列表(ACL)可能會阻止這種連接;同樣服務(wù)器的回應(yīng)也是從一個臨時的端口到另一個臨時的端口,防火墻或者訪問列表也會阻止這種連接。在許多路由器和防火墻上(包括iptables)允許你使用訪問列表關(guān)鍵字"established"來避免第二個問題,"established"關(guān)鍵字告訴路由器允許帶ACK標(biāo)志的包通過。而對于第一個問題,我們雖然使用pasv_min_port和pasv_max_port語句來限制服務(wù)器開設(shè)臨時端口的范圍,從而在防火墻上打開這些端口,但這樣做還是存在一定的安全漏洞。好在多數(shù)狀態(tài)檢測防火墻例如Linux netfileters支持ftp協(xié)議的深層狀態(tài)檢測,進行準(zhǔn)確的PASV動態(tài)端口過濾。
相關(guān)文章
- 這篇文章主要介紹了linux安裝vsftpd和vsftpd配置步驟,需要的朋友可以參考下2014-04-17
- 0、關(guān)于本文檔 本文檔是個人的學(xué)習(xí)整理,允許大家翻閱,摘抄,引用,更歡迎指出其中不對之處,文檔的內(nèi)容主要來自VSFTPD自身文檔、個人學(xué)習(xí)心得以及網(wǎng)絡(luò)資料,若有類同2009-03-10
- #匿名用戶 anonymous_enable=NO #anon_mkdir_write_enable=YES #anon_upload_enable=YES #本地用戶能否登陸 #local_enable=YES #是否可寫 write_enable=YES #VSFTP2009-03-10
- 安裝vsftpd #cd /usr/ports/ftp/vsftpd #make WITH_RC_NG=yes install clean 出現(xiàn)對話框,全選安裝選項! 查看安裝信息:#pkg_info | grep vsftpd vsftpd-2.0.5&2008-09-08
- 1.安裝 # cd /usr/ports/ftp/vsftpd/ # make install clean 2.配置 編輯 /etc/inetd.conf , 加入下面一行: ftp stream tcp nowait root /2008-09-08
- FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操 作系統(tǒng)下使用FTP,都會遇到大量的FTP內(nèi)部命令。 熟悉并靈活應(yīng)用FTP的內(nèi)部 命令,可以大大方便使用者,2008-09-08
- 這篇文章主要介紹了Ubuntu Linux上安裝SSH和vsFTPd的方法,需要的朋友可以參考下2014-06-26