Цель данной статьи в конечном итоге получить настроенный прокси сервер с Web мордой для конфигурирования. И да, конечно же это будет связка Squid + SAMS, авторизация пользователей будет NCSA.
Для того чтобы клиенты могли выходить в интернет через наш шлюз, настроим NAT.
https://onedayadmin.sytes.net/nat-ubuntu-12-04/
Установим все необходимые демоны, до установки SAMS.
apt-get install apache2
apt-get install mysql-server php5 libapache2-mod-php5 php5-mcrypt libmysqlclient-dev php5-gd php5-mysql
Установим SQUID.
Скачиваем squid со всеми зависимостями и извлекаем архив.
Заходим в папку в которую разархивировали архив.
Приступим к установке SAMS.
Загружаем самс с сайта http://sams.perm.ru и разархивируем.
Резервная ссылка sams2-2.0.2
Распакуем архив и скопируем исходники в папку котороую мы случайно не удалим в последствие.
cd /home
tar -xvf sams2-2.0.2.tar
cp -r /home/sams2-2.0.2/ /usr/local/bin/
cd /usr/local/bin/sams2-2.0.2
Собираем из исходников
make -f Makefile.cvs
sh ./configure
make
make install
Дадим права для web сервера
chown -R www-data:www-data /usr/local/share/sams2/
chown www-data:www-data /usr/local/etc/sams2.conf
Создадим конфигурационный файл для запуска sams.
cp /usr/local/bin/sams2-2.0.2/debian/init.d /etc/init.d/sams
chmod +x /etc/init.d/sams
Настроим апач
<VirtualHost *:80>
ServerName sams.my.local
DocumentRoot /usr/local/share/sams2
<Directory /usr/local/share/sams2>
Require all granted
AddDefaultCharset UTF-8
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
a2ensite samsweb
systemctl restart apache2
Не забываем добавить sams.my.local в DNS сервер.
Тут были приведены элементарные настройки, поэтому делаем нужные под себя.
Конфигурируем sams.
SAMSPATH=`cat /usr/local/etc/sams2.conf | grep SAMSPATH | tr "SAMSPATH=" "\0"`
nano /usr/local/etc/sams2.conf
DB_USER=root
DB_PASSWORD=Privet12
Заходим на web морду sams и создаем базу.
sams.my.local/setup.php
user root
pass PassMYSQL
создать пользователя sams
pass password
после создания базы меняем пользователя и пароль в /usr/local/etc/sams2.conf
Для старта демона sams создадим ссылку
если не стартовал -
http://192.168.21.230/index.php
login : admin
pass : qwerty
Настроим сквид.
url_rewrite_program /usr/local/bin/sams2redir
url_rewrite_children 5
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3
/sams2.ncsa
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
service squid3 restart
/etc/init.d/sams stop/start
Настроим sams через web интерфейс.
http://192.168.21.230/index.php
1 шаг -> Выбираем кодировку Russian UTF-8
2 шаг -> Проверяем зависимости, все кроме safe_mode должно быть зеленым.
3 шаг -> В поле Имя пользователя БД пишем root, в поле Пароль к базе данных пишем пароль рута mysql, ставим галочку Создать пользователя SAMS для доступа к базе данных, в поле имя пользователя SAMS - sams@localhost, в поле пароль пишем пароль для пользователя под которым sams будет работать с mysql.
DB_USER=sams
DB_PASSWORD=Пароль из пункта выше
Для автоматического запуска демона sams добавим паузу в 30 секунд при загрузке демона:
. /etc/default/rcS
case "$1" in
start)
sleep 30
if "$SAMS_ENABLE"; then
Заходим в web интерфейс. Логин admin пароль qwerty
авторизация
-> NCSA
SQUID->ProxySErver->Шестеренка(настройки)
-> Считать трафик: реальный(Полученный прокси-сервером)
-> Домен по умолчанию: atlant
-> Настройка авторизации пользователя: NCSA
-> Проверять наличие команды на реконфигурирование Squid каждые: 1 секунду
-> Обрабатывать логи Squid: ставим галочку
-> обрабатывать через: 1 мин
-> Путь к wbinfo: /usr/bin
-> файл перенаправления запроса: http://192.168.21.230/sams2/icon/classic/blank.gif
-> Путь к каталогу, где лежат файлы запрета запроса: http://192.168.21.230/sams2/messages
-> Редиректор: Встроенный SAMS
-> Включить ограничение скорости доступа пользователей (delaypool): ставим галку
-> Сохранять данные о трафике в базе за последние: 2 месяцев
-> Сохранить изменения
Удалим всех пользователей, группы, шаблоны и создадим свои, реконфигурим squid.
url_rewrite_program /usr/local/bin/sams2redir
url_rewrite_children 5
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/sams2.ncsa
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours