Chinaunix首页 | 论坛 | 博客
  • 博客访问: 686958
  • 博文数量: 191
  • 博客积分: 10987
  • 博客等级: 上将
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-22 09:52
文章分类

全部博文(191)

文章存档

2014年(10)

2011年(11)

2010年(38)

2009年(132)

分类:

2009-07-08 14:51:57

一、ftp主动式连接图示如下:

1、  如图示:

 

第一步、首先是客户端随机打开>1023端口连接到FTP服务器的21端口,同时客户端随机打开了另一个>1023端口,处于wait状态。

第二步、随后FTP服务器发来一个“ACK“确认连接成功。

第三步、同时FTP服务器的20端口主动连接客户端处于wait状态的>1023端口。

第四步、连接之后,客户端发来一个“ACK“确认连接成功。

2:以下实验继续分析:

   第一步、环境

客户端IP192.168.1.113   FTP服务器IP192.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端口,即4137947898

       服务器打连接端口是21,数据端口是20

问题FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。

解决:

Iptables防火墙需要添加如下理论规则:

第一条规则:允许客户机从大于1024端口连接FTP服务器21端口

第二条规则:允许服务器从21端口回应FTP客户端中大于1024端口的网络连接

第三条规则:允许FTP服务器从20端口主动连接客户端中大于1024的端口

第四条规则:允许FTP客户端从大于1024端口回应来自FTP服务器20端口的连接

 

********************************

阅读(4125) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~