- PVSM.RU - https://www.pvsm.ru -
Однажды в нашем небольшом офисе понадобилось настроить систему учёта трафика под linux. Бегло просмотрев готовые решения, я решил использовать что-то попроще. Погуглив, мне понравился подход [1] использовать самописный скрипт, который бы конвертировал статистику netflow в squid-совместимый лог, который затем можно анализировать чем угодно. Готовый скрипт, гуляющий по гуглу, я использовать не стал, т.к. он использует ipcad, которой отсутствует в debian и ubuntu. Написал свой вариант, использующий любой netflow сенсор и flow-tools в качестве коллектора. Скрипт постепенно усложнялся и, в итоге, вырос в небольшую систему учёта трафика. Архив этого удовольствия весит около 50кб, при этом:
Выглядит это так: управление пользователями и доступ к статистике осуществляется через веб-интерфейс (демо [2]). Каждый пользователь может быть авторизован через ip, mac или ip+mac. Неавторизованные пользователи видят ошибку «access denied». Каждому пользователю может быть присвоен флаг «squid» для перенаправления веб-трафика на прозрачный squid. Каждому пользователю может быть присвоен флаг «ipblock» для блокирования любого трафика через ipset. Управление списками блокировки и другие тонкие настройки осуществляются через консоль. Устанавливать и настраивать всё не обязательно, можно настроить только необходимые компоненты.
В качестве названия было выбрано имя lightwrapper (происходит от lightsquid wrapper) и создан проект на sourceforge [3]. Как попробовать:
Собственно, зависимостей довольно много, и многие из них требуют настройку — это минус. Но врядли при таком подходе возможно иное. Кратко, настройка сводится к следующему:
Статистика пополняется по-умолчанию раз в 15 минут. Сенсор может отдавать потоки с некоторой задержкой.
Подробно всё это шаг за шагом описано на ломаном английском в wiki [5] и в man lightwrapper. Имеются примеры конфигурационных файлов всего, чего только можно, в большинстве случаев можно их просто скопировать в вашу систему.
Немного о детализации отчётов. Netflow даёт следующую информацию: ip адреса, порты источника и назначения, протокол.
Если для пары (протокол: порт назначения) существует имя сервиса в /etc/services, то lightwrapper в статистике отображает его. Если установлена утилита dig, то ip-адреса автоматически разрешаются в имена (если такое соответствие есть в dns).
Если установлен прозрачный squid и некоторые пользователи перенаправляются на него, то lightwrapper просматривает лог squid и ставит в соответствие найденным ip-адресам имена. Можно настроить lightwrapper так, чтобы он разрешал ip-адреса в имена для пользователей, которые не перенаправляются на squid. При этом, по понятным причинам, за точность такого распознавания ручаться нельзя.
На момент написания статьи lightwrapper имеет beta статус, т.к. тестеров у меня нет, возможны небольшие ошибки в работе. Буду рад любым отзывам и сообщениям о багах.
Автор: infd
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/77963
Ссылки в тексте:
[1] мне понравился подход: https://www.google.ru/search?&q=netflow%20lightsquid
[2] демо: http://lightwrapper.sf.net
[3] sourceforge: https://sourceforge.net/projects/lightwrapper/
[4] архив: https://sourceforge.net/projects/lightwrapper/files/
[5] wiki: https://sourceforge.net/p/lightwrapper/wiki/Home/
[6] Источник: http://habrahabr.ru/post/232719/
Нажмите здесь для печати.