SMPM
SQUID+MySQL Password Manager ver. 0.1 by Yury Konovalov © 2009
SMPM - Это решение позволяющие управлять пользователями SQUID через WEB интерфейс.
В Качестве СУБД используется MySQL, все модули написаны на PHP, возможно когда-нибудь
модули smpm-auth и smpm-acl будут переписаны на Си, но пока такой необходимости нет.
Программа распространяется под лицензией GPL v2.
Что умеет:
1. Аутентификация пользователей. Реализован интерфейс создания/редактирование/удаления/блокировки пользователей,
смена пароля. Так же реализован интерфейс смены пароля самим пользователем (замена chpasswd.cgi)
2. Контроль доступа при помощи ACL листов. ACL SRC листы контролируют с каких хостов/сетей и через какие прокси-сервера будет разрешен доступ. ACL DST контролирует на какие домены/хосты доступ разрешен или запрещен. Есть возможность указать конкретный порт, протокол, метод. Правила применяются с верху в низ, их можно перемещать используя ссылки up/down.
4. Поддержка нескольких прокси-серверов. Т.е. база общая и интерфейс один, но в ACL SRC можно указать через какой сервер можно работать пользователю/группе. Можно дать доступ на работу с несколькими серверами или использовать запись Any, что бы дать доступ через любой сервер.
3. Поддержка групп. Пользователей можно объединять в группы, причем для каждой группы можно установить свои ACL листы. Личные ACL листы пользователей имеют более высокий приоритет, чем ACL листы группы.
Что планируется реализовать:
1. Редиректор. Даст возможность не грузить рекламные банеры, а так же отучит пользователей загружать всякие там *.avi,*.mp3
2. Поддержка времени суток в ALC.
Что хочется , но пока нет возможности реализовать:
1. Поддержка delay_pools, к сожалению SQUID не предусматривает внешнего хелпера для управления ограничениями по скорости.
Установка.
1. Разверните где-нибудь Apache с поддержкой PHP, MySQL сервер, ну и само собой SQUID, у меня используются следующие пакеты:
php5-5.2.5-alt1.M41.3
php5-mysql-5.2.5-alt1
apache-mod_php5-5.2.5-alt1.M41.3
squid-server-3.0.STABLE15-alt0.M41.1
squid-cachemgr-3.0.STABLE15-alt0.M41.1
squid-helpers-perl-3.0.STABLE15-alt0.M41.1
squid-helpers-3.0.STABLE15-alt0.M41.1
squid-conf-default-3.0.STABLE15-alt0.M41.1
squid-3.0.STABLE15-alt0.M41.1
squid-common-3.0.STABLE15-alt0.M41.1
2. Создайте на MySQL сервере базу данных squid, создайте пользователя, который сможет работать с этой базой. Установите необходимые разрешения.
3. Распакуйте архив с smpm в директорию http сервера. Скопируйте оттуда файлы smpm-auth.php и smpm-acl.php в директорию с остальными хелперами squid, у меня это /usr/lib/squid/
4. Пропишите настройки MySQL в файлах smpm-auth.php, smpm-acl.php и config.php
5. Откройте через web-браузер страницу администрирования. http://localhost/smpm/admin
При первом запуске программа ругнется на отсутствие таблиц и предложит их создать.
6. В конфигурационном файле добавьте строки
#Аутентификация пользователей
auth_param basic children 4
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic program /usr/lib/squid/smpm_auth.php
#ACL Helper
external_acl_type smpm ttl=60 %LOGIN %SRC %DST %PROTO %PORT %METHOD %MYADDR /usr/lib/squid/smpm_acl.php
acl smpm-users external smpm
http_access allow auth smpm-users
Проверьте пути до модулей smpm. Если все верно, то можно работать. По умолчанию программа ведет лог в /var/log/squid/smpm
Можно изменить путь или запретить вести лог в самих модулях smpm-auth и smpm-acl.
Вот несколько скриншотов: