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

全部博文(191)

文章存档

2014年(10)

2011年(11)

2010年(38)

2009年(132)

分类:

2009-07-08 14:07:10

一,ftp被动式连接图示如下:

 

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

 

第二步、随后FTP服务器发来一个“ACK“确认连接成功,同时告诉客户端,我服务器使用哪个端口(而非20端口)进行数据连接

 

第三步、客户端使用>1024的端口来连接>1024的服务器端口(数据端口)

 

第四步、服务器端给客户端返回一个“ACK,也即服务器端>1024端口连接客户端>1024端口确认连接成功

 

二:实验

第一步、环境

客户端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  --------------------输入FTP服务器账户

---> 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,76,152) --------------FTP服务器的>1023端口被打开

---> 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>

 

第三步、看看被动模式下的端口状态

 

netstat -an |less

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address       Foreign Address       Stat

e     

tcp   0      0  192.168.1.112:19608   192.168.1.113: 43348 TIME_WAIT  --等待数据传输

 

tcp   0      0  192.168.1.112:21      192.168.1.113:38525  ESTABLISHED-已经建立连接

 

 

分析:客户端随机打开两个>1024端口,分别是 4334838525

 

      服务器端的连接端口21,数据端口随机打开>1024端口,是19608256*76+152得来的)

 

问题:当客户端连接到FTP服务器端的高位端口时候,有可能被服务器前面的

 

            iptables防火墙阻塞掉,导致客户端无法访问FTP服务器

 

解决:

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

 

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

 

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

 

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

 

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

 

口的网络连接

 

说明:上述规则中的第三、第四条规则中,红色加粗部分的“FTP服务器从大于1024端口”,在iptables防火墙设置中可以设定FTP服务器高端位端口的一个有限的范围,以较少地泄露FTP服务器的端口。

 

 

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