Главная > В помощь sysadmin'y, Статьи > Настройка прокси-сервера Squid +sams+ncsa на Ubuntu 10.04

Настройка прокси-сервера Squid +sams+ncsa на Ubuntu 10.04

Настройка прокси-сервера Squid +sams+ncsa на Ubuntu 10.04

В далеком 2010 году я написал статью Proxy-сервер SQUID web-интерфейс для администрирования SAMS SAMS+REJIK с аунтентификацией по NTLM, много воды утекло с тех пор, но вот мне попалась на Хабре совсем свежая и по словам автора полностью рабочая статья «Настройка squid+sams+ncsa на Ubuntu 10.04″. Большое спасибо автору за его проделанный труд, эту статью я вам и предлагаю почитать.
К Вашему всеобщему вниманию выкладываю свой ман — полностью рабочий и со всеми дополнениями, которых не хватает частенько при настройке серверов прокси squid. Подобную информацию можно нарыть в интернете, но после «тех» настроек сервак или не запуститься или работать будет некорректно, так что приятного прочтения.
(почему именно NCSA, то ответ прост – перекопав много вариантов как с IP так и с доменной авторизацией, пришел к выводу что самая стабильная версия это NCSA, хоть требует первоначального геморроя с заведением пользователей, но один раз сделал (сделал бекап после первой настройки на всякий случай ;) ) и забыл.
Если у Вас есть мечта работы хорошего прокси-сервера в Вашем офисе, то инфа как раз для Вас.
Здесь собраны мною все дополнения и команды, необходимые для полной настройки и лишнего копания в инете – сам настроил его за 30 минут и все ок.
Исходные данные для установки:
(данные IP, mask, dns and gateway использовать своей сети)
Ubuntu 10.04 х386
Будущий сервер 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 можно удалить … (на Ваше усмотрение)
Настройки сетевой на Ваше усмотрение (лично у меня и по DHCP работает нормально все), а так если что:
mcedit /etc/network/interfaces (если открывать через mcedit, то первоначально выполните обновление системы и установите пакет mc)
iface eth0 inet static
address ……..
netmask ……… .
gateway ……..

Проверяем установки времени:
date
Если нужно изменить -> man date
Проверим вашего пользователя:
Sudo su
Если же под рутом пароль не проходит, то:
Sudo passwd root (повторяем два раза пароль и вуаля root открыт)
Обновляем систему:
apt-get update
apt-get upgrade

Для следующей работы удобнее поставить mc:
apt-get install mc
Установка SQUID3 и SAMS
Ставим необходимые пакеты для сборки и работы sams:
apt-get install mc libpcre3 libpcre3-dev libmysqlclient15-dev php5-ldap php-fpdf squid3 squidguard gcc make php5-gd
Итак, нам необходимы исходники sams
Идем на google.ru, ищем и качаем Current Stable Release: sams-1.0.1.tar.bz2
Скачиваем архив и быстрым шагом, примонтировав расшаренную папку, перекинуть по сетке:
Создаем папку:
mkdir /mnt/music
Монтируем папку (обратите внимание на параметр iocharset):
mount //ip_address/share/music /mnt/music -o iocharset=utf8,username=user,password=pass

//ip_address/share/music — это каталог на сетевом диске в котором храниться вся музыка, не забудьте заменить ip_addres на реальный IP.
/mnt/music — это каталог в которым мы будет монтировать, его мы создали чуть выше
iocharset=utf8 — кодировка, лучше оставить ее если используется сетевой диск работающий под linux, а если под какой либо windows, то скорее всего надо будет заменить на cp1251
username — имя пользователя
password — пароль пользователя

Скачав архив, кидаем его в /usr/src/:
сp /путь/ /usr/src/
cd /usr/src/
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
mcedit 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”;
(после каждой команды \g)
exit
Теперь отредактируем в конфиге пароли, логины и пути к squid3
mcedit /etc/sams.conf
Учтите, что в строке
SHUTDOWNCOMMAND=shutdown -h now
прописана команда на полный останов прокси!
Собственно редактируем следующие строки:
MYSQLPASSWORD=sams (пароль который мы указывали тут — GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY “sams”; )
SQUIDROOTDIR=/etc/squid3
SQUIDLOGDIR=/var/log/squid3
SQUIDCACHEDIR=/var/spool/squid3

Теперь импортируем таблицы в mysql (путь указан кривой, так что придется через mc найти где лежит sams и там будут эти таблицы)
cd ./mysql
mysql -u root -p < sams_db.sql
mysql -u root -p < squid_db.sql

И идем редактировать конфиг сквида под свои нужды:
mcedit /etc/squid3/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
(наже раскомментируем строки которые и будут выполнять службу NCSA)
url_rewrite_program /usr/local/bin/samsredir
url_rewrite_children 5

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/ncsa.sams (если указан другой файл, то заменить на 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:
crontab -u root -e
и вставить строку */1 * * * * /usr/local/bin/sams
Должно получиться вот так:
# m h dom mon dow command
*/1 * * * * /usr/local/bin/sams
По окончанию всех действий необходимо подправить 2 пункта, которых так часто не хватает почти во всех мануалах что находил в поисковиках:
1) изменение файлов ./sams/src/webconfigtray.php и ./sams/src/configtray.php, а именно комментирвоание строк
/* function GetHostName()
* {
* if (!($value=getenv(‘SERVER_NAME’)))
* { $value=»N.A.»; }
* return($value);
*}
*/
2) Проблема с отчетом логов –выводит только максимальный год в морде sams 2009, исправляем:
Открываем файлик mysqltools.php и вот эти номера строки в 484 560 594 676 709
меняем
for($i=2001;$i<2010;$i++)
на
for($i=$year-10;$i<=$year+1;$i++)
Теперь перезапустим 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 и поместить туда к примеру vk.com
Создаем шаблон пользователей users:
Запрет доступа по регулярным выражениям
ban
Авторизация NCSA
Теперь добавим группу Users
и первого юзера
(не забудьте поставить галку в поле – Пользователь активен)
Запускаем демона
/etc/init.d/samsd start
Идем в меню SQUID – реконфигурировать
Теперь для проверки reboot и будем смотреть как это все работает,
В браузере прописываем настройки прокси 192.168.0.99 порт 3128

Читаем еще:

  1. Пока что нет комментариев.
Необходимо войти на сайт, чтобы написать комментарий.
#

//