Назад | Перейти на главную страницу

Статистика трафика с 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 здесь считает только управляющие соединения.

Вы можете только отслеживать, использует ли клиент активный режим, когда сервер будет подключаться к клиентскому порту 20 tcp для доставки данных.

Если клиент использует пассивный режим, что чаще всего используется, сервер отправляет клиенту команду PASV, сообщая ему IP-адрес и порт для подключения на сервере. Поскольку порт случайный, вы не сможете различить трафик и получить статистику.

Другой способ - использовать такой модуль, как OpenDPI с участием OpenDPI-сетевой фильтр или L7-фильтр для проверки трафика уровня 7 и декодирования команд PORT / PASV.

Или, если вы управляете ftp-сервером, вы можете настроить порты данных на ограниченный диапазон и затем отслеживать их.