iptables的被动FTPstream量统计?

基本的stream量统计与iptables很容易。 一个创build一个没有目标的规则,例如

iptables -I INPUT -p tcp --dport 80 

然后,例如,通过http上传一些数据后,就可以读取计数器了

 iptables -L INPUT -n -v 

通过这样的iptables规则可以跟踪传入和传出的FTPstream量吗?

我尝试了通常的规则来允许FTPstream量,与ip_conntrack_ftp内核模块一起使用:

 iptables -I INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 21 

但显然,iptables在这里只计算控制连接。

您只能跟踪客户端是否使用主动模式,其中服务器将连接到客户端的端口20 tcp传送数据。

如果客户端使用被动模式,大多数情况下,服务器会向客户端发送PASV命令,告诉客户端连接到服务器的IP和端口。 由于该端口是随机的,因此您将无法区分stream量并获得统计信息。

另一种方法是使用像OpenDPI这样的模块与OpenDPI-netfilter或L7-Filter一起检查第7层stream量并解码PORT / PASV命令。

或者,如果您控制了ftp服务器,则可以将数据端口configuration为有限的范围,然后进行跟踪。