亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vsftpd 配置(中)

  發(fā)布時(shí)間:2009-03-10 15:08:07   作者:佚名   我要評論
4. IP監(jiān) 聽與連接控制 vsftpd工作在模式(standalone)下的啟動(dòng)參數(shù)有兩項(xiàng): listen=yes/no listen_ipv6=yes/no 其中第一條已經(jīng)前面已經(jīng)提過了,第二條應(yīng)用在ipv6

4. IP監(jiān) 聽與連接控制
     vsftpd工作在模式(standalone)下的啟動(dòng)參數(shù)有兩項(xiàng):
     listen=yes/no
     listen_ipv6=yes/no
     其中第一條已經(jīng)前面已經(jīng)提過了,第二條應(yīng)用在ipv6網(wǎng)絡(luò)環(huán)境中,這兩相參數(shù)只能有一條值為yes。
     在實(shí)際的網(wǎng)絡(luò)環(huán)境中,服務(wù)器通常都有多個(gè)IP地址,而每個(gè)IP地址連接不同的網(wǎng)段,我們可能并不希望在所有網(wǎng)段的上的計(jì)算機(jī)都能訪問服務(wù)器。而默認(rèn)情況下,vsftpd將在所有的IP地址上監(jiān) 聽,因此,我們需要下面兩行:
     listen_address=監(jiān) 聽 ip
     listen_address6=監(jiān) 聽 ip
     這兩行分別是針對IPv4和IPv6環(huán)境的。
     下面的兩項(xiàng)是vsftpd并發(fā)連接控制:
     max_clients=數(shù)字
     max_per_ip=數(shù)字
     參數(shù)max_clients設(shè)置了服務(wù)器可以接受的最大并發(fā)連接數(shù)量,max_per_ip設(shè)置了每個(gè)客戶端IP可以發(fā)起的最大連接數(shù)。針對服務(wù)器性能適當(dāng)設(shè)置這兩個(gè)參數(shù),可以在服務(wù)器可接受的連接數(shù)量和連接速度之間找到平衡點(diǎn)。這兩項(xiàng)默認(rèn)值均為0,表示無限制。
     accept_timeout=數(shù)字
     connect_timeout=數(shù)字
     data_connection_timeout=數(shù)字
     idle_session_timeout=數(shù)字
     上面的數(shù)字都是以秒為單位的。其中 access_timeout 代表以 pasv數(shù)據(jù)連接模式的時(shí)候,數(shù)據(jù)連接的超時(shí);connect_timeout 表示以 port模式連接數(shù)據(jù)連接時(shí)的超時(shí)時(shí)間;關(guān)于ftp服務(wù)連接模式下面會(huì)有詳細(xì)介紹。data_connection_timeout 表示數(shù)據(jù)連接后數(shù)據(jù)連接等待的空閑時(shí)間超時(shí),超過時(shí)間后,數(shù)據(jù)連接將斷開連接;idle_session_timeout 設(shè)置發(fā)呆時(shí)間,也就是客戶端隔多長時(shí)間不與服務(wù)器有交互 ftp 命令,將自動(dòng)斷開 ftp 服務(wù)連接。
