Extra Systems Proxy Server


Модуль управления доступом

За настройки этого модуля прокси-сервера ESPS отвечает секция [Check], имеющая три параметра: Если параметр Enable установлен в 0, то остальные параметры значения не имеют.

Файл настроек является обычным текстовым файлом, в котором команды размещены построчно: каждая команда размещена в отдельной строке. Некоторые строки могут быть пустыми (не содержать никаких печатных символов) и служить для визуального разделения смысловых блоков.

Файл настроек содержит строки нескольких типов: описание групп (GD, CD, GN ), разрешение доступа к страницам (PA) и запрещение доступа к страницам (PD), описание запрещенных в URL слов и фрагментов (BW), запрещение доступа к определенным портам (BP).

Каждая команда имеет свои параметры, разделенные двоеточием. Строки, не содержащие команд, не учитываются. Пробелы в строке и дополнительные поля в расчет не принимаются. Также не имеет значения и регистр символов, которыми написана та или иная строка (последовательность Av6Hyu во всех отношениях эквивалентна последовательности av6hyU). Дополнительные поля в командной строке можно использовать для комментариев.

Для настройки данного модуля необходимо выполнить два действия:

С помощью команды GN можно (но не обязательно) определить имена созданных групп.

Команда описания группы GD имеет три параметра: номер группы (от 1 до 64), адрес группы, маска. Например, команда

GD : 3 : 192.168.3.0 : 255.255.255.0 : Комментарий

определяет группу хостов с 192.168.3.0 по 192.168.3.255 как группу №3.

Одна группа может быть подмножеством другой. Вхождение в подмножество считается более приоритетным по сравнению со вхождением в надмножество. Иными словами, если задана группа №1 для адресов с 192.168.0.0 до 192.168.255.255 и группа №2 для адресов с 192.168.2.0 до 192.168.2.255, то хост 192.168.2.45 считается принадлежащим к группе №2, а не №1, и права доступа для этого хоста будут определяться по данным для группы №2, а не для группы №1.

Можно также сказать, что приоритет опеределяется количеством установленных в маске бит - чем их больше, тем приоритет выше. В частности, маска 255.255.255.255, определяющая один уникальный хост, имеет наивысший возможный приоритет (установлены все 32 бита). Другой крайний случай - маска 0.0.0.0 (при любом адресе) определяет все множество возможных адресов Интернет. Использование этой маски для образования группы в какой-то мере эквивалентно действию параметра Default из данного раздела Ini-файла.

Команда CD имеет два параметра: номер группы (от 1 до 64) и имя компьютера, который необходимо отнести к данной группе. Например, команда

CD : 5 : rabbit : Комментарий

определяет принадлежность машины rabbit к группе №5.

Отметим, что к одной группе можно одновременно отнести несколько диапазонов IP-адресов (командами GD) и несколько машин (командами CD), комбинируя эти команды в любой последовательности.

В момент запуска сервер (через службу имен) определяет IP-адреса машин, заданных с помощью команды CD, и в дальнейшем уточняет эту информацию с периодом, который задан параметром "Idle Thread Time".

При поступлении от клиента первого запроса определение группы, к которой его следует отнести, начинается с просмотра команд CD. Если ни одна команда CD не определяет данную машину (и только в этом случае), просмотр продолжается по командам GD. Таким образом, любая команда CD имеет более высокий приоритет, чем любая команда GD.

Для именования групп служит команда GN, которая имеет два параметра: номер группы (от 1 до 64) и имя группы. Например, команда

GN : 8 : Администраторы :

определяет имя группы №8 как "Администраторы". Это имя будет использоваться модулем вывода статистической информации для облегчения восприятия выводимой информации.

Перейдем теперь к рассмотрению команд разрешения (PA) и запрещения доступа (PD) к страницам Интернет.

Обе эти команды имеют одинаковый формат: код команды, номер группы, адрес страницы. Например, команда

PD : 4 : m.xyz.com : Комментарий

запрещает доступ к любой странице сервера m.xyz.com для всех клиентов, относящихся к группе №4. Если на месте номера группы стоит 0, то данная запись имеет силу для всех групп клиентов. Если в поле адреса страницы ничего нет, то такая запись относится к любой странице Интернет.

Если для одной и той же группы имеется несколько сходных записей, то приоритет таких записей тем выше, чем больше длина адреса в той или иной записи. Например, пара записей

PD : 4 : m.xyz.com : Комментарий
PA : 4 : m.xyz.com/img : Комментарий

запрещает доступ клиентов группы №4 ко всем страницам сервера m.xyz.com, за исключением тех, которые находятся в каталоге img.

Запись, в которой поле адреса пустое (символизирует, как это уже указывалось выше, любую страницу Интернет), имеет низший приоритет, который перекрывается любой записью с не пустым адресом.

Если описана некоторая группа хостов, но для этой группы нет ни одной записи типа PA или PD, то для этой группы считается открытым доступ к любой странице Интернет.

Формат команды запрещенных слов BW включает номер группы и запрещенный в URL фрагмент. Например, команда

BW : 0 : photo : Комментарий

предотвращает доступ клиентов любой группы к любой странице, в полном имени которой в любом месте присутствует фрагмент photo. (Напомним, что номер группы 0, как всегда, означает применимость данной записи ко всем группам.)

Необходимо отметить, что команда BW имеет больший приоритет по сравнению с командой PA, так что если некий URL содержит в себе фрагмент, запрещенный командой BW, то никакая команда PA для данной группы уже не сможет обеспечить получение клиентом данной страницы.

Формат команды запрещения доступа к нежелательным портам BP включает номер группы во втором поле и начальный и конечный номер запрещаемого порта в двух последующих полях. Например, команда

BP : 7 : 36 : 48 : Комментарий

предотвращает доступ клиентов седьмой группы к любому порту из диапазона 36-48.

При необходимости запретить доступ к одному порту, его номер нужно продублировать в третьем и четвертом полях: команда

BP : 0 : 21 : 21 : Комментарий

предотвращает доступ клиентов любой группы к порту номер 21.

Для ограничения суточного трафика клиентов служит команда TL, имеющая следующий формат:

  1. код команды - TL
  2. номер группы
  3. суточный лимит в килобайтах
Например, команда

TL : 2 : 10000 : Комментарий

устанавливает для клиентов второй группы лимит 10 мегабайт в сутки.

Формат команды разрешения роутинга портов RP включает номер группы во втором поле и номер порта в третьем. Например, команда

RP : 5 : 119 : Комментарий

разрешает использование порта 119 (протокол NNTP) клиентам пятой группы. Если в качестве номера группы указать 0, то такое разрешение будет действительно для клиентов любой группы.

Клиентам любой группы можно ограничить количество рабочих потоков. Для этого служат команды MT и TT:

MT : 1 : 16 : Комментарий
TT : 1 : 100 : Комментарий

Этот блок ограничивает клиентам первой группы количество рабочих потоков числом 16, а вторая команда определяет время ожидания (в секундах) момента освобождения очередного потока для данного клиента. Если в качестве номера группы в любой из этих двух команд указать 0, то они будут распространяться на все группы клиентов.

Формат команды разрешения CONNECT протокола HTTP 1.1 (обеспечивающей соединения https) включает номер группы во втором поле и номер порта в третьем. Например, команда

EC : 3 : 443 : Комментарий

разрешает соединение с портом 443 клиентам третьей группы. Если в качестве номера группы указать 0, то такое разрешение будет действительно для клиентов любой группы. Ноль в позиции порта позволит данной группе соединяться с любым портом.

По умолчанию разрешен доступ всех клиентов в любое время суток любого дня недели. При необходимости можно для любого дня недели (или, повторив команду необходимое количество раз, для всех дней) задать ограничение на доступ определенной группы клиентов (или всех сразу, указав 0 в качестве номера группы) к серверу по часам. Для этого служит команда WT. Команда WT имеет следующие параметры:

  1. код команды - WT
  2. номер группы (0 - все группы)
  3. день недели (1 - понедельник, 2 - вторник, ... , 7 - воскресенье)
  4. час начала работы
  5. час окончания работы
Например, команда

WT : 3 : 7 : 10 : 16 : Комментарий

разрешает работать по воскресеньям клиентам третьей группы только с 10 утра до 4 часов дня. (На возможность работы в другие дни недели эта конкретная команда никакого влияния не оказывает; если для конкретной группы на конкретный день недели сервер не имеет никакой директивы WT, то работа этой группы в этот день может вестись круглосуточно.)

Отметим, что команда WT может быть подана несколько раз для одного дня одной группы. В этом случае, можно описать режим работы как с 10 до 13 и с 18 до 22 (например).

Для поддержки входной и выходной авторизации (поле заголовка запроса "Proxy-Authorization" протокола HTTP 1.1) служат команды IA и OA, соответственно. Формат обеих этих команд одинаков:

  1. код команды - IA или OA
  2. номер группы (0 - все группы)
  3. логин
  4. пароль
Например, команда

OA : 0 : alx : beer42 : Комментарий

определяет логин (alx) и пароль (beer42) выходной авторизации для всех (номер группы - 0) клиентов.

Если для некоторой группы (или для всех групп) определена входная авторизация, то любые запросы, проистекающие от этой группы (или всех) должны содержать в заголовке поле "Proxy-Authorization" с заполненным в стандарте base64 логином и паролем, иначе они будут отвергаться.

Если для некоторой группы (или для всех групп) задана выходная авторизация и в конфигурации сервера определен ведущий прокси-сервер, то все запросы от этой группы (или от всех групп) будут корректироваться сервером ESPS таким образом, что имеющееся в них поле "Proxy-Authorization" будет удаляться (если оно там присутствовало), а будет добавляться новое поле "Proxy-Authorization", содержащее закодированные по стандарту base64 значения логина и пароля, взятые из соответствующей команды OA.


Пример файла настроек


# Создаем группы пользователей

GD : 1 : 192.168.0.0 : 255.255.255.0 :
GD : 1 : 192.168.3.0 : 255.255.255.0 :
CD : 1 : dog :
CD : 2 : cat :
CD : 2 : fox :

# Даем группам имена (это не обязательно)

GN : 1 : Клиенты :
GN : 2 : Администраторы :

# Открываем все

PA : 1 :                                        : 
PA : 2 :                                        : 


# Запрещаем плохие слова

BW : 0 : banner                   : Для всех
BW : 1 : porno                    : Только для юзеров
BW : 1 : sex                      : Только для юзеров


# Запрещаем банеры

PD : 0 : m.doubleclick.net/viewad               :
PD : 0 : 4click.com.ua/cgi-bin/ps100.cgi        :
PD : 0 : ad2.bb.ru/bb.cgi                       :
PD : 0 : www.bigbn.com.ua/bigbn                 :
PD : 0 : ad.adriver.ru/cgi-bin/rle.cgi          :
PD : 0 : 217.170.71.61/users                    :
PD : 0 : ad.rambler.ru/ban.ban                  :
PD : 0 : ad2.rambler.ru/ban.ban                 :
PD : 0 : ad.pbs.bb.ru/bb.cgi                    :
PD : 0 : ad1.lbe.ru/bb.cgi                      :
PD : 0 : reklama.port.ru                        :
PD : 0 : ad.mtu.ru/cgi-bin/a.cgi                :
PD : 0 : engine.awaps.net                       :
PD : 0 : adv.gorod.ru                           :
PD : 0 : image.linkexchange.com                 :
PD : 0 : sle-pvt.com.ua                         :
PD : 0 : b.abn.com.ua/abn.php                   :
PD : 0 : reks.com.ua/b                          :
PD : 0 : www.gala.net/ads                       :
PD : 0 : ad.ir.ru/bb.cgi                        :
PD : 0 : www.aviso.com.ua/adverts               :
PD : 0 : finance.com.ua/bns                     :
PD : 0 : www.sle.com.ua                         :
PD : 0 : reklama.utro.ru/bb.cgi                 :
PD : 0 : images.rambler.ru/upl/ban_barter       :
PD : 0 : images.rambler.ru/other                :
PD : 0 : images.rambler.ru/n/                   :
PD : 0 : bs.yandex.ru/count                     :
PD : 0 : avanport.com/ban/                      :
PD : 0 : kiev2000.com/adver                     :
PD : 0 : sle-ent.com.ua                         :
PD : 0 : adfarm.mediaplex.com/ad/bn             :


Made by Vendor