pfSense - ACL (4) Печать
Автор: Administrator   
01.10.10 15:41

Что такое ACL


ACL (access control list) -
это набор правил фильтрации для отдельной группы пользователей. Оговорю особо: к этим пользователям будут применяться только правила, которые содержаться в данной ACL. Общие правила из группы Default и правила из других ACL на них не распространяются.

Обычно ACL применяются для расширенной фильтрации разной сложности для отдельных групп пользователей.

Создание ACL


Для создания нового ACL необходимо перейти на страницу ACL. Здесь мы видим стандартные элементы управления ‘+’ добавить, ‘e’ изменить, ‘x’ удалить.


Форма редактирования параметров ACL похожа на страницу Default, но в тоже время есть ряд отличий— появились поля Source IP addresses and domains, Order и Time.


Шаги:

· Добавить уникальное имя, которое больше не используется нигде в списках squidGuard

· Заполнить поле Source addresses and domains

· Заполнить левую колонку правил Destination rules

· Поля Order, Time и Rewrite сейчас не нужны

· Установить опцию Not to allow IP addresses in URL для запрещения использования IP адресов в URL.

· Установить Redirect mode в нужный режим и при необходимости заполнить поле Redirect.

· Заполнить комментарий в поле Description.

· Для сохранения изменений нажать кнопку Save.


Описание:


Имя ACL должно быть уникально в пределах пакета squidGuard.


В поле Source вносим IP адреса, диапазоны адресов, подсети и домены. Это поле определяет группу пользователей, к которым будут применяться правила данной ACL.


Важно: Старайтесь не допускать перекрывания одних и тех же пользователей разными ACL. В противном случае может получиться не то, что вы ожидаете от своих настроек. Исключение может составлять случай, когда вы задаете для большой группы правила и хотите для некоторых ее пользователей сделать исключения. Об этом читайте ниже.



Заполнение правил Destination rules производим так же, как и для соответствующего пункта на странице Default. Сейчас заполняем только левую колонку, так как правая пока нам не нужна. О случаях ее применения будет сказано дальше.



По использованию полей Not allow IP addresses in URL и Redirect никаких отличий от подобных пунктов на странице Default отличий нет.


Поля Rewrite и Overtime rewrite пока не нужны, их использование будет оговорено далее.



Исключения с использованием ACL


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


К примеру, имеется большая группа пользователей, для которых задана своя ACL. И из этой группы необходимо сделать несколько исключений (VIP или BAD персоны). Мы можем создать для каждого из них (или для всех вместе) ACL, которую необходимо поместить перед общей ACL группы. Тогда при подключении таких пользователей для них будет срабатывать персональная ACL, так как она будет расположена выше по списку, а до общей для группы ACL очередь просто не дойдет. Для перемещения ACL по списку (выше/ниже) служит поле Order.


· 1 ACL VIP 10.0.0.10 10.0.0.11 10.0.0.25

· 2 ACL BAD 10.0.0.18 10.0.0.19 10.0.0.151

· 3 ACL GROUP 10.0.0.0/24


Порядок ACL в списке


Так как порядок ACL в списке очень важен, пришлось добавить поле Order для управления его позицией. Вы можете нажатием кнопок вверх/вниз установить нужную позицию данного ACL. После сохранения список будет перестроен.

Время в ACL

В отличии от страницы Default, каждая ACL содержит два набора правил. В обычном режиме, используется только левый список правил.

А теперь представим ситуацию, когда необходимо сделать разные наборы правил для разного времени дня/недели/месяца.. В этом случае может помочь способность работы ACL с двумя списками в зависимости от времени.

Для начала необходимо на странице Times задать список времени. Каждый ACL может использовать только один список времени.

Выбирая в поле формы ACL какой-нибудь элемент Time мы включаем в работу второй (правый) список правил Destination rules.


ВНИМАНИЕ: Списки правил Destination rules в ACL с применением времени Times работают следующим образом:

· Если локальное время pfSense удовлетворяет диапазонам в списке выбранного Time, то применяется левая колонка правил Destinations rules. Это так называемый OnTime (во-времени).

· Иначе применяется правая колонка правил Destination rules. Это так называемый OverTime (вне времени).


ВАЖНО: Многие делают ошибки настраивая несколько ACL на одну и ту же группу пользователей с применением разных списков времени. ЭТО работать НЕ БУДЕТ! Только один ACL + Time на каждую группу пользователей. И только два набора правил OnTime и OverTime.


Рекомендации по использованию списков времени в ACL.


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

· На странице Default в правилах Destination rules сбрасываем все настройки в ‘—’. Конечное правило Default access[all] ставим в deny. То есть мы запретили всех не-ACL пользователей. Теперь будет видно, попадают наши пользователи в ACL или нет.

· Создаем ACL группы со всеми его правилами (левая колонка правил!), за исключением настроек времени. Проверяем доступ. Если доступ отсутствует — внимательно смотрим правила и поле Source еще раз. После успешной настройки:

· Настраиваем список Times странице Times.

· Выбираем список времени в нашей ACL группы и настраиваем правую колонку правил OverTime .

· Необходимо убедиться, что pfSense настроен на нужный часовой пояс и время выставлено правильно.

· Проверяем работу правил в соответствии со списками времени (OnTime/OverTime).

· После успешной настройки ACL для всей группы можно аналогично приступить к настройке ACL исключений из этой крупы (см. выше), либо настраиваем ACL для других групп. Можно также вернуть настройки страницы Default для прочих пользователей, но при использовании времени я бы не рекомендовал этого делать.


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

Apply на странице General page.

 

продолжение: ТУТ

оригинал: ТУТ

Последнее обновление 14.10.10 15:16