24 сентября 2012 г.

Блокировка веб-страниц по их url на Cisco IOS.

В связи с принятием новых законов, которые называют законами о фильтрации, у многих мелких провайдеров (так называемых "домушников") возник вопрос - как это делать? Низкая квалификация их технического персонала не позволяет им решить данную проблему. Но это задача гораздо шире - нередко аналогичная задача ставится во многих фирмах (ограничение доступа сотрудников к определенным ресурсам) или даже дома (ограничение для детей). Посему я хочу предложить небольшой, базовый конфиг для Cisco ZBFW, который показывает как надо начинать решать эту задачу.

Отмазка: данный конфиг не претендует на полноту решения задачи и создан в демонстрационных целях, чтоб было с чего начать. Он фильтрует только http-трафик - фильтрация https, почты, IM, торентов и прочих видов трафика не рассматривалась, предполагается что опытный администратор сможет самостоятельно разобраться в этом вопросе, используя данный конфиг в качестве базового.
Я не буду приводить полный конфиг - только те части, которые собственно относятся к L7-фильтрации.
Зеленым цветом я выделяю свои комментарии к конфигу, красным - те части конфига, вместо которых Вам надо подставить свои значения.

parameter-map type urlfpolicy local local-pm
 allow-mode on
 block-page redirect-url http://<страничка с сообщением о блокировке>
!
parameter-map type urlf-glob deny-domain-param
 pattern <блокируемый урл>
 pattern <блокируемый урл>
!
class-map type inspect match-all http-class
 match protocol http
!
class-map type urlfilter match-any deny-domain-class
 match  server-domain urlf-glob deny-domain-param
!
policy-map type inspect urlfilter local-policy
 parameter type urlfpolicy local local-pm
 class type urlfilter deny-domain-class
  log
  reset
!
policy-map type inspect lan2wan
 description Traffic control from LAN to WAN
 class type inspect http-class
  inspect
  service-policy urlfilter local-policy
 class class-default
  pass
 !
policy-map type inspect wan2lan
 class class-default
  pass
!
zone security WAN
 description Internet
!
zone security LAN
 description My LAN
!
zone-pair security lan2wan source LAN destination WAN
 service-policy type inspect lan2wan
!
zone-pair security wan2lan source WAN destination LAN
 service-policy type inspect wan2lan 
!

Собственно это все - осталось только в конфигурации интерфейсов добавить строчки zone-member security WAN для внешнего интерфейса и zone-member security LAN для интерфейса, к которому подключены Ваши пользователи.
Собственно если кто скажет что такая блокировка легко обходиться - то он прав. Но в случае провайдера - на данном этапе она полностью удовлетворит прокурорских и прочие надзорные органы, что безусловно позволяет считать ее решением проблемы. В случае с фирмой - она удовлетворит начальство где-то на 80%, остальное имхо несложно доделать. В случае с детьми - это не более чем костяк и требуется существенная доработка, чтоб оно приняло рабочий вид.
На что надо обратить внимание при написание pattern для блокируемых урл. Многие по началу пишут так (рассмотрим на примере нелюбимого всеми начальниками вконтактника) :
pattern *vk.com
Это конечно заблокирует как http://vk.com, так и все его субдомемы, например - http://www.vk.com. Но надо учитывать что это заблокирует все домены, оканчивающиеся на vk.com, например - http://v-vk.com/, что вообщем-то недопустимо. Поэтому правильная форма записи будет такой:
pattern vk.com
pattern *.vk.com
Первая забись блокирует собственно сам http://vk.com, а вторая - все его субдомены.
Хочется также обратить внимание что L7-фильтрация может служить одним из компонетов антивирусной защиты - достаточно запретить загружать испольнимые файлы для MS Windows, например так:
pattern *.exe
Разумеется надо понимать что это не панацея, а только один из компонентов, задача которого - в первую очередь снижение нагрузки на остальные компоненты антивирусной защиты! Хотя бы потому что написать pattern *.com нельзя по очевидным причинам. :) А так же - нельзя предотвратить загрузку архивных файлов, например *.zip - они могут быть нужны по работе, но в них можно упаковать исполнимые файлы. Это тоже можно предотвратить - на уже другими средствами, рассмотрение которых выходит за рамки данной статьи.
Что еще можно сделать? Например с целью экономии ресурсов отключить логирование тех, кто пытался сходить на запрещенные урл. А можно наоборот - не отключать, а направить его на внешний syslog-сервер и порадовать логами начальство/ФСБ. :)
Также я хочу заметить что если у вас не одна cisco, а несколько, то не обязательно вести список блокируемых url на каждой в отдельности - это можно делать централизовано. Так же есть готовые централизованные наборы блокируемых url, которые тоже можно использовать. Все это есть в документации на Cisco ZBFW.

Комментариев нет:

Отправить комментарий