歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> vsftpd 配置(中)

vsftpd 配置(中)

日期:2017/3/1 18:10:55   编辑:Linux技術
4. IP監聽與連接控制
vsftpd工作在獨立模式(standalone)下的啟動參數有兩項:
listen=yes/no
listen_ipv6=yes/no
其中第一條已經前面已經提過了,第二條應用在ipv6網絡環境中,這兩相參數只能有一條值為yes。
在實際的網絡環境中,服務器通常都有多個IP地址,而每個IP地址連接不同的網段,我們可能並不希望在所有網段的上的計算機都能訪問服務器。而默認情況下,vsftpd將在所有的IP地址上監聽,因此,我們需要下面兩行:
listen_address=監聽 ip
listen_address6=監聽 ip
這兩行分別是針對IPv4和IPv6環境的。
下面的兩項是vsftpd並發連接控制:
max_clients=數字
max_per_ip=數字
參數max_clients設置了服務器可以接受的最大並發連接數量,max_per_ip設置了每個客戶端IP可以發起的最大連接數。針對服務器性能適當設置這兩個參數,可以在服務器可接受的連接數量和連接速度之間找到平衡點。這兩項默認值均為0,表示無限制。
accept_timeout=數字
connect_timeout=數字
data_connection_timeout=數字
idle_session_timeout=數字
上面的數字都是以秒為單位的。其中 access_timeout 代表以 pasv數據連接模式的時候,數據連接的超時;connect_timeout 表示以 port模式連接數據連接時的超時時間;關於ftp服務連接模式下面會有詳細介紹。data_connection_timeout 表示數據連接後數據連接等待的空閒時間超時,超過時間後,數據連接將斷開連接;idle_session_timeout 設置發呆時間,也就是客戶端隔多長時間不與服務器有交互 ftp 命令,將自動斷開 ftp 服務連接。
5. 關於連接端口設置
我們知道 ftp 服務有一點是不同於其他的服務的是,ftp 服務使用的是 tcp 雙連接通道,也就是ftp-server 和 ftp-data 連接。我們可以這麼理解:ftp-server 連接接受客戶端連接請求、並發控制、身份和權限認證以及傳輸客戶端下達的命令。ftp-data連接負責傳輸數據,也就是說當有數據傳輸的時候才會有這條連接。我們先來看一下 ftp-server 的設置:
listen_port=端口號
那麼這條設置可以設置 ftp-server 端口號,默認為21,如果我們指定了其它端口號,那麼客戶端連接服務器上時就得使用指定端口號了。我們將這一行加入主配置文件中:
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.
……
已經看到效果了,接下來我們討論ftp-data連接的問題。
FTP數據傳輸有兩種模式:FTP Port模式和FTP Passive模式,兩種工作方式截然不同。
FTP Port模式
在FTP Port模式下,客戶端與服務器建立ftp-server連接之後,如果某條指令涉及到數據傳送,就需要建立ftp-data連接。其實連接步驟如下:
(1) 客戶端啟用另一個高於1024的空閒端口xx做連接准備,並且使用port命令利用ftp-server信道向服務器發送一個數據包,數據包裡包含客戶端的IP地址和xx端口,告訴服務器客戶端xx端口已做好連接准備。Port命令還支持第三方(third-party)模式,第三方模式是客戶端告訴服務器端打開與另台主機的連接。
(2) 服務器以ftp-data端口(默認為20)主動向客戶端xx端口進行連接。
(3) 客戶端響應服務器連接,並繼續完成三次握手後,ftp-data連接建立,開始傳送數據。當數據傳輸完畢後,服務器ftp-data端口就處於等待關閉狀態。
我們看到,Port模式下ftp-data連接請求是由服務器發起的。現在來看一下vsftpd中關於Port模式的語句設置:
port_enable=yes/no //是否啟用 port 模式
connect_from_port_20=yes/no //port 模式下是否默認使用固定的 20 端口
ftp_data_port=port_number //指定 port 模式的端口號
port_promiscuous=yes/no //是否使用安全的 port 模式
將port_enable 設置為 yes,就采用 port 模式。在 port 模式下端口如果采用固定的20 端口,就把connect_from_port_20選項就設為yes,這是很多服務器默認的設置規則。我們也可以指定其他的端口,那麼這也就由ftp_data_port 來指定固定端口。port_promiscuous 默認值為no,表示ftp-data連接之前檢驗一下數據連接的目標ip 的是否是真正客戶端的IP,反之則不檢查。除非你確保服務器是與真正的客戶端進行連接,否則不要將此參數值改為yes。 上一頁12 3 4 5 下一頁 閱讀全文
Copyright © Linux教程網 All Rights Reserved