К основному контенту

Подсчет трафика с помощью ipcad в ClearOS

ClearOS - специализированный Linux-дистрибутив для создания сервера-шлюза в организациях малого и среднего бизнеса.
Несмотря на наличие безлимитных тарифов на доступ к сети Интернет и широкий спектр возможностей ClearOS, в функционал дистрибутива закрался досадный недостаток - отсутствует возможность подсчета трафика, проходящего мимо Squid.
Для решения этой задачи используем ipcad - утилиту для экспорта сведений о проходящем трафике.
Для удобства скачаем rpm-пакет из репозитория CentOS
wget http://centos.alt.ru/pub/repository/centos/5/i386/ipcad-3.7.3-4.el5.i386.rpm
и установим его
rpm -ivh ipcad-3.7.3-4.el5.i386.rpm


Создадим каталог /var/log/ipcad, файл дампа и назначим ему права доступа:
md /var/log/ipcad
touch /var/log/ipcad/ipcad.dump
chmod 600 root:root /var/log/ipcad/ipcad.dump
Добавим ipcad в автоматический запуск при старте системы
chkconfig --level 345 ipcad on


Отредактируем файл /etc/ipcad.conf, чтобы его содержание было следующим:
capture-ports enable;
interface eth1 filter "ip and dst net 192.168.0.0/16 and not src net 192.168.0.0/16 and not src port 3128";
# собираем статистику с интерфейса LAN, при этом в статистику
# не должны попадать пакеты от SQUID (порт 3128)


aggregate 192.168.0.0/16 strip 32;
# разделять статистику по каждому адресу и порту в локальной сети
aggregate 0.0.0.0/0 strip 32;
# разделять статистику по каждому адресу и порту в сети Интернет
 
rsh enable at 127.0.0.1;
# разрешаем использование rsh


rsh root@127.0.0.1 admin;
rsh root@127.0.0.1 backup;
rsh root@127.0.0.1;
rsh 127.0.0.1 view-only;


pidfile = /var/run/ipcad.pid;
dumpfile = /var/log/ipcad/ipcad.dump;
# указываем расположение PID и дамп-файлов
memory_limit = 10m;
# ограничиваем использование объема памяти
Теперь создаем скрипт переноса статистики ipcad в лог squid: /usr/bin/ipcad2squid
#!/bin/sh
net1="192.168"
ttime=`/usr/bin/rsh localhost sh ip acco | grep 'Accounting data saved' | awk '{print ($4)}'`
rsh localhost clear ip accounting
rsh localhost show ip accounting checkpoint | grep $net1 | awk -v vtime=$ttime '{print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' /var/log/squid/access.log
chown squid:squid /var/log/squid/access.log
и даем ему право на выполнение
chmod +x /usr/bin/ipcad2squid
Будем собирать статистику каждую минуту. Для этого отредактируем crontab:
nano /etc/crontab
внеся следующую строчку в файл:
*/1 * * * * root /usr/bin/ipcad2squid
Перезапускаем cron
/etc/init.d/crond restart
 Проверить работу установленной системы подсчета трафика можно наблюдая за логом squid. Весь не относящийся к http трафик будет отображен в нем характерными строками, содержащими слово CONNECT.

Теперь в интерфейсе управления ClearOS весь трафик будет отображаться совместно с http трафиком в разделе Reports - Gateway - Web Proxy Report.


При написании данной статьи использовались материалы:
Подсчет трафика с помощью Squid и ipcad в pfSense 1.2.3
Установка и настройка системы подсчета трафика Ipcad + Flow-tools + MySQL

Комментарии

Популярные сообщения из этого блога

Как с помощью bat-файла удалить последний символ в каждой строке текстового файла

@Echo Off SetLocal EnableDelayedExpansion Set file=e:\Temp1\temp.txt Set newfile=e:\Temp1\newtemp.txt (For /F "tokens=* usebackq delims=" %%a In ("%file%") Do (   Set ta=%%a   Echo !ta:~0,-1! ))>"%newfile%" Нагло стырено с просторов Интернет

OpenOffice. Calc. Символ «'» перед числом

Постоянно забываю как убрать принудительное текстовое форматирование в таблицах OpenOffice, поэтому просто копирую эту статью из базы знаний: Символ «'» (апостроф) Если перед числами в строке ввода стоит символ «'», то в этом случае цифры не распознаются как числа. Символ «'» (апостроф) является символом принудительного форматирования данных «как текст», поэтому он не отображается в ячейках; увидеть его можно только в строке ввода перед данными. «Язык формул» электронных таблиц разработан задолго до появления MS Windows и Microsoft Office. Символ «апостроф» в начале содержимого ячейки всегда был символом принудительного форматирования содержимого «как текст». Данный способ форматирования является преимущественным перед форматом ячейки. Так работали Quatro Pro, Super Calc, таблицы Lotus 1-2-3. Так работают и все современные электронные таблицы. «'» перед цифровыми значениями следует использовать, когда вводятся константы, не являющиеся числами. Например

Пример bat-файла для удаления файлов на ftp по заранее определенной маске

@echo off SetLocal EnableDelayedExpansion rem Определяем переменные SET CONF=ftp.cnf SET FILELIST=f.txt SET HOST=ftp.host.lan SET USERNAME=ftpuser SET PASSWORD=PaS$w0Rd rem  Создаем файл конфигурации для автоматизации работы ftp-клиента rem в котором сканируем файлы по маске с учетом регистра echo.open %HOST%> %CONF% echo.%USERNAME%>> %CONF% echo.%PASSWORD%>> %CONF% echo.binary>> %CONF% echo.ls *_IN.zip>> %CONF% echo.ls *_IN.ZIP>> %CONF% echo.ls *_in.zip>> %CONF% echo.ls *_in.ZIP>> %CONF% echo.bye>> %CONF% rem Запускаем ftp-клиент в автоматическом режиме, rem выводим результаты просмотра каталога в текстовый файл, rem  фильтруя выводимые имена файлов ftp -s:%CONF% | findstr /i "[a-z,_,0-9]_IN.zip" > %FILELIST% rem Вторично создаем файл конфигурации echo.open %HOST%> %CONF% echo.%USERNAME%>> %CONF% echo.%PASSWORD%>> %CONF% echo.binary>>%CONF% rem Записываем в конфигу