Я возился с этим уже почти неделю.
Моя настройка: LAN (Windows / Linux / ПК / серверы) <-> шлюз / межсетевой экран CentOS <-> ISP
Я пытаюсь настроить решение для мониторинга, которое будет отслеживать всю сетевую активность для локальной сети (посещенные веб-сайты, Skype-соединения и т.д.). Я хочу, чтобы протокол, IP/ DNS, время и любая другая соответствующая информация составляли отчет об использовании. Мне не нужны данные о трафике (содержание), просто информация о трафике. Мне нужно иметь возможность оглянуться назад на определенный день и посмотреть, что конкретный хост в моей локальной сети сделал в определенный период времени. в основном, что-то вроде host-a, в день M, в час H провел M минут на сайте X, или в скайпе, или в Yahoo, или любом другом протоколе.
Я перепробовал много инструментов мониторинга, но почти все они контролируют использование полосы пропускания (что НЕ является тем, что я хочу) или выполняем мониторинг в реальном времени (без исторических данных). Я попробовал эти (в значительной степени все они упомянуты здесь на SU):
- ntopng
- BandwidthD
- darkstat
- Nagios
- vnstat
(Возможно, я пробовал другие, это те, которые я помню)
Я признаю, что, возможно, пропустил некоторую конфигурацию, которая заставила бы все работать так, как я хочу, поэтому я готов вернуться к любому из вышеперечисленного или другим, при условии, что я получу некоторые четкие шаги для включения регистрации данных и составления отчетов о них.
Мой блок CentOS GW не имеет графического интерфейса, поэтому EtherApe и некоторые другие не доступны (если их нельзя демонизировать и использовать в браузере или для каких-либо отчетов). Кроме того, в поисках решений с открытым исходным кодом (на основе rpm или на основе, неважно)
Благодарю.
Позже редактирование: я подхожу для любого мониторинга / прослушивания сети. Сегодня я оценивал некоторые решения в этой области, и они выглядят многообещающе, хотя тот факт, что они имеют дело с пакетами, а не с соединениями (что меня интересует), усложняет ситуацию.
Лучшее, что я смог придумать, это:
tshark -i 3 "src host a.b.c.d and not dst host w.x.y.z and tcp[0xd]&18=2" -T fields -e frame.time -e ip.addr -e tcp.dstport -a duration:86400
где i = 3 - публичный / интернет-интерфейс, abcd - публичный IP-адрес «интернет-интерфейса» в GW, а wxyz - мой публичный IP-адрес (поэтому я исключаю активную связь между мной и хостом (так как у меня есть по крайней мере 1 ssh-соединение там активно) Кажется, что это хорошо регистрирует информацию о пакете синхронизации, однако я не могу узнать, какая рабочая станция в локальной сети инициировала соединение ...
какие-либо другие намеки / идеи?