Установка SAMS 1.0 на FreeBSD 6.2
Данная статья является копией Пример установки sams-1.0 на freebsd (с небольшими изменениями), написанного Айзятулленым Рамилем в блоге http://argo-uln.blogspot.com/ При копировании необходимо указывать автора и ссылку на оригинал.
SAMS это программное средство для администрирования доступа пользователей к прокси-серверу SQUID. Сайт проекта http://sams.perm.ru/ Там же указаны возможности системы.
В данной статье описан процесс установки программы с NCSA авторизацией на freebsd со всеми необходимыми для работы программами.
ВНИМАНИЕ!!! Хочу заметьть, что настройка apache, php и т.д. по умолчанию, что не обеспечивает должной безопасности системы. Поэтому данная система должна быть дополнительно защищена для доступа из вне.
Ставим Apache 1.3
cd /usr/ports/www/apache13 make install clean
Добавим в /etc/rc.conf строку
apache_enable=”YES”
Выполним команду
/usr/local/etc/rc.d/apache start
Посмотрим запустился ли сервер
ps ax | grep http 6280 ?? Ss 0:00,05 /usr/local/sbin/httpd 6281 ?? I 0:00,00 /usr/local/sbin/httpd 6282 ?? I 0:00,00 /usr/local/sbin/httpd 6283 ?? I 0:00,00 /usr/local/sbin/httpd 6284 ?? I 0:00,00 /usr/local/sbin/httpd 6285 ?? I 0:00,00 /usr/local/sbin/httpd 6308 p0 R+ 0:00,00 grep http
Проверяем открывается ли страница http://myip/
Ставим squid
cd /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 install clean
Добавляем следующие опции в /usr/local/etc/squid/squid.conf
Ниже фрагмент файла squid.conf с добавленными или измененными параметрами.
Первые пять строк включают аутентификацию. Проверьте правильность путей к файлам.
Опция http_port 8080 меняет порт, на котором работает 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 8080 forwarded_for off acl squidusers proxy_auth REQUIRED http_access allow squidusers
Создадим пользователя для проверки работы squid
/usr/local/bin/htpasswd /usr/local/etc/squid/ncsa.sams testuser
Вводим пароль для testuser Добавим в /ets/rc.conf строку
squid_enable=”YES”
Создадим кеш прокси сервера командой
squid –z
Запустим squid командой
/usr/local/etc/rc.d/squid start
Посмотрим процессы
ps axw | grep squid 5925 ?? Is 0:00,00 /usr/local/sbin/squid -D 5927 ?? S 0:01,05 (squid) -D (squid) 5928 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth) 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)
Установка MySQL5
cd /usr/ports/databases/mysql50-server make install clean
Добавим в /etc/rc.conf строку
mysql_enable=”YES”
Запустим mysql командой
/usr/local/etc/rc.d/mysql-server start
Посмотрим запустился ли mysql, командой
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'
Подключаемся локально
mysql -u root -p
Добавим пользователя monty (полные права на все базы со всех хостов сети)
use mysql GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'password' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;
Ставим PHP5
cd /usr/ports/lang/php5 make config
Выбираем опции
X CLI X CGI X APACHE X SUHOSIN X FASTCGI X PATHINFO make install clean
Чтобы активировать модули apache даем команду
apachectl graceful
Правим файл /usr/local/etc/apache/httpd.conf
Закрываем комментариями 2 строки, php то у нас пятый а не четвертый.
Ниже фрагмент httpd.conf
# <IfModule mod_php4.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps # </IfModule>
Еще проверим httpd.conf, в списке модулей должны быть строки.
Ниже фрагмент httpd.conf
LoadModule php5_module libexec/apache/libphp5.so AddModule mod_php5.c
В корень вебсервера кладем файл /usr/local/www/data/index.php содержащий
<?
phpinfo();
?>
Перезапускаем вебсервер командой apachectl restart
Проверяем работоспособность php http://myip/index.php
Ставим PHP5_EXTENSIONS из портов (/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 install clean
Чтобы активировать модули apache даем команду
apachectl graceful
В файл /usr/local/etc/apache/httpd.conf добавить директиву ExecCGI
Это разрешит загрузку файлов на сервер через web интерфейс
Ниже фрагмент httpd.conf
<Directory /> Options FollowSymLinks ExecCGI AllowOverride None </Directory>
Настраиваем php
cp /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
safe_mode = On safe_mode_exec_dir = "/usr/local/share/sams/bin"
Установка sams-1.0
Качаем с http://sams.perm.ru/ дистрибутив sams-1.0.tar.bz2, распаковываем,
переходим в директорию
cd sams-1.0 ./configure gmake install. cp etc/samsd.freebsd /usr/local/etc/rc.d/samsd
Добавим в samsd строку # REQUIRE: mysql
Это необходимо чтобы сервис samsd стартовал после mysql
В файл /etc/rc.conf добавим
samsd_enable=”YES”
После этого прописываем пароль для пользователя sams в /etc/sams.conf, исправляем пути.
Ниже содержание файла sams.conf
SQUID_DB=squidlog SAMS_DB=squidctrl MYSQLHOSTNAME=localhost MYSQLUSER=sams MYSQLPASSWORD=nikamu_niskashu MYSQLVERSION=5.0 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/rejik SHUTDOWNCOMMAND=shutdown -h now CACHENUM=0
Необходимо создать символическую ссылку.(чтобы создавался файлик ncsa.sams)
ln -s /usr/local/bin/htpasswd /usr/bin/htpasswd
Запустим
/usr/local/etc/rc.d/samsd start
Заходим в вебинтерфейс sams, http://myip/sams/
Создаем пользователя sams для доступа к mysql, автоматом создадутся необходимые базы.
Заходим в вебинтерфейс, по умолчанию пользователь Admin, пароль qwerty
Администрирование SAMS -> настройки SAMS
Способ аутентификации пользователя-> NCSA
Настройка samsdaemon
Проверять наличие команды на реконфигурирование squid каждые -> 1 секунд
Обрабатывать логи SQUID -> галочка
Запускать обработчик логов через N минут -> 1 минут
Редиректор -> встроенный squid
Создаем пользователей, назначаем им шаблон
Убираем из /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
Работаем.
Айзятуллен Рамиль, 2007
Пример установки sams-1.0 на freebsd
