Bermut
@Bermut
Жертва домашней лаборатории

Логирование трафика через iptables?

Есть бридж, который пропускает через себя трафик, нужно настроить логирование всех новых соединений, безусловно, я это cделал через
iptables -A FORWARD -m state --state new -i <bridge> --j LOG

Вот только беда в том, что, во первых, он выгружает лог в журнал, что мягко скажем неудобно, второе - слишком много бесполезных данных, мне же достаточно sources и dist порты и адреса, и время подключения. Как удобно логировать соединения в отдельный файл?
Логгер - archlinux, iptables - 1.8.9 legacy
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
Bermut
@Bermut Автор вопроса
Жертва домашней лаборатории
В общем, решил таким способом - функция в скрипте запускается раз в 10 минут и сохраняет лог
скрипт
#!/bin/bash
log () {
        journalctl -e -S "$(date +"%Y-%m-%d %H:%M:%S" --date "-10 min")" | grep <prefix> | sed -E 's/([^ ]+ [^ ]+ [^ ]+).*SRC=([^ ]+).*DST=([^ ]+).*PROTO=([^ ]+).*SPT=([^ ]+).*DPT=([^ ]+).*/\1 SRC=\2 DST=\3 PROTO=\4 SPT=\5 DPT=\6/' >> <log file>
        sleep 600
        log
}
log

В формате
Время Исходный ip Ip назначения Исходный порт Порт назначения
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
martin74ua
@martin74ua Куратор тега Компьютерные сети
Linux administrator
Настройте syslog на запись лога от этого источника в отдельный файл
ну а дальше - фильтруйте, обрабатывайте...
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
можно использовать iptables -j ULOG и перенаправлять данные в ulogd, у которого куча бекендов включая СУБД
https://www.netfilter.org/projects/ulogd/index.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы