Squid3+SAMS+Samsredirector на Ubuntu-server

29 Авг 2010, justbox. Рубрика Linux - Proxy

Итак, необходимо поднять на Ubuntu-server 7.10 связку
SQUID3 + SAMS + Samsredirector
Реализация этого на обычном squid вопросов уже не вызывает почти ни у кого,
так как все описано на много раз …. а вот squid3 почему-то многих ставит в тупик, хотя непонятно ….

Итак начнем.

Исходные данные для установки:
Будущий сервер proxy.workgroup
ip 192.168.0.99 gt:192.168.0.77 dns:192.168.0.77

Установка:
При установке выбираем конфигурацию LAMP и OPENSSH-Server
В процессе установки вас спросят пароль для root mysql
После установки проверяем имя хоста в /ets/hostname ->> proxy.workgroup
и записи в /etc/hosts
127.0.0.1 localhost proxy
192.168.0.99 proxy.workgroup proxy
Записи, относящиеся к ipv6 можно удалить …

Проверяем установки времени:
date
Если нужно изменить -> man date

Редактируем список репозитариев в /etc/apt/sources.list
и обновляем систему
apt-get update
apt-get upgrade

Установка SQUID3 и SAMS
Ставим необходимые пакеты для сборки и работы sams:
apt-get install mc libpcre3 libpcre3-dev libmysqlclient15-dev php5-ldap php-fpdf squid3 squidguard gcc make php5-gd
(если нужна стабильность, ставим squid)

Итак, нам необходимы исходники sams
Идем на http://sams.irc.perm.ru/ и качаем Current Stable Release: sams-1.0.1.tar.bz2
cd /usr/src/
wget http://sams.perm.ru/downloads/sams-1.0.1.tar.bz2
bunzip2 sams-1.0.1.tar.bz2 && tar -xpf sams-1.0.1.tar && rm sams-1.0.1.tar
cd sams-1.0.1/

В файле samsdaemon.c
ищем строку squid -k reconfigure
и меняем на squid3 -k reconfigure
Кто плохо знаком с консольными редакторами, пользуйтесь mc
или после сборки sams делаем симлинк (но думаю это не правильно…)
ln -s /usr/sbin/squid3 /usr/sbin/squid
иначе демон samsdaemon
будет пытаться при реконфигурировании запустить /usr/sbin/squid вместо squid3

Теперь непосредственно конфигурирование:
./configure – -with-httpd-locations=/var/www
make
make install

Копируем файл запуска демона конфигурации
cp ./etc/samsd.debian /etc/init.d/samsd
update-rc.d samsd defaults

Займемся доступом к mysql
mysql -u root -p (тут спросят пароль root для mysql)
GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY “sams”;
(вместо “sams” вписываем свой пароль для юзера sams)
GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY “sams”;
exit

Теперь отредактируем в конфиге пароли, логины и пути к squid3
vim /etc/sams.conf
Учтите, что в строке
SHUTDOWNCOMMAND=shutdown -h now
прописана команда на полный останов прокси!

Собственно редактируем следующие строки:
MYSQLPASSWORD=sams
SQUIDROOTDIR=/etc/squid3
SQUIDLOGDIR=/var/log/squid3
SQUIDCACHEDIR=/var/spool/squid3
(для обычного сквида правим только пароль)

Теперь импортируем таблицы в mysql
cd ./mysql
mysql -u root -p < sams_db.sql
mysql -u root -p < squid_db.sql

И идем редактировать конфиг сквида под свои нужды:
vim /etc/squid3/squid.conf
(vim /etc/squid/squid.conf все по аналогии)

Внимание! Ни в коем случае не менять структуру файла и не удалять каменты !
sams ориентируется в конфиге по его дефолтной структуре и тегам в коментариях.
Итак, поехали:

указываем адрес, который будет слушать/обслуживать наш прокси
http_port 192.168.0.99:3128

раскоментариваем (редактруем по своему вкусу)
сache_dir ufs /var/spool/squid3 100 16 256
а так же другие опции работы с кешем

раскоментарить:
access_log /var/log/squid3/access.log
pid_filename /var/run/squid3.pid

Ищем соответствующие секции и вставляем/раскоментариваем :
url_rewrite_program /usr/local/bin/samsredir
url_rewrite_children 5
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

Все, необходимый минимум получен, остальное сами изучите :)
Теперь займемся обработчиком логов squid3 (access.log) – собственно непосредственный подсчет трафика
Обработчик логов sams может быть запущен samdaemon автоматически или из cron

Мы берем для простоты вариант работы с cron, создайте демону cron задание в файле /etc/crontab:
*/1 * * * * /usr/local/bin/sams
Согласно этому правилу обработка логов будет осуществляться раз в минуту
crontab -u root -e
и вставить строку что выше
Должно получиться вот так:
# m h dom mon dow command
*/1 * * * * /usr/local/bin/sams

Теперь перезапустим squid и займемся настройкой
/etc/init.d/squid3 restart

Открываем в мазиле

http://192.168.0.99/sams/

Админ:
admin/qwerty
Статистика:
auditor/audit

Настройка WEB интерфейса:
ставим язык russian utf-8
Показывать графики в отчетах
Создавать PDF отчеты с помощью fpdf

sams-1.png

Администрирование SAMS:
авторизация в NCSA
файл перенаправления запроса http://192.168.0.99/sams/icon/classic/blank.gif
Путь к каталогу, где лежат файлы запрета запроса http://192.168.0.99/sams/messages
Редиректор встроенный SAMS
Сохранять данные о трафике в базе за последние 12 месяцев

sams-3.png

Удалить все существующие группы пользователей и шаблоны пользователей
удаляем все безжалостно…

Регулярные выражения :
создать список ban и поместить туда к примеру vkontakte.ru
Локальные домены:
добавить workgroup и 192.168.0.99

Создаем шаблон пользователей users:
Запрет доступа по регулярным выражениям
ban
Авторизация NCSA

sams-4.png

Теперь добавим группу Users
и первого юзера
(не забудьте поставить галку в поле – Пользователь активен)

sams-5.png

Запускаем демона
/etc/init.d/samsd start
Идем в меню SQUID – реконфигурировать
после того, как убедились, что команда демоном получена – смотрим в консоли:
ps -auxw|grep proxy

sams-7.png

Теперь для проверки reboot и будем смотреть как это все работает,
В браузере прописываем настройки прокси 192.168.0.99 порт 3128
Все должно работать, а при попытке входа на запрещенный URL должны получить:

sams-61.png

Ну и конечно красивые графики в статистике …

sams-8.png

Ну вот кажется и все, ждите продолжения ….

Anti-Spam Protection by WP-SpamFree