全部博文(191)
分类:
2009-07-08 14:51:57
一、ftp主动式连接图示如下:
1、 如图示:
第一步、首先是客户端随机打开>1023端口连接到FTP服务器的21端口,同时客户端随机打开了另一个>1023端口,处于wait状态。
第二步、随后FTP服务器发来一个“ACK“确认连接成功。
第三步、同时FTP服务器的20端口主动连接客户端处于wait状态的>1023端口。
第四步、连接之后,客户端发来一个“ACK“确认连接成功。
2:以下实验继续分析:
第一步、环境
客户端IP:192.168.1.113 FTP服务器IP:192.168.1.112 ,用户apple
第二步、连接FTP服务器192.168.1.112
[root@www /]# ftp -d 192.168.1.112--------- -d 参数显示更多信息
Connected to 192.168.1.112.
220 (vsFTPd 2.0.5)
ftp: setsockopt: Bad file descriptor
---> AUTH GSSAPI
530 Please login with USER and PASS.
---> AUTH KERBEROS_V4
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.112:root): apple-----------------用户apple
---> USER apple
331 Please specify the password.
Password: ----------------------------密码
---> PASS XXXX
230 Login successful.
cmds.c:276: verbose=1 debug=1 overbose=1
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
---> PASV --------------默认是被动模式
227 Entering Passive Mode (192,168,1,112,110,177) ###被动模式端口(后续再将,以免混淆)
---> LIST
150 Here comes the directory listing.
drwxr-xr-x 2 500 500 4096 Jun 11 22:29 Desktop
drwxrwxrwx 2 500 500 4096 Jul 05 10:23 mnt
226 Directory send OK.
ftp> passive-------------------------关闭被动模式,打开主动模式
Passive mode off-------------------被动模式已经关闭
ftp> ls
---> PORT 192,168,1,113,207,252 ---------------主动模式
200 PORT command successful. Consider using PASV.
---> LIST
150 Here comes the directory listing.
drwxr-xr-x 2 500 500 4096 Jun 11 22:29 Desktop
drwxrwxrwx 2 500 500 4096 Jul 05 10:23 mnt
226 Directory send OK.
第三步、看看被动模式下的端口状态
netstat -an |less
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address Stat
tcp 0 0 192.168.1.112:21 192.168.1.113:41379 ESTABLISHED
tcp 0 0 192.168.1.112:20 192.168.1.113:47898 TIME_WAIT
分析:客户端随机打开两个>1024端口,即41379和47898;
服务器打连接端口是21,数据端口是20
问题:FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。
解决:
Iptables防火墙需要添加如下理论规则:
第一条规则:允许客户机从大于1024端口连接FTP服务器21端口
第二条规则:允许服务器从21端口回应FTP客户端中大于1024端口的网络连接
第三条规则:允许FTP服务器从20端口主动连接客户端中大于1024的端口
第四条规则:允许FTP客户端从大于1024端口回应来自FTP服务器20端口的连接
*****************完***************