В прошлой статье мы с вами познакомились с понятием Zone Based Firewall и узнали как можно настроить инспекцию того или иного протокола. Сейчас мы постараемся углубить полученные знания и посмотрим на инспектирование трафика не только на L3-L4, но и залезем внутрь уровня приложений.
Маршрутизаторы Cisco IOS умеют проводить инспекцию протоколов не только на 3ем и 4ом уровнях модели OIS, но и на 7ом. Для чего это нужно? Например, вы захотите запретить определенные SMTP сообщения, которые открывают уязвимости на почтовом сервере. Или вы хотите быть уверенным, что HTTP соединения не используются для тунеллирования сервисов мгновенных сообщений (напр. сервис ICQ2GO). Решение задач, подобных тем, что описаны в этом абзаце выше, возможно только с помощью инспекции сообщений протоколов на уровне приложений.
Прим.: реализация L7-инспекции на маршрутизаторах имеет гораздо больше ограничений, чем на Cisco ASA
Программное обеспечение Cisco IOS поддерживает глубокую инспекцию следующих служб и сервисов:
- HTTP
- SMTP/eSMTP
- POP3/IMAP
- Приложения типа peer-to-peer (eDonkey, Kazaa, Gnutella)
- Различные IM-приложения
- Некоторые другие
Как же конфигурируется L7-инспекция? Для этого IOS использует специальные типы карт классов и политик – так называемые specific application карты: class—map type inspect http, policy—map type inspect http и подобные им для каждого поддерживаемого протокола. В этих картах определяются «узкие» параметры протокола, которые должны быть проверена. После определения того, что мы конкретно хотим отловить у протокола (например метод GET в HTTP), необходимо применить только что сконфигурированную карту политик как вложенную внутрь уже существующей карты 3го/4го уровней модели OSI. Например:
class-map type inspect CLASS_HTTP match protocol http class-map type inspect http CLASS_HTTP-L7 match req-resp protocol-violation policy-map type inspect http POLICY_HTTP-L7 class type inspect http CLASS_HTTP-L7 reset policy-map type inspect POLICY_HTTP class type inspect CLASS_HTTP inspect service-policy http POLICY_HTTP-L7в при веденном примере сначала выделяется HTTP-трафик (class-map CLASS_HTTP), дальше указывается что конкретно мы хотим выявить в указанном трафике (match req-resp protocol violation отлавливает все HTTP сообщения, запрос или ответ в которых нарушают RFC). К отловленному трафику (с нарушениями RFC) применяется действие “reset”.
Прим.: важно помнить, что для каждой карты типа inspect <protocol> применимы сугубо индивидуальные команды (т.е. для HTTP мы может отлавливать трафик по одним критериям, которых не будет в протоколе SMTP и наоборот). Чтобы ответить на вопрос «что можно поймать в том или ином протоколе?» необходимо внимательно прочитать соответствующий RFC.
Отдельно мне бы хотелось выделить один тип объектов, который часто используется при написании конфигов для L7-инспекции – это регулярные выражения. С помощью них можно поймать, например, определенную веб-страничку или почтовый адрес получателя электронного сообщения. Синтаксис для описания параметров регулярных выражений следующий:
parameter-map type regex REG_FLANE pattern [Ff][Ll][Aa][Nn][Ee] class-map type inspect http CLASS_HTTP-FLANE match request header host regex REG_FLANEДанная конструкция выловит все HTTP-сообщения, у которых в заголовках запроса содержится слово “flane” в любых вариантах написания.
Прим.: более подробную информацию о регулярных выражениях вы можете найти на сайте cisco.com
Метки: firewall, ZBFW, ZFW
Опубликовано: Безопасность cisco , Маршрутизаторы и коммутаторы
Хорошие статьи, подробные, здорово!
Как работается на новом месте?
Какие курсы читаешь и есть ли шанс тайком послушать че-нить новое?
Сереж, отлично работается 🙂 Курсов много, меньше чем 3 раза в месяц не читаю.
В основном это курсы типа Firewall, Secure, Route, Vpn … сейчас активно готовлюсь к Security Manager и 802.1X … а цель всего этого дела одна(вернее две): Advanced Security и CCIE Sec.
Со вторым правда сейчас большой вопрос: ведь не за горами v4.0, поэтому приходится осваивать и WiFi
А послушать что-нить всегда можно 🙂 правда никак на MCAST попасть не могу 🙁