Сортировка и сохранение данных об использовании, собранных iptables
Я использую ограничение доступа MAC на основе iptables. Я перечислил MAC-идентификаторы пользователей, которым я хочу разрешить доступ, и оставил остальные. И когда я бегу iptables -vL
он показывает все идентификаторы MAC и их использование: переданные пакеты, данные в байтах. Итак, мои вопросы:
- Можно ли заставить его показывать использование данных в мегабайтах?
- Могу ли я отсортировать его так, чтобы идентификаторы MAC для активных пользователей были на вершине?
- И, наконец, могу ли я сохранить данные на диск, может быть в базу данных, чтобы они могли складываться и выживать после перезагрузки?
2 ответа
Ответ № 1
Какой ваш iptables --version
?
По моему, iptables -vL
автоматически преобразует байты в килобайты (суффикс K) или в мегабайты (суффикс M).
Ответ № 2
использование iptables -x
по трубопроводу sort
например, iptables -xvL $CHAIN | sort -rn -k 2
Ответ № 3
Передайте вывод вышеуказанных команд в скрипт, который будет выполнять вставку базы данных.
Вы можете дополнительно отфильтровать вывод Ответа 2, используя awk '$1 ~ /[0-9]+/'
удалить заголовки столбцов и awk '$1 > 1000000'
чтобы увидеть только те значения, которые больше, чем 1000 000 байтов.
Обрабатывать вывод в формате CSV
iptables -xvnL $CHAIN | awk -v min=$MINIMUM '$1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'
Или, если вам нужен заголовок столбца CSV:
iptables -xvnL $CHAIN | awk -v min=$MINIMUM 'BEGIN {print "Bytes,MAC"} $1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'