Squid на практике. Авторизация Squid через MySQL

О чем этот текст?

Данный материал рассказывает о том, как настроить авторизацию в Squid через MySQL. Этот подход удобен для тех, кто не использует какой-либо другой вид авторизации(например, через AD). Использование авторизации позволяет определить круг лиц, кому будет открыт доступ в Интернет.

Примечание

Прежде чем рвануть в бой убедись, что ты понимаешь назначение следующих тегов:

Основная часть

1. Установка Squid

Если у тебя уже установлен Squid и ты не помнишь с какими ключами его собирал, то, чтобы всё получилось наверняка - перекомпилируй его с опцией

--enable-basic-auth-helpers=DB

Возможно, конечно у тебя уже и так собран с этой опцией, поэтому поехали дальше.

Создай базу данных в MySQL. Любым удобным для тебя способом.

phpMyAdmin вполне подойдет.

Выполни следующий запросы.

Создай базу:

create database squid;

и таблицу:

CREATE TABLE 'passwd' (
'user' varchar(32) NOT NULL default '',

'password' varchar(35) NOT NULL default '',

'enabled' tinyint(1) NOT NULL default '1',

'fullname' varchar(60) default NULL,

'comment' varchar(60) default NULL,

PRIMARY KEY ('id')
);

И третий запрос на создание тестовой записи.

insert into passwd values('test','pass',1,'Test User','for test');

Осилил? Тогда создай пользователя MySQL squiduser и дай на эту базу ему права.

Но можно пойти и другим путём. Создать всё то же самое через консоль MySQL:

mysql> create database squid;
mysql> grant select on squid.* to squiduser@localhost identified by 'squidpass';
mysql> CREATE TABLE 'passwd' (
'user' varchar(32) NOT NULL default '',
'password' varchar(35) NOT NULL default '',
'enabled' tinyint(1) NOT NULL default '1',
'fullname' varchar(60) default NULL,
'comment' varchar(60) default NULL,
PRIMARY KEY ('user')
);

mysql> insert into passwd values('testuser','test',1,'Test User','for testing purpose');

2. Настройка конфигурационного файла squid.conf

Давай теперь, кроме того, что MySQL узнал о наших намерениях, пусть о них узнает и Squid. Отредактируй схемы аутентификации в файле squid.conf.

auth_param basic program /usr/local/squid/libexec/squid_db_auth --user squiduser --password squidpass --plaintext --persist
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
auth_param basic casesensitive off

Затем добавь ACL, который определяет, что только прошедшие авторизацию пользователи получают доступ в Интернет:

acl db-auth proxy_auth REQUIRED

И внеси использование этого ACL в правила http_access.

http_access allow db-auth
http_access allow localhost
http_access deny all

Готово, проверяй доступ. А, ну Squid сначала перезапусти, чтобы он перечитал конфиг.




Ссылки:

К содержанию
squid.conf по-русски по секциям
squid.conf по-русски по тэгам
Анализатор логов Squid

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика