iptalbes配置ftp的主\被動模式
FTP協定有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
Port模式:ftp server:tcp 21 <------client:dynamic ftp server:tcp 20 ------>client:dynamic
Pasv模式:ftp server:tcp 21 <----client:dynamic ftp server:tcp dynamic <----client:dynamic
PORT(主動)方式的連接配接過程是:用戶端向伺服器的FTP端口(預設是21)發送連接配接請求,伺服器接受連接配接,建立一條指令鍊路。當需要傳送資料時,客戶 端在指令鍊路上用PORT指令告訴伺服器:“我打開了XXXX端口,你過來連接配接我”。于是伺服器從20端口向用戶端的XXXX端口發送連接配接請求,建立一條 資料鍊路來傳送資料。
PASV(被動)方式的連接配接過程是:用戶端向伺服器的FTP端口(預設是21)發送連接配接請求,伺服器接受連接配接,建立一條指令鍊路。當需要傳送資料時,服務 器在指令鍊路上用PASV指令告訴用戶端:“我打開了XXXX端口,你過來連接配接我”。于是用戶端向伺服器的XXXX端口發送連接配接請求,建立一條資料鍊路來 傳送資料。
我的linux伺服器工作在透明模式,ftp伺服器作業系統為win 2003,使用ServerU軟體。
是以我需要在forward鍊裡增加兩條規則(第一條規則是用來建立ftp連接配接的,第二條規則是使用動态端口的)
# Enable passive ftp transfers
iptables -A FORWARD -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
本文轉自gaodi2002 51CTO部落格,原文連結:http://blog.51cto.com/gaodi2002/1618200