SQUID - довольно мощный proxy-сервер с кучей возможностей, но с определёнными недостатками. Одним из недостатков является неудобное управление пользователями. Всё разруливается ACL-ами через регэкспы. Но иногда очень нехочется лезть в консоль для добавления пользователя и нарезки ему правил. Для разруливания пользователями и правилами очень удобно использоват SAMS. Вот описание с официального сайта
SAMS представляет собой программное средство для администрирования доступа пользователей к прокси-серверу SQUID.
SAMS это не биллиноговая система!
Возможности системы:
- Администрирование системы через web интерфейс
- Ограничение объема трафика пользователей на месяц
- Автоматическое отключение пользователей, превысивших лимит
- Блокировка доступа пользователей к запрещенным ресурсам интернет
- Настройка доступа пользователей через механизм шаблонов
- Разбиение пользователей на группы для удобства администрирования системы
- Ведение статистики посещенных пользователями ресурсов интернет
- Формирование отчетов по трафику пользователей за любой отрезок времени
- Поддержка видов авторизации SQUID: ntlm, ncsa, ip
- Поддержка использования редиректоров SQUID: rejik, squidGuard
- Ограничение скорости закачки для групп пользователей
- Посылку сообщений администратору при отключении пользователей при превышении трафика
- Для хранения данных используется СУБД MySQL
ОС: Linux, FreeBSD, OpenBSD, Sun Solaris x86.
Итак приступим к установке (предварительно прочитайте доки на сайте - там всё толково написано). Скачаем с офф.сайта последнюю версию
wget http://sams.perm.ru/download/sams-1.0.4.tar.bz2 tar xvf sams-1.0.4.tar.bz2
Самс позволяет авторизовать пользователя по ntlm, ncsa, ip. В небольших организациях, не имеющих домена лучше использовать NCSA авторизацию. Для этого, необходимо установить следующие дополнительные пакеты:
SQUID
MySQL-server
MySQL-client
mysql-devel - файлы заголовков для mysql
apache
mod_php (модуль php для apache)
php - консольный php
php-mysql - библиотека поддержки mysql в php
libgd - библиотека поддержки графики
php-gd - модуль поддержки libgd в php (используется для рисования графиков)
libpcre - библиотека
libpcre- devel -файлы заголовков libpcre
apt-get install mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev apache2 php5-gd php5 php5-mysql apt-get install php5-gd libpcre3 libpcre3-dev libgd2-xpm libapache2-mod-php5
Далее в папке с распакованным SAMS-ом стандартно
./configure make && make install
Делаем симлинк
ln -s /usr/local/share/sams /var/www/sams
В php.ini необходимо разрешить safe_mode=on
В /etc/sams.conf правим имя пользователя, у которого будет доступ к базе и соответсвенно пароль доступа к базам.
В /usr/local/src/sams-1.0.4/mysql/create_sams_user.sql прописываем имя и пароль доступа к базам из /etc/sams.conf
Создадим базы и мускульного пользователя SAMSа
mysql -u root -p < sams_db.sql mysql -u root -p < squid_db.sql mysql -u root -p < create_sams_user.sql
Перезапускаем мускул.
Теперь зайдём на сервак по http должна появиться админка SAMS

По умолчанию, для доступа используются следующие логин/пароль=admin:qwerty
В WEB interface settings измените язык интерфейса на русский. Там же можно указать, как будут отображаться пользователи и чем будут формироваться pdf отчёты (соответственные либы нужно будет доустановить). Не забудте поставить галочку "Обрабатывать логи сквида", иначе статистика не будет собираться.
перепечатывать документацию по управлению самсом не буду, это достаточно неплохо описано в мануалах, опишу только как настроить сквид
в файл /etc/squid/squid.conf добавляем строки:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
/etc/init.d/samsвколотим следующее
#!/bin/sh -e ### BEGIN INIT INFO # Provides: sams # Required-Start: $local_fs $network $time # Required-Stop: # Should-Start: $named $mysql $squid # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starting sams daemon # Description: Squid Account Management System (SAMS) # Starting sams management daemon - samsdaemon ### END INIT INFO # # Author: Pavel Vinogradov <Pavel.Vinogradov@nixdev.net> # # /etc/init.d/sams: start and stop the sams daemon
SAMSPATH=`cat /etc/sams.conf | grep SAMSPATH | tr "SAMSPATH=" "\0"`
NAME="sams"
DAEMON=$SAMSPATH/bin/samsdaemon
LOCKFILE=/var/lock/samsd
PIDFILE=/var/run/samsdaemon.pid
RETVAL=0
SAMS_ENABLE=true
test -x $DAEMON || exit 0
if ! [ -x "/lib/lsb/init-functions" ]; then
. /lib/lsb/init-functions
else
echo "E: /lib/lsb/init-functions not found, lsb-base (>= 3.0-6) needed"
exit 1
fi
. /etc/default/rcS
case "$1" in
start)
if "$SAMS_ENABLE"; then
log_daemon_msg "Starting $NAME daemon" "$NAME"
if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then
log_progress_msg "apparently already running"
log_end_msg 0
exit 0
fi
start-stop-daemon --start --quiet --background \
--pidfile $PIDFILE \
--exec $DAEMON
RETVAL=$?
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
log_end_msg $RETVAL
else
[ "VERBOSE" != no ] && log_warning_msg "$NAME daemon not enabled, not starting. Please read /usr/share/doc/sams/README.Debian."
fi
;;
stop)
if "$SAMS_ENABLE"; then
log_daemon_msg "Stopping $NAME daemon" "$NAME"
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
log_end_msg $RETVAL
else
[ "VERBOSE" != no ] && log_warning_msg "$NAME daemon not enabled, not stoping..."
fi
;;
restart|force-reload)
/etc/init.d/sams stop
/etc/init.d/sams start
;;
*)
echo "Usage: ${0##*/} {start|stop|restart}"
RETVAL=1
;;
esac
В принципе, всё настроено. Разобраться с самсом просто, благо доки написаны по русски. Не забывайте реконфигурировать сквид из веб-админки.






вроде ничо такого в статье,
вроде ничо такого в статье, но про самс не знал. спасибо, буду в курсе. теперь есть чем трясти перед вендоадминами, шоп не морщились от консолей при переходе на линукс.
Я знаю. И всё выше описанное
Я знаю. И всё выше описанное есть в мануалах. Просто поднимал в одной конторке шлюзовый сервачок - вот и записал паралельно основные моменты, чтобы потом поиском "освежить память" можно было.
А самс - очень удобная вещица, если правильно её "приготовить" :) Жаль её в дебиановских портах нету
Отправить комментарий