Итак, необходимо поднять на 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:
авторизация в NCSA
файл перенаправления запроса http://192.168.0.99/sams/icon/classic/blank.gif
Путь к каталогу, где лежат файлы запрета запроса http://192.168.0.99/sams/messages
Редиректор встроенный SAMS
Сохранять данные о трафике в базе за последние 12 месяцев
Удалить все существующие группы пользователей и шаблоны пользователей
удаляем все безжалостно…
Регулярные выражения :
создать список ban и поместить туда к примеру vkontakte.ru
Локальные домены:
добавить workgroup и 192.168.0.99
Создаем шаблон пользователей users:
Запрет доступа по регулярным выражениям
ban
Авторизация NCSA
Теперь добавим группу Users
и первого юзера
(не забудьте поставить галку в поле – Пользователь активен)
Запускаем демона
/etc/init.d/samsd start
Идем в меню SQUID – реконфигурировать
после того, как убедились, что команда демоном получена – смотрим в консоли:
ps -auxw|grep proxy
Теперь для проверки reboot и будем смотреть как это все работает,
В браузере прописываем настройки прокси 192.168.0.99 порт 3128
Все должно работать, а при попытке входа на запрещенный URL должны получить:
Ну и конечно красивые графики в статистике …
Ну вот кажется и все, ждите продолжения ….