5. 關(guān)于連接端口設(shè)置
     我們知道 ftp 服務(wù)有一點(diǎn)是不同于其他的服務(wù)的是,ftp 服務(wù)使用的是 tcp 雙連接通道,也就是ftp-server 和 ftp-data 連接。我們可以這么理解:ftp-server 連接接受客戶端連接請求、并發(fā)控制、身份和權(quán)限認(rèn)證以及傳輸客戶端下達(dá)的命令。ftp-data連接負(fù)責(zé)傳輸數(shù)據(jù),也就是說當(dāng)有數(shù)據(jù)傳輸?shù)臅r(shí)候才會(huì)有這條連接。我們先來看一下 ftp-server 的設(shè)置:
     listen_port=端口號
     那么這條設(shè)置可以設(shè)置 ftp-server 端口號,默認(rèn)為21,如果我們指定了其它端口號,那么客戶端連接服務(wù)器上時(shí)就得使用指定端口號了。我們將這一行加入主配置文件中:
     listen_port=2121
     # ftp 127.0.0.1
     ftp: connect: Connection refused
     ftp> open 127.0.0.1 2121
     Connected to 127.0.0.1.
     220 (vsFTPd 2.0.5)
     530 Please login with USER and PASS.
     ……
     已經(jīng)看到效果了,接下來我們討論ftp-data連接的問題。
     FTP數(shù)據(jù)傳輸有兩種模式:FTP Port模式和FTP Passive模式,兩種工作方式截然不同。
     FTP Port模式
     在FTP Port模式下,客戶端與服務(wù)器建立ftp-server連接之后,如果某條指令涉及到數(shù)據(jù)傳送,就需要建立ftp-data連接。其實(shí)連接步驟如下:
     (1) 客戶端啟用另一個(gè)高于1024的空閑端口xx做連接準(zhǔn)備,并且使用port命令利用ftp-server信道向服務(wù)器發(fā)送一個(gè)數(shù)據(jù)包,數(shù)據(jù)包里包含客戶端的IP地址和xx端口,告訴服務(wù)器客戶端xx端口已做好連接準(zhǔn)備。Port命令還支持第三方(third-party)模式,第三方模式是客戶端告訴服務(wù)器端打開與另臺(tái)主機(jī)的連接。
     (2) 服務(wù)器以ftp-data端口(默認(rèn)為20)主動(dòng)向客戶端xx端口進(jìn)行連接。
     (3) 客戶端響應(yīng)服務(wù)器連接,并繼續(xù)完成三次握手后,ftp-data連接建立,開始傳送數(shù)據(jù)。當(dāng)數(shù)據(jù)傳輸完畢后,服務(wù)器ftp-data端口就處于等待關(guān)閉狀態(tài)。
     我們看到,Port模式下ftp-data連接請求是由服務(wù)器發(fā)起的?,F(xiàn)在來看一下vsftpd中關(guān)于Port模式的語句設(shè)置:
     port_enable=yes/no                               //是否啟用 port 模式
     connect_from_port_20=yes/no                    //port 模式下是否默認(rèn)使用固定的 20 端口
     ftp_data_port=port_number                        //指定 port 模式的端口號
     port_promiscuous=yes/no                 //是否使用安全的 port 模式
     將port_enable 設(shè)置為 yes,就采用 port 模式。在 port 模式下端口如果采用固定的20 端口,就把connect_from_port_20選項(xiàng)就設(shè)為yes,這是很多服務(wù)器默認(rèn)的設(shè)置規(guī)則。我們也可以指定其他的端口,那么這也就由ftp_data_port 來指定固定端口。port_promiscuous 默認(rèn)值為no,表示ftp-data連接之前檢驗(yàn)一下數(shù)據(jù)連接的目標(biāo)ip 的是否是真正客戶端的IP,反之則不檢查。除非你確保服務(wù)器是與真正的客戶端進(jìn)行連接,否則不要將此參數(shù)值改為yes。#p#分頁標(biāo)題#e#
     我們將下面兩行加入配置文件中:
     port_enable=yes
     connect_from_port_20=no
     登錄服務(wù)器運(yùn)行3次ls(顯示文件列表)命令,再在服務(wù)器端運(yùn)行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個(gè)大于1024的端口去連接客戶端,這3個(gè)連接就是3次ls命令產(chǎn)生的。如果我們把connect_from_port_20參數(shù)的值改為yes,再做上述實(shí)驗(yàn),就會(huì)發(fā)現(xiàn)服務(wù)器3次連接都固定打開20端口。如果我們再加上ftp_data_port=2020語句,再做上述實(shí)驗(yàn),服務(wù)器就會(huì)固定開啟2020端口。
  net.JPG (39.08 KB)
2007-5-15 15:06
    大家來看這張圖,局域網(wǎng)客戶機(jī)使用私有IP地址,并采用出口路由器做的 NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)連到 internet。ftp 服務(wù)器采用的是port模式。當(dāng)客戶端使用port命令向服務(wù)器發(fā)出包含自身IP地址和端口的包,此包通過路由器時(shí)路由器必須檢查其內(nèi)容,把包中的IP地址和端口翻譯成分配給客戶的地址和端口,而這個(gè)操作要求路由器必須工作在應(yīng)用層!我們不可能要求每個(gè)客戶的路由器都有此功能,但如果路由器沒有正常完成這步工作,ftp數(shù)據(jù)傳輸就失敗了。
     另外,由于第三方third-party模式的支持,黑客還可能在PORT命令中設(shè)置IP地址和端口號參數(shù)來指定一臺(tái)其它主機(jī)的地址和端口號來發(fā)動(dòng)攻擊(稱為FTP反彈攻擊)。雖然有的防火墻設(shè)備已經(jīng)修正了該問題,但對于大多數(shù)防火墻和路由器來說這個(gè)問題還是一個(gè)非常嚴(yán)重的。
     FTP Passive模式
     下面描述了Passive模式的ftp-data連接建立的步驟:
     (1) 當(dāng)用戶請求數(shù)據(jù)傳輸?shù)臅r(shí)候,客戶端軟件發(fā)送PASV命令給服務(wù)器端表明客戶端希望進(jìn)入Passive模式;
     (2) 服務(wù)器端進(jìn)行應(yīng)答,應(yīng)答數(shù)據(jù)包內(nèi)有服務(wù)器的IP地址和一個(gè)臨時(shí)端口,這個(gè)臨時(shí)的端口是客戶端在打開數(shù)據(jù)傳輸連接時(shí)應(yīng)該使用的端口;
     (3) 客戶端服務(wù)器發(fā)出連接請求,源端口為客戶端自己選擇的一個(gè)臨時(shí)端口,目的端口為服務(wù)器在PASV應(yīng)答命令中指定的臨時(shí)端口號;
     (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è)置開啟這個(gè)范圍的端口以接受客戶端的連接請求。pasv_promiscuous與port_promiscuous參數(shù)一樣是設(shè)置在pasv下是否設(shè)置安全的傳輸,我們也要將其值設(shè)為no(默認(rèn)值即為no)。pasv_address 后接一個(gè)有效的ip地址,來指定pasv打開端口的ip地址。但是默認(rèn)情況下這行是取消的,因?yàn)榉?wù)會(huì)在 tcp 連接的套接字中知道連接的ip地址。我們把主配置文件改成這樣然后看一下設(shè)置效果:
     listen=yes
     anonymous_enable=yes
     pasv_enable=yes
     pasv_min_port=3000
     pasv_max_port=3003
     登錄服務(wù)器運(yùn)行3次ls命令,再在服務(wù)器端運(yùn)行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)生了一個(gè)連接,服務(wù)器開的端口是3000和3003之間。在 vsftpd2.0.3 以后的版本中, pasv 端口允許我們重復(fù)開啟,在之前的版本里是不允許的,也就是說同一個(gè)端口可以同時(shí)與客戶端建立多條連接,大家可以自己試驗(yàn)一下。
     大多數(shù)人認(rèn)為在防火墻網(wǎng)絡(luò)環(huán)境中Passive模式比Port模式的問題少,但我們注意到在Passive模式下,客戶端向服務(wù)器端一個(gè)臨時(shí)的目的端口發(fā)起連接,一些防火墻或者設(shè)備的訪問控制列表(ACL)可能會(huì)阻止這種連接;同樣服務(wù)器的回應(yīng)也是從一個(gè)臨時(shí)的端口到另一個(gè)臨時(shí)的端口,防火墻或者訪問列表也會(huì)阻止這種連接。在許多路由器和防火墻上(包括iptables)允許你使用訪問列表關(guān)鍵字"established"來避免第二個(gè)問題,"established"關(guān)鍵字告訴路由器允許帶ACK標(biāo)志的包通過。而對于第一個(gè)問題,我們雖然使用pasv_min_port和pasv_max_port語句來限制服務(wù)器開設(shè)臨時(shí)端口的范圍,從而在防火墻上打開這些端口,但這樣做還是存在一定的安全漏洞。好在多數(shù)狀態(tài)檢測防火墻例如Linux netfileters支持ftp協(xié)議的深層狀態(tài)檢測,進(jìn)行準(zhǔn)確的PASV動(dòng)態(tài)端口過濾。#p#分頁標(biāo)題#e#
     五、vsftpd高級操作
     這一節(jié)我們介紹一下vsftpd的其它一些知識(shí),其中包括:雙模式切換、基于ip的虛擬ftp 站點(diǎn)、基于數(shù)據(jù)庫虛擬用戶建立及管理、基于 <, FONT face="Arial, sans-serif">OpenSSL 的加密數(shù)據(jù)傳輸。
    1. vsftpd雙模式切換
     前面我們提過,vsftpd 服務(wù)是支持在linux下的兩種服務(wù)模式:(standalone)模式和守護(hù)進(jìn)程(xinetd)模式。在standalone模式下,vsftpd進(jìn)程啟動(dòng)后會(huì)一直占用系統(tǒng)資源,當(dāng)有連接請求時(shí),它會(huì)迅速反應(yīng);在xinetd模式下,ftp服務(wù)是由守護(hù)進(jìn)程統(tǒng)一管理,當(dāng)出現(xiàn)ftp連接請求時(shí),守護(hù)進(jìn)程才將ftp服務(wù)啟動(dòng),這種方式最大的優(yōu)點(diǎn)是沒有連接的時(shí)候ftp服務(wù)不會(huì)占用系統(tǒng)資源,處于睡眠狀態(tài),但因?yàn)橐ㄙM(fèi)時(shí)間去喚醒該服務(wù),所以響應(yīng)時(shí)間較長。
    之前做的試驗(yàn)一直是把vsftpd 做在模式下,下面我們把它移到守護(hù)進(jìn)程下。注意在工作在守護(hù)進(jìn)程下時(shí),有的參數(shù)并不起作用,詳細(xì)請查閱vsftpd幫助信息(man vsftpd.conf)。
     我們需要在守護(hù)進(jìn)程配置目錄/etc/xinetd.d/里建立vsftpd 的守護(hù)進(jìn)程文件。我們在安裝時(shí)已經(jīng)將該文件考到/etc/xinetd.d/目錄下了。我們稍稍修改其內(nèi)容:
     #vi /etc/xinetd.d/vsftpd
     service ftp
     {
         disable             = no
         socket_type                = stream
         wait                        = no
         user                        = root
         server                = /usr/local/sbin/vsftpd
         server_args                = /etc/vsftpd/vsftpd.conf
         nice                        = 10
     }
     接下來把配置文件中的listen=yes或listen_ipv6=yes去掉,停掉vsftpd服務(wù),重啟xinetd服務(wù):
     # sesrvice vsftpd stop
     # service xinetd restart
     重新啟動(dòng)守護(hù)進(jìn)程后,vsftpd 服務(wù)就會(huì)讓守護(hù)進(jìn)程來管理了。在守護(hù)進(jìn)程管理過程中,我們再修改主配置文件的話,就不需要重新啟動(dòng)服務(wù)了。
2. 基于IP的虛擬ftp站點(diǎn)
     這一小節(jié)我們來討論在同一服務(wù)器上建立多個(gè)ftp站點(diǎn),每個(gè)站點(diǎn)相互,擁有的配置文件。當(dāng)然服務(wù)器必須有兩個(gè)以上的IP地址。在standalone模式下,我們可以考慮啟動(dòng)多個(gè)ftp服務(wù)進(jìn)程;在xinetd模式下,可以讓守護(hù)進(jìn)程來管理。下面我們分別討論這兩種情況。為簡單起見,我們在服務(wù)器上建立兩個(gè)匿名虛擬站點(diǎn)。下面是這兩個(gè)站點(diǎn)的信息:
                站點(diǎn)1                              站點(diǎn)2                
     ip地址                         192.168.0.105
       192.168.0.106 
    主配置文件                    /etc/vsftpd/vsftpd.conf 
    /etc/vsftpd/vsftpd2.conf 
    匿名用戶映射的本地用戶名 
          默認(rèn)為ftp           新建立ftp2
    匿名用戶主目錄                          /var/ftp/  
           /var/ftp2/                
standalone模式下虛擬站點(diǎn)的建立
     首先我們修改站點(diǎn)1的配置文件/etc/vsftpd/vsftpd.conf為下面所示:
     listen=yes
     listen_address=192.168.0.105
     anonymous_enable=yes
     local_enable=yes
     pam_service_name=vsftpd#p#分頁標(biāo)題#e#
     write_enable=yes
     ftpd_banner=This is ftp1 site
     站點(diǎn)1就這樣配置完畢了。接下來為站點(diǎn)2建立ftp2的用戶:
     # mkdir /var/ftp2/
     # useradd -d /var/ftp2/ ftp2
     為了讓站點(diǎn)2知道匿名用戶的主目錄為/var/ftp2,我們需要在配置文件中手動(dòng)指定站點(diǎn)2使用ftp2用戶登錄,于是我們要用到下面這條語句:
     ftp_username=local_username
     建立站點(diǎn)2的配置文件/etc/vsftpd/vsftpd2.conf,內(nèi)容如下:
     listen=yes
     listen_address=192.168.0.106
     anonymous_enable=yes
     local_enable=yes
     pam_service_name=vsftpd
     write_enable=yes
     ftp_username=ftp2
     ftpd_banner=This is ftp2 site
     接下來我們啟動(dòng)vsftpd服務(wù),就可以看到效果了。需要注意的是這里就不能用service vsftpd start命令來啟動(dòng)服務(wù)了,必須用第三節(jié)前面介紹的方式啟動(dòng)。
     # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &
     [1] 2287
     # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd2.conf &
     [1] 2288
     # ftp 192.168.0.105
     Connected to 192.168.0.105.
     220 This is ftp1 site
     530 Please login with USER and PASS.
     ……
     # ftp 192.168.0.106
     Connected to 192.168.0.106.
     220 This is ftp2 site
     ……
     我們在各自的配置文件設(shè)置了不同的banner,上面已經(jīng)看到效果了。
     守護(hù)進(jìn)程模式下虛擬站點(diǎn)的建立
     在standalone模式下,IP的綁定在配置文件里配置了,配置文件名及其位置在啟動(dòng)服務(wù)的命令參數(shù)里指定;在xinetd模式下,這兩步需要在守護(hù)進(jìn)程配置文件里配置。這樣在守護(hù)進(jìn)程里面我們就得用到這兩個(gè)設(shè)置:
     bind=綁定的ip
     server_args=每個(gè)站點(diǎn)的配置文件
     那么我們來做守護(hù)進(jìn)程文件,首先來寫站點(diǎn)1的守護(hù)進(jìn)程文件:
     # vi /etc/xinetd.d/vsftpd
     service ftp
     {
         disable             = no
         socket_type       = stream
         wait              = no
         user              = root
         server            = /usr/local/sbin/vsftpd
         server_args       = /etc/vsftpd/vsftpd.conf
         nice              = 10
         bind              = 192.168.0.105
     }
     再建立站點(diǎn)2的守護(hù)進(jìn)程文件,并輸入下面的內(nèi)容
     # vi /etc/xinetd.d/vsftpd2
     service ftp
     {
         disable             = no
         socket_type            = stream
         wait                   = no
         user                   = root
         server                 = /usr/local/sbin/vsftpd
         server_args           = /etc/vsftpd/vsftpd2.conf
         nice                   = 10
         bind                   = 192.168.0.106#p#分頁標(biāo)題#e#
     }
     這樣兩個(gè)守護(hù)進(jìn)程文件就寫完了,用戶也在上個(gè)試驗(yàn)已經(jīng)建立完了。接下來繼續(xù)修改兩個(gè)站點(diǎn)的配置文件,均是把listen、listen_address兩行刪去即可?,F(xiàn)在我們可以重新啟動(dòng)xinetd服務(wù),測試結(jié)果就不貼出來了。

