четверг, 8 октября 2015 г.

Utraff

Понадобилась мне как-то простенькая система учета трафика (просмотр за произвольный период с какого ip адреса сколько входящего и исходящего трафика).
Быстро написал такую систему. В ней все довольно просто, система состоит из трех компонентов: 
1) Демона ipcad (написан не мной), который собирает статистку; 
2) Скрипта, который по крону запускается и сбрасывает всю накопленную ipcad'ом статистику в таблицу базы sqlite, в конце дня статистика суммируется и результат записывается в другую таблицу;
3) И простенького web интерфейса для просмотра статистики.

Оговорюсь сразу, данная система не решает проблемы аутентификации пользователя.
Как вариант, возможна привязка ip к mac через arp таблицу, например как это сделано здесь (да и вообще в сети полно манов на эту тему, гуглить по фразе static arp on centos).

Итак, приступим к установке:

yum install -y httpd php php-pdo libpcap rsh awk sqlite
rpm -ihv ipcad-3.7.3-7.x86_64.rpm
rpm -ihv utraff-1.1-0.noarch.rpm

Далее необходимо поправить два конфига: /etc/ipcad.conf и /etc/utraff.conf
В /etc/ipcad.conf нужно исправить:aggregate 192.168.1.0/24 strip 32; на Вашу подсеть и изменить интерфейс локальной сети (параметр interface eth0;), на котором ipcad cобирает статистику (по-умолчанию eth0).
В /etc/utraff.conf достаточно поправить параметр local_net (изменив его на Вашу подсеть) и прописать в секции [users] какому пользователю, какой ip принадлежит.
Все остальные параметры интуитивно понятны.

Далее в консоли:

systemctl enable ipcad
systemctl enable httpd 
systemctl start httpd
systemctl start ipcad
systemctl restart crond

Вот собственно и все, на следующее утро заходим в web  интерфейс (логин и пароль прописаны в конфиге utraff) выбираем день и смотрим статистику.



P.S.  Пакеты здесь.