PDA

Просмотр полной версии : [Проблема] Настройка ipcad + squid


Victor Nikos
19.09.2013, 16:29
Исходные данные:
Имеется машина с установленным Debian7 и с уже настроенным squid3 в прозрачном режиме. SSL соединения пущены в обход посредством iptables, подсчёт статистики ведёт настроенный скрипт lightsquid.

Внешний интерфейс eth1,

Внутренний eth0:
ip: 192.168.255.250
netmask:255.255.0.0

Содержимое файла /usr/local/etc/ipcad.conf


capture-ports enable;
interface eth0 filter "ip and dst net 192.168.0.0/16 and not src net 192.168.0.0/16";

aggregate 192.168.0.0/16 strip 32; /* Don't aggregate internal range */
aggregate 0.0.0.0/0 strip 32; /* Aggregate external networks */

aggregate 1-19 into 65535;
aggregate 20-21 into 21;
aggregate 22-23 into 22;
aggregate 25 into 25;
aggregate 24 into 65535;
aggregate 26-79 into 65535;
aggregate 80-81 into 0;
aggregate 82-109 into 65535;
aggregate 110 into 110;
aggregate 111-442 into 65535;
aggregate 443 into 443;
aggregate 444-3127 into 65535;
aggregate 3128 into 0;
aggregate 3129-65535 into 65535;


rsh enable at 127.0.0.1;

rsh root@127.0.0.1 admin; /* Can shutdown ipcad */
rsh root@127.0.0.1 backup; /* Can dump/restore/import accounting table */
rsh root@127.0.0.1; /* Can view and modify accounting tables */
/* Note the order! */
rsh 127.0.0.1 view-only; /* Other users can view current tables */

rsh ttl = 3;
rsh timeout = 30;

dumpfile = ipcad.dump; # The file is inside chroot(), see below...

chroot = /var/log/ipcad;


pidfile = ipcad.pid;

# uid = 65534;
# gid = 65534;

memory_limit = 10m;


Содержимое скрипта, вписывающиего логи ipcad в логи squid3:


#!/bin/sh
net="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 $net | awk -v vtime=$ttime '{if ($5 != 0) print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/log/squid3/access.log


Есть необходимость настройки ipcad в связке со squid3 таким образом, чтобы ipcad вписывал логи SSL - соединений в логи squid3 для дальнейшего разбора их Lightsquid'ом. По мануалам в интернете так и не смог настроить связку. Скрипт так и не пишет логи ipcad в логи squid3. Прошу помочь в этом деле форумчан.

Заранее спасибо!

Dolphin
19.09.2013, 18:36
rsh localhost show ip accounting checkpoint | grep $net | awk -v vtime=$ttime '{if ($5 != 0) print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/log/squid3/access.log
Так и не получится, сквид же лочит файл на запись.

Писать в syslog со своей меткой не вариант? ipcad может?


Вариант грязного хака:
tail log1.log -f >> combined.log &
tail log2.log -f >> combined.log &
tail log3.log -f >> combined.log &
Не вызывает проблем с блокировкой файла, т.к. файл открывается при каждой операции записи. Но это, само собой, небыстро.

dmazin
20.09.2013, 11:32
Можно как вариант перед парсингом логов лайтсквидом сливать файлики в один в отдельном каталоге и его уже обрабатывать. У меня например на фрюхе сделано так для конвертации русских логинов, так как юзеры авторизуются на AD.

Victor Nikos
20.09.2013, 16:52
Писать в syslog со своей меткой не вариант? ipcad может?
Как то не думал об этом, но я думаю это в дальнейшем плохо скажется для анализатора этих логов...


сливать файлики в один в отдельном каталоге

Можно и так сделать, но всё же, в интернетах полно мануалов как сделать чтобы ipcad сразу вписывал свои логи в логи сквида.


Проблема немного прояснилась, Ipcad учитывает трафика, но только когда запущен без демонизации, хотя может быть и в режиме демона тоже учитывает. Неработают команды rsh localhost show ip accounting, clear ip accounting и др, кроме shutdown. Ругается что команда не найдена... Что не так??

Изменил конфигурацию Ipcad.conf:



capture-ports enable;
interface eth0 filter "ip and dst net 192.168.0.0/16 and not src net 192.168.0.0/16";

/*aggregate 192.168.0.0/16 strip 32;*/ /* Don't aggregate internal range */
aggregate 0.0.0.0/0 strip 32; /* Aggregate external networks */

aggregate 1-19 into 65535;
aggregate 20-21 into 21;
aggregate 22-23 into 22;
aggregate 25 into 25;
aggregate 24 into 65535;
aggregate 26-79 into 65535;
aggregate 80-81 into 0;
aggregate 82-109 into 65535;
aggregate 110 into 110;
aggregate 111-442 into 65535;
aggregate 443 into 443;
aggregate 444-3127 into 65535;
aggregate 3128 into 0;
aggregate 3129-65535 into 65535;


rsh enable at 127.0.0.1;

rsh root@127.0.0.1 admin; /* Can shutdown ipcad */
rsh root@127.0.0.1 backup; /* Can dump/restore/import accounting table */
rsh root@127.0.0.1; /* Can view and modify accounting tables */
/* Note the order! */
rsh 127.0.0.1 view-only; /* Other users can view current tables */

rsh ttl = 3;
rsh timeout = 30;

dumpfile = ipcad.dump; # The file is inside chroot(), see below...

chroot = /var/log/ipcad;


pidfile = ipcad.pid;

# uid = 65534;
# gid = 65534;

memory_limit = 10m;

Victor Nikos
20.09.2013, 17:39
Неработают команды rsh localhost show ip accounting, clear ip accounting и др, кроме shutdown. Ругается что команда не найдена... Что не так??

Решил, установкой пакета rsh :)
Но так же идёт учёт, но команды ничего не выдают, не производится дамп соответствующей командой (rsh localhost dump). Собственно и нечего записывать в логи...

dmazin
23.09.2013, 11:14
Иногда нужно прописывать полные пути и смотреть от какого пользователя запускаются команды, есть ли к ним доспут, какие атрибуты. Проще запускать от рута, но имхо это не совсем секурно.

Victor Nikos
23.09.2013, 19:27
По поводу пользователей я в курсе, но я думаю что для начала хотя бы от рута и запустить, а дальше подпилить на более секурные варианты. По поводу путей - проверял и делал по разному, толку нету.