Мне нужно постоянно подсчитывать количество байтов, прошедших между моим сервером и удаленным сервером (порт не указан). Я хотел бы, чтобы эта сумма была записана в файле. Я немного новичок в IPtables, но не уверен, нужно ли мне ставить в очередь все согласованные пакеты для обработки скриптом (не знаю python, но полное чтение байтов, вероятно, не будет слишком сложным) . Кажется, что IPtables может делать это прямо из коробки с журналом, но документация меня немного хоронит.
iptables -I INPUT 1 -s <remote ip>/8 -j QUEUE ???
iptables -I OUTPUT 1 -d <remote ip>/8 -j QUEUE ???
Любая помощь по указанию его на файл python или цепочку iptables, которая справится с этим из коробки, была бы замечательной.
Вам не нужно указывать цель прыжка. Выберите пакеты, которые вы хотите подсчитать, готово.
-j, --jump target
Это указывает цель правила; т.е. что делать, если пакет ему соответствует. [..]
Если эта опция не указана в правиле (и -g не используется), то соответствие правилу не повлияет на судьбу пакета, но счетчики в правиле будут увеличены.
Что нужно иметь в виду:
Пример:
iptables -I INPUT 1 -s 192.0.2.1/32 -m comment --comment "billing: example company"
ip6tables -I INPUT 1 -s 2001:db8::1/128 -m comment --comment "billing: example company"
iptables -I OUTPUT 1 -d 192.0.2.1/32 -m comment --comment "billing: example company"
ip6tables -I OUTPUT 1 -d 2001:db8::1/128 -m comment --comment "billing: example company"
Проверить с iptables -L | grep example ; ip6tables -L | grep example