系統:centos6.2
軟體:vsftpd, iptables
安裝完系統後,預設的iptables的規則只允許狀態為related、estabilished的包和sshd的資料報進入伺服器,當安裝好vsftpd後,通常需要在iptables上面放開21埠,完整的iptables配置如下:
客戶端使用filezilla client進行連線,效果如下圖:
上圖中,伺服器要求使用被動模式(pasv)連線,從圖上可以看出,伺服器監聽埠44892(175*256+92)等待客戶端的連線,但iptables的規則阻止訪問該埠,所以連線失敗。
將filezilla配置為主動模式,如下圖:
連線伺服器:
可以看出連線成功。
因此,在上面的iptables規則下,只能使用主動模式連線。
如何允許使用被動模式呢?
方法一:使用nf_conntrack_ftp模組
插曲:在kernel2.6.19前,這個模組叫ip_conntrack.ko,位於
/lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko。之後,這個模組改名為nf_conntrack_ftp.ko,位於
/lib/modules/`uname -r` /kernel/net/netfilter/nf_conntrack_ftp.ko
這個模組是netfilter專門用來處理ftp這個複雜協議的模組,它能夠將ftp的資料報標識為related狀態,從而允許使用被動模式訪問。
使用命令: modprobe nf_conntrack_ftp 載入該模組,之後客戶端就能以被動模式連線至ftp伺服器了。
上圖所示,使用被動模式,伺服器監聽埠號為159*256+8=40712,在ftp伺服器上檢視tcp連線狀態,如下圖:
的確是使用的40712號埠。
方法二:在vsftp的配置檔案中使用如下兩個選項強制將被動模式時使用的埠號限定在乙個範圍,然後在iptables上執行對這個範圍內埠的訪問,選項如下:
pasv_min_port=10000
pasv_max_port=15000
iptables對區域網內FTP伺服器的設定
以前遇到過一次,因為怕麻煩沒去解決,今天有機會試了一下,這樣客戶端在區域網內也沒有關係了。閘道器設定 modprobe ip nat ftp modprobe ip conntrack modprobe ip conntrack ftp iptables t nat a prerouting i e...
web伺服器和ftp伺服器
web伺服器又稱網路伺服器,http伺服器 伺服器的精髓就是你想在我這看到東西,裡面放一堆網頁,你向我傳送請求,我就找找找,把網頁給你。web伺服器使用的協議是http https 客戶機叫http客戶端 瀏覽器就叫http客戶端 8uftp就叫ftp客戶端 每天都獲取位址,電腦上有dhcp客戶端 ...
伺服器的配置(ftp)
1 安裝ftp 0.17 35.e15.i386.rpm rpm ivh ftp 0.17 35.e15.i386.rpm 2 安裝vsftpd 2.0.5 16.e15.i386.rpm rpm ivh vsftpd 2.0.5 16.e15.i386.rpm 3 重啟服務 etc init.d ...