SQUID + SAMS2 + REJIK + авторизация по IP на Ubuntu server 10.04

Данная статья устарела, обновленный материал для Ubuntu 14.04 находится здесь

Установим на наш сервер кэширующий прокси-сервер squid и необходимый набор пакетов
1. Систему мы обновили ранее, так что просто ставим пакеты

aptitude install apache2 apache2-doc apache2-utils ssl-cert mysql-server libmysqlclient15-dev libapache2-mod-php5 php5 php5-common php5-dev php5-mcrypt php5-imagick php5-mysql php5-gd squid libpcre3 libpcre3-dev

2. Идем редактировать конфиг, сразу оговорюсь что адрес сервера для локальной сети 192.168.0.1. Открываем /etc/squid/squid.conf, ищем нужные строки и корректируем следующим образом:


...
http_port 3128 # ...
cache_dir ufs /var/spool/squid 100 16 256 # ...
acl our_networks src 192.168.0.0/24 # http_access allow our_networks # ...
visible_hostname localhost # ...

3. Перезапускаем проксю

/etc/init.d/squid restart

4. Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси - пишем IP-адрес интерфейса, обращенного в локалку. Скорее всего это будет 192.168.0.1, порт прокси - указанный в конфиге 3128

Выбираем свою архитектуру процессора (32х или 64х битная), и устанавливаем 3 пакета:
sams2 – конфигурационный файл и все исполняемые файлы демонов
sams2-web – web-интерфейс для управления работой sams и squid
sams2-doc – документация к sams
Рекомендуется устанавливать все 3 пакета выбранной версии: Для 32х битных систем:


wget http://nixdev.net/release/sams/devel/packages/ubuntu/10.04/sams2-doc_2.0.0-b2_all.deb

wget http://nixdev.net/release/sams/devel/packages/ubuntu/10.04/sams2-web_2.0.0-b2_all.deb

wget http://nixdev.net/release/sams/devel/packages/ubuntu/10.04/sams2_2.0.0-b2_i386.deb

Для 64-битной версии

wget http://nixdev.net/release/sams/devel/packages/ubuntu/10.04/sams2_2.0.0-b2_amd64.deb

И устанавливаем скачанное:

dpkg -i *.deb

Заходим и читаем, там все просто расписано по шагам

mcedit /usr/share/sams2/doc/README.Debian

Для работы SAMS2 необходимо создать базу данных и пользователя sams в БД MySQL через веб-интерфейс
Для начала правим конфиг Apache, что бы особо не заморачиваться я правил через webmin. Установка webmin описывалась здесь
Доводим конфиг до такого состояния:


ServerAdmin webmaster@localhost

DocumentRoot /usr/share/sams2/

AllowOverride AuthConfig
Options Indexes MultiViews
Order allow,deny
Allow from all

Затем правим конфиг SAMS2

nano /etc/sams2.conf

И правим:


DB_ENGINE=MySQL
;DB_ENGINE=PostgreSQL
;DB_ENGINE=unixODBC
DB_SERVER=localhost
SAMS_DB=database_name
ODBC=0
PDO=0
ODBCSOURCE=sams_mysql
DB_USER=sams
DB_PASSWORD=****** ;сюда пишите свой пароль
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/etc/squid
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEDIR=/var/spool/squid
SAMSPATH=/usr/
SQUIDPATH=/usr/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/etc/squid
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
REJIKPATH=/usr/local/rejik3
SHUTDOWNCOMMAND=shutdown -h now
CACHENUM=1

Редактируем /etc/init.d/sams и изменяем SAMS_ENABLE="false" на "true".

nano /etc/init.d/sams
SAMS_ENABLE=true

Странно, но такой факт имеет место, sams-демон не хотел запускаться в автоматическом режиме. Решился вопрос элементарно - делаем задержку запуска демона в конфиге под строкой #!/bin/sh -e

sleep 10

Перезапускаем Apache

/etc/init.d/apache2 restart

И заходим через браузер с компа потенциального клиента:
http://192.168.0.1
Далее выполняем действия в браузере по установки и настройке.
При этом выясняем что у нас неисправный php.ini. Редактируем конфиг PHP /etc/php5/apache2/php.ini:

nano /etc/php5/apache2/php.ini

По заявлениям автора с версии 1.0 SAMS работает в safe_mode php
Настраиваем php для работы в режиме safe mode, для этого выставляем параметр safe_mode:

safe_mode = On

так же SAMS для некоторых функций WEB интерфейса использует системные команды. В режиме safe_mode php блокирует доступ к системным командам.Php позволяет выполнять системные команды, расположенные в каталоге,заданном параметром safe_mode_exec_dir.Изменяем этот параметр:

safe_mode_exec_dir = "/usr/share/sams/bin"

Далее разрешаем исполнение системных скриптов из кода php.Ищем в файле конфигурации параметр и убираем из него запрет вызова функций phpinfo system shell_exec exec:

disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"

И опять перезапускаем Apache

/etc/init.d/apache2 restart

Редактируем /etc/init.d/sams и изменяем SAMS_ENABLE="false" на "true".

nano /etc/init.d/sams
SAMS_ENABLE=true

Ставим Режик
Берем с офсайта http://www.rejik.ru/index_ru_11_1.html последнию версию на момент написания это redirector-3.2.8

wget http://www.rejik.ru/download/redirector-3.2.8.tgz
tar -xzf redirector-3.2.8.tgz
cd redirector-3.2.8

Скачиваем банлисты:

wget http://www.rejik.ru/download/banlists-2.x.x.tgz
tar -xzf banlists-2.x.x.tgz

Смотрим под каким пользователем работает squid, и что за группа (для Debian и Ubuntu это proxy:proxy)

ps aux | grep squid

Открываем для редактирования Makefile и правим значения SQUID_USER и SQUID_GROUP на нашего пользователя и группу (proxy:proxy).
Собираем и устанавливаем

make
make install

Перемещаем туда наши бан листы:


mv banlists /usr/local/rejik3/

Переходим в каталог куда он установился

cd /usr/local/rejik3/

Редактируем конфиг:

cp /usr/local/rejik3/redirector.conf.dist /usr/local/rejik3/redirector.conf

в конфиге путь к логам указан в ту же папку куда установлен и сам rejik (/usr/local/rejik3/),
для удобства переношу логи в папку (/var/log/squid) и создаю там лог-файлы которые прописанны в конфиге:

cd /var/log/squid
touch redirector.log redirector.err

Ставим права:

chown proxy:proxy redirector.log

(redirector.err)

Меняем наши пути:

nano /usr/local/rejik3/redirector.conf

error_log /var/log/squid/redirector.err
change_log /var/log/squid/redirector.log

Так же выставляем на папку banlists права (proxy:proxy):

chown -R proxy:proxy banlists/*

Из папки /usr/local/rejik3/tools запускаем:

./check-redirector

http://127.0.0.1/ban/porno.html 127.0.0.1/- - GET

Идем в наши логи и смотрим - для нас важна в redirector.log строчка:

2010-09-20 16:19:09 [26671] Redirector start and working (3.2.8)
Что бы заработал редиректор, пропишите в /etc/squis/squid.conf строку:

url_rewrite_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf
если что смотрим и исправляем.

P.S.
После установки, веб-интерфейс бывает глючит (не открываются некоторые разделы), исправить его можно заменив в /usr/local/share/sams2/src/webconfigtray.php название функции "GetHostName" на "GetHostNameUp"
Права на файлы squid.conf поменяйте chown proxy:proxy /etc/squid/squid.conf

Оцените блог: 
Средняя: 3.5 (261 оценка)