使用 iptables 进行被动 FTP 的流量统计吗?

使用 iptables 进行被动 FTP 的流量统计吗?

使用 iptables 进行基本流量统计很简单。你可以创建一个没有目标的规则,例如

iptables -I INPUT -p tcp --dport 80

然后,例如通过 http 上传一些数据后,可以使用以下命令读取计数器

iptables -L INPUT -n -v

是否可以通过此类 iptables 规则来跟踪传入和传出的 FTP 流量?

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

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

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

答案1

您只能在客户端使用主动模式时进行跟踪,其中服务器将连接到客户端的 20 tcp 端口来传递数据。

如果客户端使用被动模式(大多数客户端都使用这种模式),服务器会向客户端发送 PASV 命令,告知客户端要连接的服务器 IP 和端口。由于端口是随机的,因此您无法区分流量并获取统计数据。

另一种方法是使用类似开放DPIOpenDPI网络过滤器或者L7 过滤器检查第 7 层流量并解码 PORT/PASV 命令。

或者,如果您控制 ftp 服务器,您可以将数据端口配置为有限的范围并跟踪这些端口。

相关内容