Фильтрация URL-адресов ASA
Оригинал туту https://supportforums.cisco.com/docs/DOC-21128
Введение
Одной из функций ASA является фильтрация URL-адресов. С ее помощью можно блокировать или разрешать посещение пользователями определенных URL-адресов или web-сайтов. Ознакомившись с этой статьей, пользователи научатся пользоваться данной функцией. После ее тщательного изучения они смогут воспользоваться всеми преимуществами фильтрация URL-адресов и применять ее для удовлетворения своих потребностей.Блокирование конкретных URL-адресов
Предположим, что необходимо заблокировать какие-либо конкретные web-сайты. Например, необходимо заблокировать все сайты, расположенные в домене cisco.com, а также URI, содержащие "/test/". Для этого будут созданы регулярные выражения, которые затем будут использованы в class-map. Обратите внимание, что при наличии соответствия для ЛЮБОГО регулярного выражения считается, что условие class-map фактически выполнено. Затем, в policy-map block-url-policy будет применено действие drop-connection для трафика, который соответствует условию class-map (cisco.com ИЛИ идентификатор URI, содержащий "/test/"). Все остальное разрешено (сайты, не принадлежащие домену cisco.com, и URI, не содержащие "/test/"). Policy-map block-url-policy используется для http inspection в другой policy-map (global_policy) и применяется с service-policy.
regex blockex1 "/test/" regex blockex2 "cisco\.com" class-map type inspect http match-any block-url-class match request uri regex blockex1 match request header host regex blockex2 policy-map type inspect http block-url-policy parameters class block-url-class drop-connection log policy-map global_policy class inspection_default inspect http block-url-policy service-policy global_policy global
Разрешение всех URL-адресов для определенных хостов и блокирование конкретных URL-адресов для остальных
Наконец, допустим, есть несколько хостов (например, администратор сети с IP-адресом 192.168.1.2), которым необходимо предоставить доступ ко всем web-сайтам, при этом доступ к определенным web-сайтам для остальных пользователей нужно заблокировать (обратите внимание, что для выполнения процесса, описанного в следующем примере, нужно понять смысл примера, приведенного выше). В данном случае будет использоваться приблизительно такая же конфигурация, как и в приведенном выше примере, однако на сей раз потребуются дополнительно access-list, class-map и policy-map. Условиям access-list (user-acl) будут удовлетворять все пользователи, за исключением тех, которым нужен неограниченный доступ. Последние будут соответствовать условиям class-map (block-user-class), которая, в свою очередь, будет использоваться в отдельной policy-map (block-user-url-policy). Эта policy-map обеспечивает выполнение http inspection для policy-map block-url-policy (эта часть совпадает с вышеизложенным) для разрешенных web-сайтов. Таким образом, block-user-url-policy будет применяться к интерфейсу, для которого действует service-policy. В действительности, данная policy-map позволяет отобрать всех пользователей, кроме пользователей с неограниченными правами доступа (class block-user-class) и заблокировать для них возможность посещения определенных web-сайтов (inspect http block-url-policy). Остальные пользователи (которые не соответствуют критериям или не заблокированы в списке доступа) смогут переходить по любым адресам.
regex blockex1 "/test/" regex blockex2 "cisco\.com" access-list user-acl extended deny tcp host 192.168.1.2 any eq www access-list user-acl extended permit tcp any any eq www class-map type inspect http match-any block-url-class match request uri regex blockex1 match request header host regex blockex2 class-map block-user-class match access-list user-acl policy-map type inspect http block-url-policy parameters class block-url-class drop-connection policy-map block-user-url-policy class block-user-class inspect http block-url-policy service-policy block-user-url-policy interface inside
Разрешение только cisco.com
Предположим, что необходимо разрешить только определенные web-сайты. Создадим регулярное выражение и выполним по нему сопоставление (оператор match) в class-map. Обратите внимание, что если для оператора match найдено соответствие, условия в class-map считаются выполненными. Условие оператора match выполняется, если для регулярного выражения НЕ найдено соответствие по URL-адресу. Затем в policy-map allow-url-policy будет применено действие drop-connection. Остальной трафик (cisco.com) разрешен. Иными словами, если страница, к которой необходимо перейти, не является cisco.com, подключение к ней сбрасывается. Policy map используется для http inspection в другой policy-map (global_policy) и применяется с service-policy.
regex allowex2 "cisco\.com" class-map type inspect http match-all allow-url-class match not request header host regex allowex2 policy-map type inspect http allow-url-policy parameters class allow-url-class drop-connection log policy-map global_policy class inspection_default inspect http allow-url-policy service-policy global_policy global
Разрешение определенных URL-адресов
Предположим, что необходимо разрешить только определенные web-сайты. Например, необходимо разрешить только страницы cisco.com и только URI, содержащие "/test/". Для этого будут созданы регулярные выражения, которые затем будут применены в class-map. Обратите внимание, что если для обоих операторов match найдено соответствие, условия в class-map считаются выполненными. Условия обоих операторов match считаются выполненными тогда и только тогда, когда URL-адрес, по которому пользователь выполняет переход, не соответствует НИ ОДНОМУ из регулярных выражений. Затем в policy-map allow-url-policy будет применено действие drop-connection. Остальные адреса разрешены (cisco.com или идентификаторы URI, содержащие "/test/"). Иными словами, если страница, к которой необходимо перейти, не является ни cisco.com, ни страницей, в URL-адресе которой содержится "/test/", подключение к ней будет сброшено. Policy map используется для http inspection в другой policy-map (global_policy) и применяется с service-policy.
regex allowex1 "/test/" regex allowex2 "cisco\.com" class-map type inspect http match-all allow-url-class match not request uri regex allowex1 match not request header host regex allowex2 policy-map type inspect http allow-url-policy parameters class allow-url-class drop-connection log policy-map global_policy class inspection_default inspect http allow-url-policy service-policy global_policy global
Разрешение всех URL-адресов для определенных хостов и только определенных URL-адресов для остальных
Теперь, предположим, есть несколько хостов (например, администратор сети с IP-адресом 192.168.1.2), которым необходимо предоставить доступ ко всем web-сайтам, при этом остальным пользователям нужно разрешить доступ только к определенным web-сайтам (обратите внимание, что для выполнения процесса, описанного в следующем примере, нужно понять смысл примера, приведенного выше). В данном случае будет использоваться приблизительно такая же конфигурация, как и в приведенном выше примере, однако на сей раз потребуются дополнительно access-list, class-map и policy-map. Условиям access-list (user-acl) будут удовлетворять все пользователи, за исключением тех, которым нужен неограниченный доступ. Последние будут соответствовать условиям class-map (allow-user-class), которая, в свою очередь, будет использоваться в отдельной policy-map (allow-user-url-policy). Эта policy-map обеспечивает выполнение http inspection для policy-map allow-url-policy (эта часть совпадает с указанной выше) для разрешенных web-сайтов. Таким образом allow-user-url-policy будет применяться к интерфейсу, для которого действует service-policy. В действительности, данная policy-map позволяет отобрать всех пользователей, кроме пользователей с неограниченными правами доступа (class allow-user-class) и предоставить им возможность посещать только определенные web-сайты (inspect http allow-url-policy). Остальные пользователи (которые не соответствуют критериям или не заблокированы в списке доступа) смогут переходить по любым адресам.
regex allowex1 "/test/" regex allowex2 "cisco\.com" access-list user-acl extended deny tcp host 192.168.1.2 any eq www access-list user-acl extended permit tcp any any eq www class-map type inspect http match-all allow-url-class match not request uri regex allowex1 match not request header host regex allowex2 class-map allow-user-class match access-list user-acl policy-map type inspect http allow-url-policy parameters class allow-url-class drop-connection policy-map allow-user-url-policy class allow-user-class inspect http allow-url-policy service-policy allow-user-url-policy interface inside
Разрешение или отказ в доступе к одному и тому же домену
Выдвигаются следующие требования:1. отказ в доступе к facebook.com;
2. разрешение доступа к developer.facebook.com при автоматическом перенаправлении на сайт developers.facebook.com;
3. разрешение доступа ко всем остальным доменам, таким как yahoo.com и google.com.
regex allow-fb "developer[s]*\.facebook\.com"
class-map type regex match-any block-fb
match regex block-fb
class-map type regex match-any allow-regex-class
match regex allow-fb
!
policy-map type inspect http http-inspect-pol
parameters
match not request header host regex class allow-regex-class
match request header host regex class block-fb
reset log
match port tcp eq www
class http-class
inspect http http-inspect-pol
!
service-policy http-traffic interface inside
Имейте в виду, что при каждом добавлении, удалении или изменении регулярных выражений, следует удалить service policy, которая применяется к интерфейсу, а затем добавить ее снова. http://www.cisco.com/en/US/docs/security/asa/asa82/configuration/guide/inspect_basic.html#wp1514315 Если вам нужно изменить команду match в inspection HTTP, следует удалить соответствующую service policy с помощью команды no service policy, а затем перенастроить service policy. Изменение class map путем удаления команды match приведет к тому, что inspection HTTP будет блокировать весь HTTP-трафик до тех пор, пока не будет удалена и перенастроена соответствующая service policy для повторного выполнения всех команд match.
Комментариев нет:
Отправить комментарий