Ipcad (Cisco IP accounting simulator) — это программа для учета трафика, которая может вести подсчет несколькими механизмами, например через интерфейсы BPF, libpcap и iptables ULOG.
Компьютер:
ЦП: Intel Celeron, 900 MHz ОЗУ: 192 Мб (SDRAM) НЖМД: SAMSUNG SP0411N (40 Гб, 7200 RPM, Ultra-ATA/133) OC: FreeBSD 7.2-RELEASE-p4
Прозрачный прокси-сервер Squid proxy настройка со статистикой LightSquid установлен. В лог попадает в основном http-трафик. Ipcad будет собирать статистику, идущем в обход прокси, по другим портам (Использование ssh, ssh-keygen, sshpass с примерами, Раздел FTP: Протокол FTP, серверы, клиенты FTP для Linux и Windows, jabber и т.д.) и сбрасывать в лог Squid. Логи Squid разбирает LightSquid.
> cd /usr/ports/net-mgmt/ipcad > make install clean > echo 'ipcad_enable="YES"' >> /etc/rc.conf > mkdir /var/log/ipcad
> ee /usr/local/etc/ipcad.conf # GLOBAL OPTIONS # Опция capture-ports включает/отключает дополнительные поля в статистике, такие как: TCP- и UDP-порты, а также # типы ICMP-пакетов. Однако включение данной опции увеличивает потребление памяти, снижает скорость подсчёта # трафика и в ряде случаев искажает вывод через RSH. capture-ports enable; # INTERFACE OPTIONS interface tun0; # внешний интерфейс interface rl0; # локальный интерфейс interface rl1; # локальный интерфейс # Разделять статистику по каждому IP-адресу для подсети 192.168.0.0/24. «aggregate 192.168.0.0/24» указывает # ipcad-диапазон адресов сети. «strip 32» означает, что в статистику необходимо заносить все 32 бита # адреса, принадлежащего данному адресному диапазону aggregate 192.168.0.0/24 strip 32; aggregate 10.90.90.0/24 strip 32; # остальные агрегировать по первым 24 битам aggregate 0.0.0.0/0 strip 24; #aggregate 3128-3128 into 3128; /* Protect these ports */ aggregate 150-1023 into 1023; /* General low range */ aggregate 20-21 into 21; aggregate 22-23 into 22; aggregate 25 into 25; aggregate 80-81 into 0; aggregate 110 into 110; aggregate 443 into 443; aggregate 3128 into 0; # RSH SERVER OPTIONS # Настройки rsh-сервера, с помощью которого будет просматриваться статистика. rsh enable at 127.0.0.1; # Правила, указанные ниже, описывают политики доступа к статистике ipcad. Root может полностью управлять # (делать backup, просматривать и изменять таблицы подсчёта). Все остальные могут лишь просматривать статистику 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; # «Время жизни» и тайм-аут IP-пакета rsh ttl = 3; rsh timeout = 30; chroot = /var/log/ipcad; # Опцией dumpfile задаётся путь к файлу, в который по умолчанию будут складываться данные статистики dumpfile = ipcad.dump; # OTHER OPTIONS pidfile = ipcad.pid; # Опция memory_limit задаёт количество памяти для хранения содержимого одного потока данных. # Синтаксис следующий: memory_limit = <количество>[{k|m|e}] ; # где k - Кб; m - Мб; e – количество строк таблицы данных memory_limit = 1m; > /usr/local/etc/rc.d/ipcad start
Для управления статистикой ipcad используется rsh. Общий синтаксис команд для ipcad выглядит следующим образом:
rsh host command
где 'host' — это хост, на котором ведется статистика, а 'command' — это сама команда. В рассматриваемом случае значением 'host' является localhost.
Полный список команд можно посмотреть по команде rsh localhost help. А именно:
show ip accounting - показать статистику clear ip accounting - сбросить статистику до контрольной точки. Если контрольная точка не задана, то статистика сбрасывается в ноль show ip accounting checkpoint - показать статистику сохраненную в контрольных точках clear ip accounting checkpoint - сбросить все контрольные точки show ip cache flow - показать кэш NetFlow show interface <iface> - показать счетчик интерфейса dump [<path>] - сохранить текущую статистику в файл <path>. Если не указывать, то статистика сохранится в dumpfile, указанный в конфигурационном файле ipcad.conf restore [<path>] - восстановить статистику import [<path>] - импортировать (добавить) статистику stat - показать текущее состояние работы ipcad show version - показать версию и uptime ipcad'а shutdown - завершить работу ipcad
Скрипт для снятия статистики.
> ee ipcadstat.sh #!/bin/sh net="192.168.1" ttime=`/usr/bin/rsh localhost sh ip accounting | grep 'Accounting data saved'|awk '{print ($4)}'` /usr/bin/rsh localhost clear ip accounting /usr/bin/rsh localhost show ip accounting checkpoint | grep $net | awk -v vtime=$ttime '{print (vtime".000",1,$2,"TCP_MISS/200", $4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >>/usr/local/squid/logs/access.log