CU讲义中iptables附加模块包状态匹配state问题!
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
这个是CU讲义中讲到的,可以登录到FTP空间且可以得到空间的文件列表!
但是:iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
这个是我在chinaitlab的视频教程上看到的,但是这个就得不到文件列表,为什么?
两个的差别很大吗?为什么实现不了同样的功能啊?!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
谢谢!
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
这个是并集
是 ( -p tcp --dport 21 || -m state --state RELATED,ESTABLISHED ) -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
这个是交集
是 ( -p tcp --dport 21 && -m state --state RELATED,ESTABLISHED ) -j ACCEPT
明白了吗?
所以,要用到state啊!
有问题
现在关键的是说楼主的问题,
对于FTP有两种模式,所以在FW上设置的时候要针对这两种模式,也就是状态连接跟踪
必须保证出去的连接,也就是命令连接成功以后,数据传输的时候这个连接怎么办?
那么怎么保证呢?这个就需要对连接进行跟踪,把以前命令连接的数据和它相关的连接得放行
不是吗?
你的意思是FTP服务器只需要开20、21两个端口,其余的1-19、22-65535关掉能实现数据传输?
发一个请求给FTP服务器的21端口,服务器做出响应然后随机分配一个端口给客户端供数据传输
FTP有几个端口?不是20.21吗?那20是做什么用的?
你说随机分配一个端口传输数据,那FTP为什么要用两个端口?
而且FTP的主动模式和被动模式又是做什么的?
iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
这个是我在视频教程中看到的,这个我还能理解一点,但是state的功能还是很模糊。
1.iptables -A INPUT -p tcp --dport 21 -j ACCEPT
2.iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
我不是很理解,有人告诉我,如果2放在1前面会有效,但是我12顺序的话也是可以从FTP空间得到数据的。
发一个请求给FTP服务器的21端口,服务器做出响应然后随机分配一个端口给客户端供数据传输。比如:
[root@honker ~]# ftp 192.168.1.202
Connected to 192.168.1.202.
220 FTP Server for New West Net Bar-modemTNT
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.202:root): marsaber
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,202,4,35)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw- 1 user group 0 Sep 11 17:41 .
drw-rw-rw- 1 user group 0 Sep 11 17:41 ..
-rw-rw-rw- 1 user group 3025597 May 21 12:45 0520.rar
drw-rw-rw- 1 user group 0 Aug 31 20:06 Books
....................................
(192,168,1,202,4,35)==192.168.1.202的256*4+35=1059端口传输数据。
是不是?
我是建议你先瞭解一下 ftp protocol 的连结方式,因为 data channel 的连线后续 port 是动态建立的,所以不会在 port 21 上。
因为是这个情况,所以当然不可以加上 --dport 21 叙述。
==
iptables -A INPUT -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
说说你的理解?