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.

Вот несколько скриншотов: