August 30, 2020

Установка и настройка Lightsquid в Debian

LightSquid - это утилита для сбора и анализа трафика прокси-сервера Squid. Она служит для сбора статистики работы пользователей, основываясь на логах прокси-сервера Squid и представляет собой набор из нескольких скриптов написанных на языке программирования perl.

Перед тем как начать установку и конфигурирование lightsquid, необходимо проверить, что на сервере были установлены и корректно работали Squid и Apache2.

Создаём каталог, где будет установлен lightsquid

mkdir /var/www/lightsquid

После чего скачиваем и распаковываем, в созданный каталог, последнюю версию lightsquid

wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
tar -zxf ~/lightsquid-1.8.tgz 
cp ~/lightsquid-1.8 /var/www/lightsquid</strong>

Выставляем рекурсивно права 755 пользователю и группе www-data на каталог и его содержимое

chmod -R 755 /var/www/lightsquid
chown -R www-data:www-data /var/www/lightsquid

Делаем скрипты программы исполняемыми

<strong>chmod +x *.cgi
chmod +x *.pl

Ставим зависимые пакеты, без которых программа работать не будет (libgd-gd2-perl отвечает за показ графиков)

apt-get install perl libgd-gd2-perl

С установкой всё. Теперь приступим к настройке lightsquid:

Начнём с Apache. Для того, чтобы Apache правильно обрабатывал .cgi-скрипты отредактируем файл httpd.conf и приведём его к следующему виду:

nano /etc/apache2/httpd.conf
Alias /lightsquid /var/www/lightsquid
<Directory /var/www/lightsquid>
AddHandler cgi-script .cgi
AllowOverride All
</Directory>

Правим конфиг lightsquid

nano /var/www/lightsquid/lightsquid.cfg

Правим пути в секции GLOBAL VARIABLES

#path to additional `cfg` files
$cfgpath             ="/var/www/lightsquid";
#path to `tpl` folder
$tplpath             ="/var/www/lightsquid/tpl";
#path to `lang` folder
$langpath            ="/var/www/lightsquid/lang";
#path to `report` folder
$reportpath          ="/var/www/lightsquid/report";
#path to access.log
$logpath             ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath         ="/var/www/lightsquid/ip2name";

В секции WEB VARIABLES выставляем нужный язык интерфейса. В данном случае русский.

$lang                ="ru";

Закрываем и сохраняем конфиг. Теперь с помощью скрипта check-setup.pl можем проверить правильность сделанных настроек. Никаких ошибок быть не должно.

./check-setup.pl

Открываем файл realname.cfg и прописываем там IP пользователей и их реальные имена, которые будут отображаться в отчётах lightsquid

nano /var/www/lightsquid/realname.cfg
192.168.1.2     Sveta
192.168.1.4     Natasha
192.168.1.5     Rita
192.168.1.6     Dima
192.168.1.7     Vera
192.168.1.8     Anya

Теперь можно вручную сгенерировать отчеты и заодно проверить как работает lightsquid:

./lightparser.pl
lightparser.pl access.log.1 {gz|bz2}
lightparser.pl access.log.2 {gz|bz2}
lightparser.pl access.log.3 {gz|bz2}</strong>

Открываем браузер и вводим в адресной строке:

http://ip_вашего_сервера/lightsqiud

Для автоматизации генерирования отчётов добавляем в cron задание:

crontab -e
*/60 * * * * /var/www/lightsquid/lightparser.pl today

Отчёты будут автоматом генерироваться ежечасно. Вместо 60 можно выставить какое угодно значение в минутах.

Для ограничения доступа к серверу статистики по логину и паролю сделаем следующее:
Допустим, нам нужно сделать пользователя с именем lightsquid. Приводим файл .htaccess к следующему виду:

Options FollowSymLinks ExecCGI
DirectoryIndex index.cgi
 
AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthUserFile  /var/www/lightsquid/.htpasswd
require user lightsquid

Затем создаём файл .htpasswd

/usr/bin/htpasswd -c /var/www/lightsquid/.htpasswd

Добавляем пользователя

/usr/bin/htpasswd -n lightsquid

Дважды вводим пароль и полученный результат добавляем в файл .htpasswd

Возможные проблемы:
- Отчет пустой
Проверьте, пишет ли Squid логи

- Отчет не генерируется
Проверьте права доступа к папкам /var/log/squid и /var/www/lightsquid