Серия контента:
Возможности SAMS. Системные требования
Скачать SAMS можно на официальном сайте проекта http://sams.perm.ru/index.php , тут есть все необходимое системному администратору – от новостей и документации до исходных текстов программы.
Согласно официальному определению, SAMS – это не биллинговая система, а программное средство для администрирования доступа пользователей к прокси-серверу SQUID. Тем не менее, использовать его как систему учета трафика, прошедшего прокси-сервер, никто не мешает. Перечислим основные возможности программы:
- администрирование системы через Web-интерфейс;
- ограничение объема трафика пользователей;
- автоматическое отключение пользователей, превысивших лимит;
- блокировка доступа пользователей к запрещенным ресурсам Интернет;
- настройка доступа пользователей через механизм шаблонов;
- разбиение пользователей на группы для удобства администрирования системы;
- ведение статистики посещенных пользователями ресурсов Интернет;
- формирование отчетов по трафику пользователей за любой отрезок времени;
- поддержка различных видов авторизации, используемых в SQUID: ip, ntlm, ncsa;
- поддержка использования внешних редиректоров SQUID: rejik, squidGuard;
- ограничение скорости закачки для групп пользователей;
- отправка сообщений администратору при отключении пользователей из-за превышения лимита трафика:
- хранение информации в базе данных MySQL.
В настоящее время список официально поддерживаемых систем невелик: Linux, FreeBSD, OpenBSD, SUN Solaris x86. Но поскольку исходные тексты SAMS открыты, ничто не мешает администратору адаптировать продукт для других систем.
Для работы SAMS в системе Ubuntu (Debian) необходимо установить следующие приложения и дополнительные пакеты:
Web-сервер apache2, apache2-mpm-prefork, PHP 5.2 (libapache2-mod-php5), php5-cgi, php5-common, php5-mysql, БД MySQL (mysql-server), mysql-client, libmysqlclient15off, прокси-сервер SQUID, а также библиотеки pcre (libpcre3). Как все это настраивать и устанавливать, я описывать не буду, лучше сосредоточусь на деталях и «подводных камнях».
Установка и настройка
После распаковки архива SAMS необходимо войти в каталог дистрибутива и там выполнить команды (требуются права суперпользователя):
./configure --with-httpd-locations=/var/www make make installзатем создаем пользователя для доступа к БД mysql и собственно базу данных SAMS:
mysql -u root -p GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword"; GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword";замените неопределенные значения своими. После этого имя пользователя и пароль надо сохранить в файле конфигурации SAMS /etc/sams.conf:
- MYSQLUSER=sams – имя пользователя MySQL, от имени которого будет работать SAMS;
- MYSQLPASSWORD=yourpasswd – пароль пользователя в MySQL.
Для создания базы данных переходим в каталог./mysql и там выполняем следующие команды:
cd ./mysql mysql -u root -p < sams_db.sql mysql -u root -p < squid_db.sqlГоворя «перемещаемся в каталог./mysql», я имею в виду подкаталог каталога исходных текстов, возникший после разархивирования дистрибутива SAMS.
Настраиваем PHP:
Для настройки PHP необходимо внести изменения в файл /etc/php5/apache2/php.ini:
- Выставляем параметр safe_mode = On
- SAMS для некоторых функций Web-интерфейса использует системные команды, например wbinfo. В режиме safe_mode интерпретатор PHP блокирует доступ к системным командам. Тем не менее, интерпретатор позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir. Изменяем этот параметр: safe_mode_exec_dir = "/usr/local/share/sams/bin"
- Далее разрешаем исполнение системных скриптов из кода PHP. Ищем в файле конфигурации параметр и убираем из него запрет вызова функций phpinfo system shell_exec exec: disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"
Теперь самое интересное: администраторская консоль SAMS будет доступна по адресу: http://localhost/sams/
Первый вход можно осуществить с именем и паролем: admin/qwerty (следует сразу сменить этот пароль). После авторизации вы должны увидеть изображение, показанное на рисунке 1.
Я не буду описывать все опции и варианты настроек программы – администраторская консоль русифицирована, и все настройки интуитивно понятны. Вместо этого остановлюсь на нюансах, которые вызывают проблемы у тех, кто впервые сталкивается с эксплуатацией SAMS.
- Настраивая программу в разделе «Администрирование SAMS», не забудьте указать способ авторизации (ip или др).
- В подпункте «файл перенаправления запроса» обязательно смените «you_ip_address...» на localhost! Обязательно! Это не очевидно и теряется из виду, а последствия неприятны.
- В следующем подпункте делаем то же самое.
- В подпункте «редиректор» поставьте «встроенный SAMS» – по умолчанию там ничего нет. Потом можете поставить rejik, он более функциональный.
- Не забудьте сохранить изменения.
- Прокси-сервер SQUID должен быть запущен без каких-либо настроек с вашей стороны, но в конце конфигурационного файла нужно обязательно указать: «redirect_program /usr/local/bin/samsredir».
- В подразделе SQUID администраторской консоли SAMS обязательно сделайте реконфигурирование squid, – правильное завершение этой процедуры отразится соответствующим сообщением в самом SAMS и появлением в начале конфигурационного файла SQUID примерно такой надписи: «# created by SAMS _sams_ 2009-05-26 10:5:19».
- После этого выполните команду (требуются права суперпользователя) /etc/init.d/samsd stop и запустите скрипт с параметром start. Для SQUID нужно сделать то же самое: /etc/init.d/squid reload. Убедитесь в логах SQUID, что он работает нормально, после чего заведите на прокси-сервере пользователя в SAMS, при этом обратите внимание на тип авторизации – он должен совпадать с настройками в самом SAMS. Создайте в каталоге /etc/squid текстовый файл default.sams и туда пропишите по одному в строку (в случае авторизации по ip-адресу) данные, например:
10.0.16.114/255.255.255.255
10.0.16.108/255.255.255.255
Это адреса абонентов из вашей подсети, их же вы укажете при заведении пользователей в самом SAMS.
- В разделе администраторской консоли «Запрет доступа по URL» создайте ваш список и внесите в него URL, посещать которые вашим пользователям нельзя, или создайте для этих же целей шаблоны, используя регулярные выражения в одноименном разделе чуть ниже. Обязательно
поставьте «галочку», применяющую эти правила в шаблоне пользователя, в разделе «Шаблоны пользователя» (рисунок 2).
У меня на рисунке эта галочка пометила в разделе «запрет доступа» «my» – имя моего шаблона со списком запретных URL. Если этого не сделать, никакие запреты работать не будут!
- На клиентских машинах задайте в настройках браузеров ip-адрес и порт прокси-сервера, где работают SAMS и SQUID. Все пользователи идут через настроенную систему, трафик учитывается, статистика сохраняется в базе данных, строятся графики, а также доступны все остальные функции SAMS, как на рисунке 3.
«SQUID Account Management System(SAMS) — программное средство для администрирования доступа пользователей к прокси-серверу SQUID, сбора статистики и генерации отчетов о потреблении трафика.»
В данной статье я рассмотрю установку sams-2.0.0-rc1 на Ubuntu 10.04 Server.
1. Устанавливаем зависимости
apt-get install mysql-server mysql-client apache2 php5 libapache2-mod-php5 php5-mysql build-essential autoconf automake libtool g++ libpcre3 libpcre3-dev php5-gd libmysqlclient15-dev php-fpdf
2. Устанавливаем программу
Если она ещё не скачана — качаем:
Распаковываем:
tar xjvf sams-2.0.0-rc1.tar.bz2
cd sams-2.0.0-rc1
Создаём скрипт автоматической конфигурации для компилирования:
make -f Makefile.cvs
Запускаем скрипт автоматической конфигурации:
Если скрипт не ругается — компилируем и устанавливаем:
После конфигурирования был выдан список файлов и директорий программы. На всякий случай продублирую его здесь:
Locations:
config file: /usr/local/etc/sams2.conf
daemons: /usr/local/bin
web interface: /usr/local/share/sams2
documentation: /usr/local/share/doc/sams2-2.0.0
httpd server: /usr/sbin/apache2
Сейчас нужно поменять владельца некоторых файлов программ на пользователя, от имени которого работает веб-сервер. Если в Ubuntu вы используете apache, то это www-data:
chown -R www-data:www-data /usr/local/share/sams2/
chown -R www-data:www-data /usr/local/etc/sams2.conf
Для доступа к веб-интерфейсу SAMS2 , создадим символическую ссылку на его в директории с сайтом:
ln -s /usr/local/share/sams2/ /var/www/sams2
Через браузер заходим в веб-интерфейс sams: http://ip-адрес-сервера/sams2 . Перед вами должно появиться сообщение о том, что не возможно подключиться к базе данных (database MySQL not connected). Для того, чтобы решить проблему, нажимаем на «Run setup program >>» и следуем указаниям мастера. После завершения работы мастера вы снова попадёте на первую страницу с той же ошибкой. Она появилась потому, что конфигурационный файл (/usr/local/etc/sams2.conf) не настроен. В нём нужно будет указать как минимум адрес сервера баз данных, имя базы данных и данные пользователя для подключения к ней. После заполнения обновляем страницу и видим веб-интерфейс sams2.
Для запуска демона выполняем команду…
Для автоматической загрузки при старте системы можно добавить строчку в /etc/rc.local
Одной из задачь системного администратора есть обеспечение сетевой безопасности организации. Сетевая безопасность включает в себя целый комплекс действий, куда входит и контроль сетевого трафика и раздача прав на использование локальных ресурсов и доступа к интернет. Для раздачи прав на пользование ресурсами интернета используют прокси сервер. В Ubuntu эту роль выполняет прокси сервер SQUID . В ранних версиях Ubuntu настройка SQUID выполнялась в консоли, в последних версиях Ubuntu разработан Web интерфейс SAMS . О том как установить и настроить связку SQUID + SAMS2 на ubuntu 10.10 и пойдет речь.
Итак посетив множество форумов и перечитав очень много инструкций, составил для вас и для себя инструкцию:
1. Устанавливаем собственно прокси сервер SQUID:
Автоматически установятся все необходимые пакеты.
3. Устанавливаем php5:
Если libmysqlclient15off не установился, скачиваем по ссылке ниже:
5. Устанавливаем libpcre3:
# GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword"; |
; Username for database connection
DB_USER=root
- Имя пользователя MySQL
, от имени которого будет работать SAMS
.
; Password for database connection
DB_PASSWORD="
yourpassword"
- Пароль пользователя в MySQL
.
8. Включаем sams2:
# sudo gedit /etc/init.d/sams2 |
Изменяем значение параметра SAMS_ENABLE = FALSE на SAMS_ENABLE = TRUE
9. Настраиваем php.ini:
# sudo gedit /etc/php5/apache2/php.ini |
В текущей версии SAMS научился работать с PHP в режиме safe_mode=On.
Но это требует дополнительной настройки конфигурации.Для этого редактируем файл конфигурации php.ini и включаем режим safe mode.
Для этого выставляем параметр safe_mode = On (Однако если вы работаете с CMS например с Joomla, то включение этого параметра запретит вм устанавливать обновления в Joomla. Об этом описано . Будьте внимательны! )
SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo . В режиме safe_mode php блокирует доступ к системным командам. Php позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir .
Изменяем этот параметр:
safe_mode_exec_dir = "/usr/share/sams2/bin".
disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"
Все. PHP готов к работе.
10. Перезагружаемся
11. Открываем права на запись в папку /usr/share/sams2:
Под рутом выполняем команду:
# chmod -R 777 /usr/share/sams2 |
12. Запускаем Web интерфейс:
Идем в браузер и пишем localhost/sams2 - мы должны увидеть примерно такое окно:
Одной из задачь системного администратора есть обеспечение сетевой безопасности организации. Сетевая безопасность включает целый комплекс действий, куда входит и контроль сетевого трафика и раздача прав на применение локальных ресурсов и доступа к . Для раздачи прав на пользование ресурсами интернета применяют прокси сервак. ВУбунту эту роль выполняет прокси сервак SQUID. В ранних версиях Убунту настройка SQUID выполнялась в консоли, в последних версиях Убунту разработан Web интерфейс SAMS. О том как поставить и настроить связку SQUID + SAMS2 на убунту 10.10 и пойдет речь.
Итак посетив большое количество форумов и перечитав немало инструкций, составил для вас и для себя инструкцию:
2. Устанавливаем apache:
4. Устанавливаем mysql:
6. Ставим sams2, sams2web и sams2doc:
Скачать пакеты можно ОТСЮДА.
sams2_2.0.0-b2_i386.deb
sams2_2.0.0-b2_amd64.deb
sams2-web_2.0.0-b2_all.deb
sams2-doc_2.0.0-b2_all.deb
Дополнительно выбираем установку squidguard.
7. Создаем БД:
; Username for database connection
DB_USER=root - Имя пользователя MySQL, от имени которого будет работать SAMS.
; Password for database connection
DB_PASSWORD="yourpassword" - Пароль пользователя в MySQL.
8. Включаем sams2:
# sudo gedit /etc/init.d/sams2 |
Изменяем значение параметра SAMS_ENABLE = FALSE на SAMS_ENABLE = TRUE
9. Настраиваем php.ini:
# sudo gedit /etc/php5/apache2/php.ini |
В текущей версии SAMS научился работать с PHP в режиме safe_mode=On.
Но это требует дополнительной настройки конфигурации.Для этого редактируем файл конфигурации php.ini и включаем режим safe mode.
Для этого выставляем параметр safe_mode = On (Однако если вы работаете с CMS например с Joomla, то включение этого параметра запретит вм устанавливать обновления в Joomla. Об этом описано тут. Будьте внимательны!)
SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo. В режиме safe_mode php блокирует доступ к системным командам. Php позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir.
Изменяем этот параметр:
safe_mode_exec_dir = "/usr/share/sams2/bin".
disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"
Все. PHP готов к работе.
10. Перезагружаемся
11. Открываем права на запись в папку /usr/share/sams2:
Под рутом выполняем команду:
# chmod -R 777 /usr/share/sams2 |
12. Запускаем Web интерфейс:
Идем в браузер и пишем localhost/sams2
Оставьте свой комментарий!