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端口传输数据。
是不是?