В этой части мы рассмотрим инструмент разбора логов Squid3 и построения отчетов о пользовательской активности в Интернет – LightSquid 1.8. LightSquid по сути своей является набором Perl-скриптов, выполняющих анализ лог-файлов access.log* и способных на основе данных этого анализа строить HTML-отчёты. Выбор именно этого инструмента был сделан после ряда сравнительных экспериментов в контексте сопоставления функциональности с другими программами выполняющими аналогичные задачи.
Немного предыстории. Поначалу я было уцепился за SARG, так как по истории выхода версий было предположено, что этот продукт развивается активней своих аналогов. Однако после его настройки и нескольких дней использования стали очевидны его недостатки, главным из которых оказался размер генерируемых отчетов даже при самых скромных настройках конфигурации. Размер ежедневного отчета сливаемого SARG на диск при количестве ~800 пользователей (не одновременно работающих, а в целом за день) составлял 1,2 – 1,5GB. Стало понятно, что если выпустить всех пользователей через Squid и рассчитывать при этом на хранение отчётов минимум за 3 месяца потребуется приличная дисковая ёмкость. LightSquid оказался в этом плане многократно скромнее при почти той-же функциональности отчетов, да ещё и выгодно отличился скоростью обработки access-лога.
Установка и базовая настройка LightSquid
Итак, перейдём к установке и настройке LightSquid 1.8 на Ubuntu Server 14.04 LTS. Для начала посмотрим какая версия пакета нам доступна из репозиториев Ubuntu и какие имеет зависимости:
sudo apt-cache show lightsquid Package: lightsquid Priority: extra Section: universe/admin Installed-Size: 305 Maintainer: Ubuntu DevelopersOriginal-Maintainer: TANIGUCHI Takaki Architecture: all Version: 1.8-4 Depends: perl, libtime-local-perl, libdbi-perl, libgd-gd2-perl, apache2 | httpd Filename: pool/universe/l/lightsquid/lightsquid_1.8-4_all.deb Size: 64644 MD5sum: 6bc706cc952d2ba08b7ee4dcd9a17cd4 SHA1: ebbc82f4a854f09eb591dd11b9796e607b4474fa SHA256: 909f29fd074419a2f3ceb20549485537c11f81fe6d050c222a36c4168b5a8590 Description-en: Lite and fast log analizer for squid proxy If you use SQUID, some time your want see how your user eat traffic. Lightsquid analyses SQUID's log file. You could see graphical reports through the web CGI. The reports show per user data and per site data. It is easy to customize output HTML. Description-md5: 0e088b5215832ae8860ffd012b174362 Homepage: http://lightsquid.sourceforge.net/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu
Устанавливаем:
sudo apt-get install lightsquid
Сохраняем используемый по умолчанию конфигурационный файл и открываем исходный файл на редактирование:
sudo cp /etc/lightsquid/lightsquid.cfg /etc/lightsquid/lightsquid.cfg.default sudo nano -Y sh /etc/lightsquid/lightsquid.cfg
Редактируем (выведено содержимое конфигурационного файла без комментариев):
sudo cat /etc/lightsquid/lightsquid.cfg | grep -v "^#"
$cfgpath ="/etc/lightsquid"; $tplpath ="/usr/share/lightsquid/tpl"; $langpath ="/usr/share/lightsquid/lang"; $reportpath ="/var/lib/lightsquid/report"; $logpath ="/var/log/squid3"; $ip2namepath ="/usr/share/lightsquid/ip2name"; $lockpath =$reportpath; $maxlocktime = 30*60; $debug = 0; $debug2 = 0; $squidlogtype = 0; $skipurl = 'zzz\.zzz'; $ip2name="UsersAndHostnames"; %month2dec = ( Jan => 1, Feb => 2, Mar => 3, Apr => 4, May => 5,Jun => 6, Jul => 7, Aug => 8, Sep => 9, Oct => 10, Nov => 11,Dec => 12); $timereport = 1; $lang ="ru-utf8"; $templatename ="base"; $DecOutType="fine"; $decdelimiter = " "; $showgrouplink = 1; $showgroupid = 1; $showoversizelink = 1; $showputpost = 1; $putpostwarninglevel =15; $userealname = 1; $bigfilelimit = 2*1024*1024; $perusertrafficlimit = 1*1024*1024*1024; $weekendmode="both"; $topsiteslimit = 500; $usertimelimit = 200; $graphreport = 1; $graphmaxuser=0.05*(1024*1024*1024); $graphmaxall =0.80*(1024*1024*1024); $barcolor="orange"; sub CreateGroupFile($) { my $path=shift; open Fi,"<$cfgpath/group.cfg"; open Fo,">$path/.group"; while (<Fi>) { print Fo $_; } close Fo; close Fi; } sub CreateRealnameFile($) { my $path=shift; open Fi,"<$cfgpath/realname.cfg"; open Fo,">$path/.realname"; while (<Fi>) { print Fo $_; } close Fo; close Fi; }
Файл преобразований имён LightSquid - ip2name
В переменной $ip2name указывается расширение файла описывающего схему отображения имён пользователей и компьютеров в генерируемых отчётах. Все возможные варианты таких файлов можно найти в каталоге, который указан в переменной $ip2namepath. После изучения всех доступных вариантов стало понятно, что каждый из них имеет свои недостатки, поэтому был создан собственный файл ip2name.UsersAndHostnames, который преобразует IP адреса компьютеров (запросы к прокси без аутентификации) в понятные имена (из DNS), а имена аутентифицированных пользователей отображает в виде логинов. Создадим такой файл:
sudo nano -Y sh /usr/share/lightsquid/ip2name/ip2name.UsersAndHostnames
Наполним его содержимым:
#contributor: crux #do nothing #simple version use Socket; sub StartIp2Name() { } sub Ip2Name($$$) { # $Lhost,$user,$Ltimestamp my ($ip, $user) = @_; return $user if $user ne "-"; if (!defined $hIP{$ip}) { my $iaddr = inet_aton($ip); my $user = scalar gethostbyaddr($iaddr, AF_INET); $user =~ s/\..+$// if defined $user; $user = uc($user) if defined $user; # if gethostbyaddr failed to get host, use ip $user = $ip unless defined $user; $hIP{$ip}=$user; } return $hIP{$ip}; } sub StopIp2Name() { } #warning !!! 1;
Файл сопоставлений имён LightSquid - realname.cfg
При генерации отчётов по пользователям включенный параметр $userealname подразумевает добавление дополнительной колонки в которой будет отображаться полное имя (Ф.И.О.) пользователя. В нашем случае в анализируемом логе прокси-сервера access.log информация об аутентифицированных пользователях отображается в виде доменных логинов, и для того чтобы заполнить в отчётах LightSquid колонку с полным именем во время генерации этих отчётов используется специальный вспомогательный файл сопоставлений - /etc/lightsquid/realname.cfg. Каждая строка этого файла может содержать пару значений по принципу: <Что искать> <Чему соответствует>. Таким образом, если мы хотим в отчетах получить заполненной колонку с ФИО, - нужно наполнить файл сопоставлений, например:
artur Артур Вахтангович Пирожков anov1 Алексей Сигизмундович Новацкий
Чтобы автоматизировать процесс заполнения и поддержания в актуальном состоянии этого файла создадим bash-скрипт, который будет при запуске очищать содержимое файла, а затем наполнять его информацией полученной из Active Directory (AD). Скрипт сделаем исполняемым и откроем на редактирование:
sudo touch /etc/lightsquid/realname-generate.sh sudo chmod +x /etc/lightsquid/realname-generate.sh sudo nano -Y sh /etc/lightsquid/realname-generate.sh
Наполним скрипт содержимым (не забываем изменить переменную groupdn):
#!/bin/bash rnfile="/etc/lightsquid/realname.cfg"; groupdn="CN=KOM-Internet-AllUsers,OU=Security Groups,OU=KOM,DC=holding,DC=com"; if [ -f $rnfile ];then sudo rm $rnfile fi sudo touch $rnfile; for i in `sudo net ads search "(&(objectclass=person)(memberOf:1.2.840.113556.1.4.1941:=$groupdn))" samAccountName -P | grep "^sAMAccountName:" | sed "s/^sAMAccountName: //"`; do login_low=`echo $i | tr "[:upper:]" "[:lower:]"`; full_name=`sudo net ads search "(sAMAccountName=$login_low)" name -P | grep "^name:" | sed "s/^name: //"`; echo "$login_low $full_name" >> $rnfile; done #
Обратите внимание на то, что поиск пользователей в AD производится по их членству в доменной группе безопасности KOM-Internet-AllUsers, которую мы создали ранее в одной из предыдущих частей.
Немного позже мы вернёмся к этому скрипту, чтобы настроить его периодическое выполнение через планировщик Cron.
Языковой файл LightSquid
Теперь настало время объяснить почему в переменной $lang конфигурационного файла lightsquid.cfg у нас указано значение ru-utf8, хотя в поставке LightSquid нет такого языкового файла в каталоге указанном в переменной $langpath (/usr/share/lightsquid/lang/). Дело в том, что если мы будем использовать любой из предложенных ru*.lng файлов, то можем нарваться на ситуацию когда данные из файла сопоставлений realname.cfg не состыкуются по используемой кодировке с кодировкой языкового файла LightSquid. Так как в нашем случае в системе по умолчанию используется кодировка UTF-8, то и генерируемый файл realname.cfg будет содержать данные в этой кодировке, и чтобы не было разночтений с языковым файлом LightSquid сделаем свой языковой файл, сконвертировав его из уже имеющегося, после чего откроем получившийся файл на редактирование:
sudo iconv -f cp1251 -t utf8 /usr/share/lightsquid/lang/ru.lng -o /usr/share/lightsquid/lang/ru-utf8.lng sudo nano -Y sh /usr/share/lightsquid/lang/ru-utf8.lng
Изменим одну строчку в начале файла указав его кодировку:
MSG_CODEPAGE=UTF-8
Интеграция LightSquid с веб-сервером Apache2
Теперь настало время интегрировать LightSquid в ранее установленный веб-сервер Apache2. Для этого к основной конфигурации Apache2 можно подключить конфигурационный модуль /etc/apache2/conf-available/lightsquid.conf. Как всегда сохраним копию и откроем исходный файл на редактирование:
sudo cp /etc/apache2/conf-available/lightsquid.conf /etc/apache2/conf-available/lightsquid.conf.default sudo nano -Y sh /etc/apache2/conf-available/lightsquid.conf
Изменённое содержимое файла будет таким:
Alias /lightsquid/ /usr/lib/cgi-bin/lightsquid/ <Location "/lightsquid/"> AddHandler cgi-script .cgi Require all granted </Location>
Подключаем этот конфигурационный модуль к основной конфигурации веб-сервера:
sudo a2enconf lightsquid Enabling conf lightsquid. To activate the new configuration, you need to run: service apache2 reload
При этом в каталоге /etc/apache2/conf-enabled/ (который в свою очередь обрабатывается из главного файла /etc/apache2/apache2.conf) будет создан линк на /etc/apache2/conf-available/lightsquid.conf
ls -la /etc/apache2/conf-enabled/lightsquid.conf lrwxrwxrwx 1 root root 33 Jun 20 16:33 /etc/apache2/conf-enabled/lightsquid.conf -> ../conf-available/lightsquid.conf
***
Так как веб-страницы LightSquid формируются cgi-скриптами, для веб-сервера Apache2 потребуется включить модуль обработки CGI (будет создан линк в каталоге /etc/apache2/mods-enabled/):
sudo a2enmod cgi Enabling module cgi. To activate the new configuration, you need to run: service apache2 restart
***
После проделанных изменений перезагружаем конфигурацию веб-сервера Apache2 :
sudo service apache2 reload * Reloading web server apache2 * *
Генерация отчетов
Теперь можно попробовать выполнить генерацию отчетов LightSquid:
sudo /usr/share/lightsquid/lightparser.pl
Результат проверяем открыв соответствующий URL http://kom-ad01-squid.holding.com/lightsquid/
Исправление ошибки деления на 0
При первой же попытке генерации отчетов LightSquid нами была обнаружена ошибка – для некоторых пользователей/компьютеров с минимальным объёмом трафика отчёт отображался в виде пустой страницы. При этом в логе веб-сервера /var/log/apache2/error.log фиксировалась запись:
[Wed Jun 25 13:03:53.828886 2014] [cgi:error] [pid 53614] [client 10.160.100.100:52121] AH01215: Illegal division by zero at /usr/lib/cgi-bin/lightsquid/user_detail.cgi line 91.
Указанная проблема воспроизводится LightSquid 1.8 в том, случае случае если пользователь интернета имел какой-то минимальный трафик, и весь этот трафик попал к нему из кэша.
Чтобы исправить эту проблему, создаём файл патча:
sudo nano -Y sh /usr/lib/cgi-bin/lightsquid/user_detail.cgi.patch
…и наполняем его с содержимым:
# When user have only 'hit' traffic, $calculatedtotal become zero # and script die with "Illegal division by zero" error --- user_detail.cgi~ 2014-06-25 13:26:16.576149494 +0400 +++ user_detail.cgi 2014-06-25 13:25:58.108485852 +0400 @@ -88,7 +88,7 @@ $hit=$h{$site}{hit}; $size=$h{$site}{size}; $total+=$size; - $percent =sprintf("%2.1f",int($size*1000/$calculatedtotal)/10); + $percent =$calculatedtotal?sprintf("%2.1f",int($size*1000/$calculatedtotal)/10):'∞'; $printhit =FineDec($hit); $printsize =FineDec($size); $printtotal=FineDec($total); @@ -145,4 +145,4 @@ 2006-06-28 ADD : die -> MyDie 2006-06-28 ADD : &tpl= support 2006-09-13 ADD : add &user= in bigfiles URL -2006-11-20 ADD : /g for ##SITEURL_B## & ##SITEURL_L##, my need in some cases \ No newline at end of file +2006-11-20 ADD : /g for ##SITEURL_B## & ##SITEURL_L##, my need in some cases
Патчим предварительно сохранив оригинальный файл user_detail.cgi
cd /usr/lib/cgi-bin/lightsquid/ sudo cp user_detail.cgi user_detail.cgi.default sudo patch user_detail.cgi user_detail.cgi.patch patching file user_detail.cgi
Автоматизация обработки логов Squid
Перенесём файл описывающий правила ротации логов Squid для Logrotate в отельное месторасположение, например в каталог с конфигурационными файлами Squid.
sudo mv /etc/logrotate.d/squid3 /etc/squid3/squid.logrotate
Отредактируем файл squid.logrotate, немного увеличив срок хранения логов, убрав упоминания о SARG и расширив postrotate:
sudo nano -Y sh /etc/squid3/squid.logrotate
Изменённое содержимое файла будет таким:
# # Logrotate fragment for squid3. # /var/log/squid3/*.log { daily compress delaycompress rotate 3 missingok nocreate sharedscripts postrotate test ! -e /var/run/squid3.pid || test ! -x /usr/sbin/squid3 || /usr/sbin/squid3 -k rotate
sleep 120 /usr/share/lightsquid/lightparser.pl access.log.1 endscript }
Периодический запуск обработки логов Squid из LightSquid по расписанию реализован путём автоматического добавления файла lightsquid в /etc/cron.d/ в процессе установки пакета LightSquid.
Используемая по умолчанию конфигурация подразумевает ежедневный запуск скрипта lightparser.pl в 04:00 утра. Закомментируем данные настройки и добавим вызов logrotate с нашим конфигурационным файлом /etc/squid3/squid.logrotate
sudo nano -Y sh /etc/cron.d/lightsquid
Изменённое содержимое файла будет таким:
# # Regular cron jobs for the lightsquid package # #0 4 * * * root [ -x /usr/share/lightsquid/lightparser.pl ] && /usr/share/lightsquid/lightparser.pl #30 * * * * root /usr/share/lightsquid/lightparser.pl today 0 21 * * * root /etc/lightsquid/realname-generate.sh 0 0 * * * root /usr/sbin/logrotate /etc/squid3/squid.logrotate
То есть каждый день в 21:00 мы будем вызывать скрипт обновления файла сопоставления имён realname.cfg а в 00:00 будем вызывать ротацию логов, из которой в свою очередь (после ротации лога access.log) будет вызвана процедура генерации отчетов LightSquid за прошедшие сутки (из лога access.log.1).
Разумеется, на всякий случай можно проверить успешность выполнения запланированной в CRON команды:
sudo /usr/sbin/logrotate /etc/squid3/squid.logrotate
<
p align="center">***
PS: Отдельное Спасибо Владимиру Леттиеву (aka crux) за помощь в создании скриптов и исправлении ошибки LightSquid.
***
Предыдущие части цикла заметок:
Часть 1. Установка ОС на ВМ Hyper-V Gen2
Часть 2. Настройка диска для кэша Squid
Часть 3. Конфигурация DNS , NTP и установка Squid
Часть 4. Конфигурация Kerberos и NTLM
Часть 5. Конфигурация Squid 3
Часть 6. Настройка Proxy Auto Configuration (WPAD)
Часть 7. Кастомизация страниц ошибок
Часть 8. Конфигурация SqStat
Следующие части цикла заметок:
Спасибо! перепробовал три мануала, заработал только Ваш.
А не рассматривали как вариант SAMS2 (http://sams.perm.ru)? Тоже не плохой анализатор логов +веб-морда для управления доступом к сети
Хороший у вас цикл статей, хочу сделать одно дополнение не конкретно по теме, но в общем.
Делать копии конфигов гораздо удобнее вот такой строкой:
# cp /etc/lightsquid/lightsquid.{cfg,.default}
Это для искушённых :)
ага ;)
Сорри))
# cp /etc/lightsquid/lightsquid.{cfg,cfg.default}
Здравствуйте,
Столкнулся с проблемой,
LigthSquid diagnostic.
Error : report folder '/var/lib/lightsquid/report' not contain any valid data! Please run lightparser.pl (and check 'report' folder content)
Команда sudo /usr/share/lightsquid/lightparser.pl проходит, но папка report пустая
Попробуй добавить в lightsquid.cfg, мне помогло.
$squidlogtype = 0;
Папка report пустая тоже. При заходе на localhost выдается стартовая страница apache, localhost\lightsquid - страница не найдена. Что я сделал не так?
а как в статистике отображать еще группы пользователей из ад, группировать в соотствествии групп из ад, статистика по группе, подразделению и тд?
Как я понимаю для этого нужен ещё один файл соответствия пользователей группам - group.cfg. Наполнять его можете либо в ручную, либо опять же писать скрипт для его автоматического заполнения информацией из AD.
Может кому пригодится ...
Я тут взялся изучить регулярные выражения и с Perl познакомится по случаю. Так что если что - не взыщите. У меня около 70 пользователей, особо запретов нет, и это работает на ура.
Сворачивание доменов до второго уровня и объединение кое каких сервисов mail.ru, ok.ru и еще несколько.
Заменить этим, в lightparser.pl (от версии 1.8), строки с 239 по 257:
#--------------------------------------------------------------------------------------------------------
# Сначала проверка - не ip ли вместо домена. В виде http://XXX.XXX.XXX.XXX%5B:XXX%5D/abc
if ($url !~ m/^([a-z]+:\/\/){1}([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3}\.)([0-9]{1,3})[:]{0,1}[0-9]{0,5}\/{0,1}.*/o){
# Здесь смотрим которые по https, они представляютя в виде ex.rt.example.com:443
if ($url =~ m/^[a-z0-9\.\-]*:[0-9]+$/){
$url =~ m/([a-z0-9\-]+\.){0,1}([a-z0-9\-]+\.){1}([a-z0-9\-]+){1}(:[0-9]+)?$/o;
$url = 'www.'.$2.$3;
}else{
# Тут все остальные ...
if ($url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o) {
$url = $2.$3.$5;
$url =~ m/([a-z0-9\-]+\.){0,1}([a-z0-9\-]+\.){1}([a-z0-9\-]+){1}$/o;
$url = 'www.'.$2.$3;
}}
# Далее подменяем сервисы или не сервисы (я хз как такие домены называюся), короче те на
#которые mail.ru, или не mail.ru, лезут за картинками, видео и прочей дрянью.
$url =~ s/www\.imgsmail\.ru/www.mail.ru/o;
$url =~ s/www\.mradx\.net/www.mail.ru/o;
$url =~ s/www\.appsmail\.ru/www.mail.ru/o;
$url =~ s/www\.wambacdn\.net/www.mamba.ru/o;
$url =~ s/www\.yandex\.net/www.yandex.ru/o;
$url =~ s/www\.yastatic\.net/www.yandex.ru/o;
$url =~ s/www\.vkontakte\.ru/www.vk.ru/o;
$url =~ s/www\.vk\.me/www.vk.ru/o;
$url =~ s/www\.vk\.com/www.vk.ru/o;
$url =~ s/www\.odnoklassniki\.ru/www.ok.ru/o;
$url =~ s/www\.mycdn\.me/www.ok.ru/o;
$url =~ s/www\.taobaocdn\.com/www.taobao.com/o;
$url =~ s/www\.googlevideo\.com/www.youtube.com/o;
$url =~ s/www\.google\.ru/www.google.com/o;
$url =~ s/www\.gstatic\.com/www.google.com/o;
$url =~ s/www\.doubleclick\.net/www.google.com/o;
$url =~ s/www\.googlesyndication\.com/www.google.com/o;
$url =~ s/www\.googleapis\.com/www.google.com/o;
$url =~ s/www\.facebook\.net/www.facebook.com/o;
$url =~ s/www\.facebook\.ru/www.facebook.com/o;
$site = $url;
}else{
#Это от строки с проверкой на IP адрес. Мона было разместить в начале, изменив условие, но как
#тут прижилось и осталось.
$site = $2.$3.$4.$5;
}
# Эта строка вроде как эквивалентна следующей в исходнике но я хз. Лучше подстраховаться.
if($site eq ""){$site=$Lurl}
Автору.
Я смотрю после вставки комента некоторые символы не перенеслись или подменились. Может скинешь email чтоб я тебе оригинал переслал. Ты ведь мой адрес видешь? Штука то вроде полезная.
В целом код вроде рабочий за исключением двойных кавычек в конце.
Коллеги, а подскажите, почему в статистике есть нормальные USERID с логинами, а есть просто их IP-адреса, причем в большинстве со статусом DENIED?
Могу предположить, что это не пользователь, а сам компьютер пытался пробиться через прокси. Например, работает на клиентском компьютере какой-либо процесс/служба от имени SYSTEM и пытается куда-либо пролезти наружу через прокси.
Спасибо за цикл статей.
Сейчас пишу скрипт для составление групп пользователям. вышла такая трудность.
for g in `sudo net ads search "(&(objectclass=person)(sAMAccountName=$i))" memberOf -P | grep "^memberOf: CN=" `;
Если имя группы разделено пробелом, то получается вывод>>
memberOF:Администратор
DHCP,CN=Users....
То есть не получается получить имя Администратор DHCP поток вывода идёт не по строкам а по словам.
Не открывался отчет по ссылке имя-сервера/lighsquid
Оказалось, что, по привычке, не добавлял slash в конце ссылки (обычно она сама добавляется), в результате 404.
Для того чтобы уйти от такой зависимости, можно поправить etc/apache2/conf-available/lightsquid.conf
убрав для псевдонима косую черту т.о.
Alias /lightsquid
Спасибо за отличный мануал, просто блеск! До этого вообще ничего подобного не встречал, постоянно приходилось допиливать, доделывать, переделывать. Тут все прошло без сучка без задоринки.
А можно ли как-то в настройках squid'a указать, что на эти адреса ходить напрямую НЕ через настройку wpad.dat?
Вопрос не по теме поста. В следующий раз лучше задавайте вопросы либо в соответствующих постах (по конфигурации squid есть отдельная заметка), либо в форуме.
Я сделал так (не факт что это самое изящное решение):
Создал вспомогательный конфигурационный файл conf_param_sites_always_direct.txt с содержимым типа:
#
.domain1.com
.sub.domin2.com
#
В основном конфигурационном файле squid.conf добавил следующие строки:
acl localnetsites dstdomain "/путь к файлу/conf_param_sites_always_direct.txt"
...
http_access allow localnetsites localnet
...
http_access deny !auth
Ну и плюс ко всему на всякий случай прописал исключения в WPAD.DAT типа:
...
if (shExpMatch(url, "*/domain1.com*")) {return "DIRECT";}
if (shExpMatch(url, "*/sub.domin2.com*")) {return "DIRECT";}
...
И еще вопрос, хочу ограничить доступ к веб-морде отчетов LighSquid, как ограничить знаю, а вот где сама "папка" lightsquid'a лежит понять не могу?
/usr/lib/cgi-bin/lightsquid/
/usr/share/lightsquid/
по первому пути лежит index.cgi
Все используемые lightsquid пути прекрасно видны даже из текста заметки.
Ubuntu server 14.04
Здравствуйте! Поставил по описанной статье до момента запуска lightparser.pl
Выполнил sudo /usr/share/lightsquid/lightparser.pl
Но при входе на http://www.maysait/lightsquid сообщение forbidden.
Папка lightsquid в каталоге сайта не появилась.
Сам сайт по адресу http://www.maysait открывается.
Подскажите, пожалуйста, в чем может быть проблема
Попробуйте заходить по адресу http://www.maysait/lightsquid/. Тест на внимательность - у меня в конце стоит "/", а у вас нет :)
Добрый день!
Подскажите как быть с русскими имена в AD, в отчетах lightsquid они отображаются некорректно.
В свойствах файла с именами надо установить кодировку utf-8
Пропатчил файл /usr/share/lightsquid/lightparser.pl
nano ./lightparser.pl.patch
*** lightparser.pl 2015-09-02 11:20:09.492836861 +0400
--- lightparser.pl 2015-09-02 11:22:18.988841219 +0400
***************
*** 29,34 ****
--- 29,35 ----
use File::Basename;
use Time::Local;
+ use URI::Encode;
push (@INC,(fileparse($0))[1]);
***************
*** 53,58 ****
--- 54,61 ----
my $catname ="cat";
my $filename ="access.log";
+ my $uri = URI::Encode->new( { encode_reserved => 0 } );
+
undef $workday;
exit unless (LockLSQ()); #Lock LSQ (block multiple instance)
***************
*** 228,234 ****
}
$daylines++;
! $user=lc $Luser;
$user = Ip2Name($Lhost,$user,$Ltimestamp);
--- 231,237 ----
}
$daylines++;
! $user=lc $uri->decode($Luser);
$user = Ip2Name($Lhost,$user,$Ltimestamp);
***************
*** 489,492 ****
2007-01-05 FIX : Wrong modification data writen in .features
2008-11-28 NEW : Odnoklasniki & Vkontakte agregator added
FIX : Perl 5.10 fix. in several cases incorrect name was used, but size calculated correctly.
! 2009-06-30 NEW : .overuser support
\ No newline at end of file
--- 492,495 ----
2007-01-05 FIX : Wrong modification data writen in .features
2008-11-28 NEW : Odnoklasniki & Vkontakte agregator added
FIX : Perl 5.10 fix. in several cases incorrect name was used, but size calculated correctly.
! 2009-06-30 NEW : .overuser support
sudo cpan URI::Encode
sudo patch /usr/share/lightsquid/lightparser.pl ./lightparser.pl.patch
Спасибо большое автору за статьи.Все собрал по его статьям,но вот возник такой вопрос:
1)У меня есть правило в сквиде в нерабочее время все разрешено,соответственно в рабочее запрещено согласно списку из файла.И если смотреть статистику в lighsquid то в нем учитывается весь трафик (в рабочее и не рабочее время), а как сделать только учет в рабочее время?
2)И на сколько я понимаю squid в вашей конфигурации открывает и учитывает https трафик,или нет?
1. LightSquid обрабатывает данные лога access.log, поэтому тут либо нужно модифицировать скрипты LightSquid (добавить условие относительно времени суток), либо думать над тем как изменить запись в access.log
2. В описанной конфигурации Squid не логирует трафик идущий внутри HTTPS сессий, так как по сути своей это туннельный трафик.
Не посчитайте за наглость, а не могли бы Вы пример и его реализацию показать.
Добрый день. Статья полезная.
У меня примерно такая же проблема. Подождем. Может есть какое то решение.
Обратная ссылка: Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 6. Настройка Proxy Auto Configuration (WPAD) | Блог IT-KB /
Добрый день. Спасибо за цикл статей.
Столкнулся с проблемой: при запуске ротации логов через cron не создаются новые файлы access.log и cache.log, в результате чего squid останавливается с ошибкой. Если создать файлы вручную, назначить владельца и запустить прокси, то все снова работает. Немного смущает директива nocreate в конфиге.
Подскажите куда копать.
Спасибо.
Скажите, а как с помощью keytab поддерживать актуальную информацию о пользователях и группах?
Алексей, подскажите все же каким должен быть скрипт для заполнения group.cfg очень буду благодарен если направите в какую сторону смотреть.
У меня нет такого скрипта, так как я не использую group.cfg
Обратная ссылка: Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 4. Конфигурация Kerberos и NTLM | Блог IT-KB /
дополню: необходимо установить пакет libcgi-session-perl, иначе lightsquid выдает ошибку 500
Приветствую!
Возможно вопрос покажется банальным, но при запуске /usr/share/lightsquid/lightparser.pl Выдает ошибку, что такого файла не существует (/var/log/squid3/access.log).
Проблема в пути, у меня путь для кальмара такой - /var/log/squid/access.log
А где его поменять я так и не нашел.
Подскажите пожалуйста, в каком файле править данный путь?
Нашел. Отбой.
Можете написать. В чем было ошибка?
Здравствуйте, спасибо за статьи.
Вопрос. При использовании скрипта с группами безопасности часть отображает в виде IP а чать пользователей именами компьютеров. А вот имена пользователей не берет. В чем может быть упущение? Спасибо.
Доброго времени суток.
В процессе эксплуатации обнаружилось, что сквид перестал обрабатывать/отображать статистику начиная с января 2021 года.
здесь есть описание проблемы, но не совсем понятно как его применить: https://finisky.github.io/2021/01/03/lightsquidhardcodeyear.en/
Можно ли здесь показать как исправить данную проблему?
С уважением.
в строке - my $filterdatestop =timelocal(59,59,23,31,12-1,2020-1900)+1000;
меняете вот так - my $filterdatestop =timelocal(59,59,23,31,12-1,2100-1900)+1000;