最近好头疼 ,在防火墙设备中通过netfilter对ftp进行过滤和管理 ,碰到的问题是
在主动模式下 ,如果你要 get 一个文件 ,比如 retr aa.exe ,你发送这个命令,在实际的抓包分析其实是首先客户端发送port命令告诉服务器连哪一个端口 ,然后服务器受到后从20端口向这个目的端口建立一个tcp连接 。
问题出来了 ,这个retr aa.exe的命令是在数据连接建立后 ,在控制连接中发送的 。截获到这个控制命令后可以丢掉该控制包,但是已经建立的连接怎么办 。。。。。。。。。。。
服务器在下面情况下关闭数据连接:
1. 服务器结束发送数据,通过EOF要求中止传送;
2. 用户发送ABORT命令;
3. 用户改变端口;
4. 控制连接关闭;
5. 发生不可恢复错误。。
但是 ,如果数据连接出现异常 ,比如被阻断后 ,仍然可以建立新的数据连接么??? 如何验证???
有作过的人么???
今天在防火墙设备上作验证 ,郁闷 ,因为防火墙又端口转换的 ,所以好郁闷 ,总不至于preroute的时候挂一个钩子 ,out的时候再挂一个钩子然后2个钩子还要通信传端口吧 ,对于一个试验来说太浪费了
阅读(1892) | 评论(3) | 转发(0) |