Установка Прокси сервера SQUID с веб мордой SAMS


Вот решил поставить как-то прокси сервер squid естественно, но хотелось еще ко всему этому веб морду и прочитал про такое SAMS (Squid Account Manager Sams) http://sams.perm.ru/. В принципе все красиво и логи от squid он хранить умеет в mysql
Создавать группы, ставить ограничение по трафику, ну и что самое главное можно было потом из mysql тянуть логи в 1С. На 1С была сделана обработка для распознания рабочий личный сайты итд.
В общем красиво и много полезного.

Приступим....

Ставим сам прокси сервер SQUIDcd /usr/ports/www/squid
make config


Выбираем опции
X squid_delay_pools
X squid_carp
X squid_wccp
X squid_ident
X squid_kqueue
X squid_largefile


и устанавливаемmake && make install && make clean


Добавляем следующие опции в /usr/local/etc/squid/squid.conf
Опция http_port 3128 меняет порт, на котором работает squid
Опция forwarded_for off отключает ip адрес клиента
Опциями acl squidusers proxy_auth REQUIRED и http_access allow squidusers мы разрешаем аутентифицированным пользователям доступ в интернет.
auth_param basic program /usr/local/libexec/squid/ncsa_auth
/usr/local/etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
http_port 3128
forwarded_for off
acl squidusers proxy_auth REQUIRED
http_access allow squidusers


Создаем пользователя для проверки работы squid
/usr/local/bin/htpasswd /usr/local/etc/squid/ncsa.sams vash_user


И вводим для него пароль

Далее добавляем в /etc/rc.conf строку для автоматического запуска squid после перезагрузкиecho ‘squid_enable=”YES”’ >> /etc/rc.conf


Создадим кеш для прокси сервера
squid –z
Запускаем сам squid /usr/local/etc/rc.d/squid start


Смотрим в процессps axw | grep squid


5927 ?? Is 0:00,00 /usr/local/sbin/squid -D
5928 ?? S 0:01,05 (squid) -D (squid)
5929 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5930 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5931 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5932 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5933 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)


Cтавим Базу Данных Mysql 5.1cd /usr/ports/databases/mysql51-server
make && make install && make clean


Добавляем в /etc/rc.conf строку для запуска mysqlecho ‘mysql_enable=”YES”’ >> /etc/rc.conf


И запускаем сам сервер/usr/local/etc/rc.d/mysql-server start


Проверяем должно быть что то типа этогоps axw | grep mysql


6210 p0 RV 0:00,00 grep mysql (csh)
6188 p1- S 0:00,02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf -- user=mysql --datadir=/var
6206 p1- S 0:00,94 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/


Далее меняем пароль администратора Базы Данных/usr/local/bin/mysqladmin -u root password 'new_password'
/usr/local/bin/mysqladmin -u root -h hostname password 'new_password'


Ставим Веб сервер Apache 1.3
cd /usr/ports/www/apache13
make && make install && make clean


Добавим строку в /etc/rc.conf для автозапуска apache при перезагрузке сервераecho ‘apache_enable=”YES”’ >> /etc/rc.conf


Запускаем сам apache/usr/local/etc/rc.d/apache.sh start


Смотрим запустился ли веб сервер apacheps ax | grep http


6283 ?? Ss 0:00,05 /usr/local/sbin/httpd
6284 ?? I 0:00,00 /usr/local/sbin/httpd
6285 ?? I 0:00,00 /usr/local/sbin/httpd
6286 ?? I 0:00,00 /usr/local/sbin/httpd
6287 ?? I 0:00,00 /usr/local/sbin/httpd
6288 ?? I 0:00,00 /usr/local/sbin/httpd
6380 p0 R+ 0:00,00 grep http


Проверяем открывается ли тестовая страница набрав в любом веб браузере http://ip_tachki/

Ставим PHP 5cd /usr/ports/lang/php5
make config


Выбираем опции
X CLI
X CGI
X APACHE
X SUHOSIN
X FASTCGI
X PATHINFO


Устанавливаем.make && make install && make clean


Чтобы активировать модули apache даем команду apachectl graceful


Далее создаем тестовую страничкуee /usr/local/www/data/index.php вот с таким содержанием


<?
phpinfo();
?>


Перезапускаем веб сервер командой/usr/local/etc/rc.d/apache.sh restart


Проверяем работоспособность php заходим с любого интернет браузера http://ip_tachki/index.php

Ставим PHP5_EXTENSIONScd /usr/ports/lang/php5-extensions
make config


Выбираем опции

X CTYPE
X CURL
X GD
X GETTEXT
X HASH
X ICONV
X JSON
X MYSQL
X OVERLOAD
X PCRE
X PDF
X PDO
X PDO_SQLITE
X POSIX
X SESSION
X SIMPLEXML
X SPL
X SQLITE
X TOKENIZER
X XMLREADER
X XMLWRITER
X ZLIB


make && make install && make clean


Чтобы активировать модули apache даем команду apachectl graceful


В файл /usr/local/etc/apache/httpd.conf добавить директиву ExecCGI
Это разрешит загрузку файлов на сервер через web интерфейсee /usr/local/etc/apache/httpd.conf и добавляем следующее

<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None
</Directory>


Настраиваем phpcp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini


Настриваем php для работы в режиме safe mode, изменим /usr/local/etc/php.ini включаем
режим safe mode. Для этого выставляем параметр safe_mode = On
Ниже фрагмент php.ini
Правим php.iniee /usr/local/etc/php.ini


safe_mode = On
safe_mode_exec_dir = "/usr/local/share/sams/bin"


Установка SAMS-1.1
Качаем с http://sams.perm.ru/ дистрибутив sams-1.1.tar.bz2
Кидаем в любую директорию например /usr/home/
Распаковываемtar zxvf sams-1.1.tar.bz2


Переходим в каталогcd sams-1.1


далее конфигурим./configure


И устанавливаем обязательно gmake gmake install


переходим в директорию со скриптами создания базы и пользователя sams с паролем qwerty в Базе Данных Mysqlcd mysql
./create_sams_user


Вводим пароль Администратора mysql
Далее./create_squid_db


Вводим пароль Администратора mysql
далее
Копируем демон запуска SAMS в каталог ко всем демонамcp /usr/home/sams-1.1/etc/samsd.freebsd /usr/local/etc/rc.d/samsd


Добавим в samsd строку # REQUIRE: mysql
Это необходимо чтобы samsd стартовал после mysqlecho # REQUIRE: mysql >> /usr/local/etc/rc.d/samsd


Добавляем в /etc/rc.conf строку для SAMSecho ‘samsd_enable=”YES”’ >> /etc/rc.conf


Далее создаем конфиг SAMS примерно вот с таким содержаниемee /etc/sams.conf


SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=qwerty
MYSQLVERSION=5.1
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/usr/local/etc/squid
SQUIDLOGDIR=/usr/local/squid/logs
SQUIDCACHEDIR=/usr/local/squid/cache
SAMSPATH=/usr/local
SQUIDPATH=/usr/local/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/var/db/squidguard
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
LDAPSERVER=servername_or_ipadress
LDAPBASEDN=your.domain
LDAPUSER=DomainAdministrator
LDAPUSERPASSWD=passwd
LDAPUSERSGROUP=Users
REJIKPATH=/usr/local/rejik3
SHUTDOWNCOMMAND=shutdown -h now
CACHENUM=0


Далее необходимо создать символическую ссылку.(чтобы создавался файлик ncsa.sams) ln -s /usr/local/bin/htpasswd /usr/bin/htpasswd


Перед тем как запустить скачайте исправленный файл и его в директории
/usr/local/www/data/src/
Вместо userbuttom_1_prop.php в нем касяк не стоит проверка на то если уже существующего пользователя редактируешь ну например трафик добавил и оставляешь поле пароль пустым то пароль бьеться,так что качаем исправленный Качаем userbuttom_1_prop.php

Запускаем SAMS/usr/local/etc/rc.d/samsd start


Проверяем набераем в любом веб браузере http://ip_tachki/sams/
Создаем пользователя sams для доступа к mysql, автоматом создадутся необходимые базы.User sams password qwerty
Заходим в веб интерфейс, по умолчанию пользователь Admin,
пароль qwerty
Администрирование SAMS -> настройки SAMS
Способ аутентификации пользователя-> NCSA
Настройка samsdaemon
Проверять наличие команды на реконфигурирование squid каждые ->
1 секунд
Обрабатывать логи SQUID -> галочка
Запускать обработчик логов через N минут -> 1 минут
Редиректор -> встроенный squid
Создаем пользователей, назначаем им шаблон
Да и добавте адрес в браузере в строке Не спользовать прокси
для и введите ip_tachki
У меня это так 192.168.1.5
Можно перевести еще все в SAMS на русский язык
В настройках Веб интерфейса


Далее убираем две строки из squid.confee /usr/local/etc/squid/squid.conf


acl squidusers proxy_auth REQUIRED
http_access allow squidusers
и добавляем следующую для редиректора
redirect_program /usr/local/etc/squid/redirector.sams


Реконфигурируем прокси
В веб интерфейсе
SQUID -> Реконфигурирование SQUID
Все можно выпить бутылочку шампанского :)
Можно еще включить фаерволл pf для того что бы закрыть порты

Чуть позже напишу как прикрутить редиректора РЕЖИК 3 http://www.rejik.ru/
Он нужен для резки баннеров ну и запрещать сайты который не для общего пользования итд

Обновлено: 13.03.2015