 | Уровень сложности: средний Александр Деревянко, ведущиq консультант-эксперт, консультант
03.11.2009 Во всем мире активно используются системы кэширования интернет-трафика в целях экономии денежных средств и дополнительной защиты пользователей при их работе в сети Интернет. Учитывая сегодняшнее состояние кризиса и финансовые неурядицы, эти системы становятся еще более актуальными.
Подобных программ существует немало, но статистика показывает, что наибольшим спросом пользуются связки на базе прокси-сервера SQUID и вспомогательных средств для анализа его логов и генерации отчетов, а также контроля за расходом трафика. Тройку популярности среди них неизменно уже в течение многих лет составляют: SAMS, SARG и Ipaudit. Рассмотрим все эти программы по очереди в разрезе их функциональности применительно к учету трафика, проходящего через сервер SQUID. Остальных свойств этих разработок мы коснемся поверхностно, в контексте описываемого.
Возможности 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.
Рисунок 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).
Рисунок 2.
У меня на рисунке эта галочка пометила в разделе «запрет доступа» «my» – имя моего шаблона со списком запретных URL. Если этого не сделать, никакие запреты работать не будут!
- На клиентских машинах задайте в настройках браузеров ip-адрес и порт прокси-сервера, где работают SAMS и SQUID. Все пользователи идут через настроенную систему, трафик учитывается, статистика сохраняется в базе данных, строятся графики, а также доступны все остальные функции SAMS, как на рисунке 3.
Рисунок 3.
И все хорошо, но если пользователь вздумает пойти на запретный сайт, он увидит такое окно, как показано на рисунке 4 (саму картинку тоже можно изменить, подложив на ее место другой рисунок)
Рисунок 4.
Для просмотра графиков, построенных по результатам отчетов, необходимо включить их поддержку в разделе «Настройки Web-интерфейса» – «Показывать графики в отчетах» (рисунок 5).
Рисунок 5.
Все остальные опции и параметры программы вы сможете увидеть сами, немного разобравшись в ее интерфейсе, что не составит никакого труда.
 |
Заключение
В следующей статье рассмотрим применение программ SARG и Ipaudit в контексте описанной здесь задачи, но немного под другим углом, если можно так выразиться. Эти программы имеют другой принцип построения, а также иные механизмы работы, но об этом речь пойдет в продолжении цикла. Надеюсь, мои статьи помогут читателям определиться с выбором.
Об авторе  | |  | В сфере IT работает с 1990 года. Занимал должности от инженера 1 категории до начальника отдела IT. В настоящий момент работает ведущим консультантом-экспертом отдела инженерного и технического сопровождения Администрации Краснодарского края. |
Выскажите мнение об этой странице
|  |