Вы здесь

Cisco ASA 8.4.2 с нуля. Часть 8. TCP Advanced Options

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

BGP и ASA

Рассмотрим следующую схему.
cisco_asa_8.4.2_s_nulya._chast_8._tcp_advanced_options_01_ciscomaster.ru.jpg
На двух роутерах поднят BGP. Проблема возникнет если BGP использует Authentication.

На ASA функционирует модуль, который называется Normalizer - он анализирует проходящий трафик и может менять TCP пакеты и их заголовки по своему усмотрению.
Дело в том, что BGP для Аутентификации использует Option 19, а Normalizer её удаляет.
Также мы отключим ISN Randomizing.
Для выполнения данной задачи мы также будем использовать политики + TCP Map.
TCP Map - собственно задаёт поведение ASA при обработке пакетов TCP.

tcp-map OPTION-19 tcp-options range 19 19 allow class-map BGP match port tcp eq bgp policy-map global_policy class BGP set connection advanced-options OPTION-19 set connection conn-max 0 embryonic-conn-max 0 per-client-max 0 per-client-embryonic-conn-max 0 random-sequence-null

TCP State Bypass и Asymmetric Routing

Рассмотрим как происходит инициализация соединения TCP:

  1. Инициатор отправляет SYN на Destionation IP адрес
  2. Ответ Syn + Ack
  3. Инициатор шлёт Ack

cisco_asa_8.4.2_s_nulya._chast_8._tcp_advanced_options_02_ciscomaster.ru.jpg

Проблема может возникнуть, если по каким либо причинам запросы и ответы идут разными путями (asymmetric routing), и ASA видит только часть этого "разговора". В этом случае ASA (а точнее Normalizer) не будет пропускать такое соединение, посчитав его "неправильным".
Для решения данной ситуации мы будем использовать TCP State Bypass.

tcp-map all-traffic match any policy-map global_policy class all-traffic set connection advanced-options tcp-state-bypass

TCP intercept (syn-flood)

Syn-Flood Attack - это атака при которой инициатор в пакете SYN ставит подложный Source IP address либо игнорирует ответы от сервера Syn + Ack. При открытии тысяч таких половинчатых сессий тратятся ресурсы сервера, который вынужден запоминать параметры каждой и в итоге может отказать.

Для решения данной проблемы ASA использует TCP SYN Cookies: ASA защищает сервер и не транслирует на него все соединения. Вместо того чтобы запоминать все эти половинчатые сессии, ASA тупо отвечает на каждую из них, но фактическое соединение с сервером осуществляет только при получении 3-го ответа Ack.

access-list outside_mpc line 1 extended permit tcp any object dmz-server real class-map no-syn-flood-class match access-list outside_mpc policy-map NO-SYN-FLOOD class no-syn-flood-class set connection conn-max 0 embryonic-conn-max 5 per-client-max 0 per-client-embryonic-conn-max 0 random-sequence-number enable service-policy NO-SYN-FLOOD interface outside

Здесь embryonic-conn-max 5 означает, что максимум будет разрешени до 5 половинчатых соединений.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image