相關(guān)文章

  • linux安裝vsftpd和vsftpd配置步驟

    這篇文章主要介紹了linux安裝vsftpd和vsftpd配置步驟,需要的朋友可以參考下
    2014-04-17
  • vsftpd 配置

    0、關(guān)于本文檔   本文檔是個(gè)人的學(xué)習(xí)整理,允許大家翻閱,摘抄,引用,更歡迎指出其中不對之處,文檔的內(nèi)容主要來自VSFTPD自身文檔、個(gè)人學(xué)習(xí)心得以及網(wǎng)絡(luò)資料,若有類同
    2009-03-10
  • vsftpd 配置例子

    #匿名用戶 anonymous_enable=NO #anon_mkdir_write_enable=YES #anon_upload_enable=YES #本地用戶能否登陸 #local_enable=YES #是否可寫 write_enable=YES #VSFTP
    2009-03-10
  • FreeBsd6.2下ports安裝配置vsftpd

    安裝vsftpd #cd /usr/ports/ftp/vsftpd #make WITH_RC_NG=yes install clean 出現(xiàn)對話框,全選安裝選項(xiàng)! 查看安裝信息:#pkg_info | grep vsftpd vsftpd-2.0.5&
    2008-09-08
  • freebsd vsftpd 配置方法

    1.安裝 # cd /usr/ports/ftp/vsftpd/ # make install clean 2.配置 編輯 /etc/inetd.conf , 加入下面一行: ftp stream tcp nowait root /
    2008-09-08
  • LINUX系統(tǒng)下vsftpd 命令詳解

    FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操 作系統(tǒng)下使用FTP,都會(huì)遇到大量的FTP內(nèi)部命令。 熟悉并靈活應(yīng)用FTP的內(nèi)部 命令,可以大大方便使用者,
    2008-09-08
  • Ubuntu Linux上安裝SSH和vsFTPd的方法

    這篇文章主要介紹了Ubuntu Linux上安裝SSH和vsFTPd的方法,需要的朋友可以參考下
    2014-06-26

最新評論