Безопасность маршрутизаторов Cisco

Маршрутизатор — это «первая линия обороны» нашей корпоративной сети непосредственно соприкасающаяся с Internet. Они часто применяются в качестве ключевых элементов в системах защиты сетей (например, firewall для фильтрации пакетов и ограничения прохождения определенного IP -трафика). Наиболее широко распространенным сейчас является оборудование фирмы Cisco Systems, которое благодаря различной реализации своей «фирменной» операционной системы Cisco IOS может приобретать свойства, необходимые администраторам.

А как его (маршрутизатор Cisco) защитить?

Список команд

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

Используйте Чтобы
enable secret Задать пароль для привилегированного доступа.
service password-encryption Обеспечить минимальную защиту для паролей в конфигурации.
no service tcp-small-servers
no service udp-small-servers
Избегать использования простых сервисов для DoS и других атак.
no service finger Избегать распространения информации о пользователях.
no cdp runningno cdp enable Избегать распространения информации об этом маршрутизаторе на соседние устройства.
ntp disable Предотвратить атаки на сервис NTP.
no ip directed-broadcast Помешать атакующим использовать маршрутизатор для smurf атак.
transport input Указать какие протоколы могут быть использованы удаленными пользователями чтобы войти через VTY или получить доступ к его TTY портам.
ip access-class Указать с каких IP адресов пользователи могут подключаться к TTYs или VTYs. Зарезервировать один VTY для доступа с рабочей станции администратора.
exec-timeout Не занимать VTY бесконечно долго бездействующей сессией.
service tcp-keepalives-in Обнаруживать и удалять «зависшие» сесии, освобождая используемые VTY.
logging buffered buffer-size Сохранять логируемые данные в буфере оперативной памяти маршрутизатора. В последних версиях IOS этот размер может идти совместно с параметром urgency threshold.
ip access-group list in Отбрасывать пакеты с поддельным IP адресом. Отбрасывать входящиеICMP redirects.
ip verify unicast rpf Отбрасывать IP пакеты в с поддельным адресом источника в случае симметричной маршрутизации на маршуризаторах поддерживающих CISCO Express Forwarding (CEF). Данная проверка известна как reverse path forwarding (RPF).
no ip source-route Отбрасывать IP пакеты, в которых включена опция source routing. Таким образом злоумышленник не получит обратно ответ на посланный пакет, если он использовал поддельный IP адрес.
access-list number action criteria log
access-list number action criteria log-input
Включить логирование пакетов удовлетворяющих определенному условию из access-list. Используйте log-input если это возможно в версии вашего IOS.
scheduler-intervalscheduler allocate Защититься от флуда и позволить работать важным процессам.
ip route 0.0.0.0 0.0.0.0 null 0 255 Быстро удалять пакеты посланные на несуществующие адреса.
distribute-list list in Фильтровать получаемую информацию о маршрутах чтобы предовратить использование неверных маршрутов.
snmp-server community something-inobvious ro listsnmp-server community something-inobvious rw list Включить SNMP версии 1, настроить аутентификацию и разрешить доступ только с некорых IP адресов. Используйте SNMP версии 1 только, если версия 2 недоступна. Следите за наличием снифферов в сети. Включите SNMP только если он нужен в вашей сети. Не настраивайте доступ на запись, если он вам не нужен.
snmp-server party…
authentication md5 secret …
Сконфигурировать аутентификацию посредством MD5 для SNMP версии 2. Включайте SNMP только, если он нужен в вашей сети.
ip http authentication method Производить аутентификацию соединений по HTTP (если вы включили HTTP сервер на вашем маршрутизаторе).
ip http access-class list Дальнейшее управление доступом к HTTP серверу, разрешая его только с некоторых хостов (если вы включили HTTP сервер на вашем маршрутизаторе).
banner login Установить предупреждающее сообщение для показа всем пользователям, кто пытается залогиниться на маршрутизатор.

Заметки по увеличению безопасности маршрутизатора Cisco

1. Правильный выбор пароля (не менее 8 хаотично выбранных символа,
использование enable secret).

    enable secret секретный_пароль
    service password-encryption
    username admin privilege 5 password мойпароль
    aaa new-model
    aaa authentication username-prompt "login: "
    aaa authentication login default local
    aaa authentication login CONSOLE none
    aaa authorization exec local if-authenticated 

2. Ограничение доступа на Cisco (доступ только с IP админов) и защита от сниффинга (использование коммутаторов).
   access-list 105 permit ip host ip_админа any
   access-list 105 deny ip any any
   line vty 0 4
     access-class 105 in
     login local
     exec-timeout 2 0

3. Ограничение доступа по SNMP только с определенных IP (администраторы, мониторинг и биллинг), изменение название community public на что-нибудь бессвязное, например kdjfgsdkgj.
   access-list 15 permit ip host ip_которому_разрешено_snmp
   access-list 15 deny any
   snmp-server community kdjfgsdkgj RO 104

4. Отключаем все лишние сервисы (cdp - cisco discovery protocol), например:
   no ntp enable
   no cdp running
   no cdp enable
   no service finger
   no service tcp-small-servers
   no service udp-small-servers
   service tcp-keep-alives-in
   no ip http server

5. Настраиваем ACL (access lists), минимум что нужно сделать (против спуфинга):
   (правила просматриваются в порядке следования, срабатывает первое подходящее 
   правило)
   access-list 100 deny ip 127.0.0.0 0.255.255.255 any
   access-list 100 deny ip 10.0.0.0 0.255.255.255 any
   access-list 100 deny ip 224.0.0.0 31.255.255.255 any
   access-list 100 deny ip host 0.0.0.0 any
   access-list 100 deny ip host 255.255.255.255 any
   access-list 100 deny ip 192.168.0.0 0.0.255.255 any
   access-list 100 deny ip 172.16.0.0 0.0.255.255 any
   access-list 100 deny ip наша_сеть маска_нашей_сети any
   access-list 100 deny icmp any any redirect.
   access-list 100 permit ip any any
   access-list 101 permit ip наша_сеть маска_нашей_сети any
   access-list 101 deny ip any any

   # Затем привязываем ACL к интерфейсу:
   interface ethernet 0
     ip access-group 100 in
     ip access-group 101 out

6. Защищаемся от флуда (и прочей нечисти), на каждом интерфейсе:
   # чтобы трафик на несуществующие ip не играл в пинг-понг
   ip route 0.0.0.0 0.0.0.0 null 0 255
   # защита от флуда
   scheduler interval 500   
   no ip source-route
   interface ethernet 0
    no ip directed-broadcast
    no ip proxy-arp
    no ip redirects
    no ip unreachables

Cпособы повышения защищенности маршрутизаторов CISCO

Пароли

Пароли (и другие секреты, например SNMP последовательности) обеспечивают защиту от НСД маршрутизатора. Наилучший путь для работы с базой данных паролей — хранить их на аутентификационных серверах типа RADIUS или TACACS+. Однако в большинстве случаев на каждом маршрутизаторе остаются пароли для привилегированного доступа и другие пароли.

enable secret
Данная команда используется для установки паролей, которые предоставляют привилегированный доступ администратору в IOS. Данный пароль должен быть всегда установлен. Нельзя устанавливать enable password , т.к. данная команда использует слабую криптографию.

service password-encryption
Данная команда позволяет зашифровать пароли, CHAP секреты и другие данные, находящиеся в конфигурационном файле.

 

Контроль доступа

Доступ к маршрутизатору предполагает возможность переконфигурирования его, в том числе и несанкционированному. Поэтому проблема защиты от НСД при доступе имеет большое значение.

Доступ через консольный порт 
Необходимо помнить, что консольный порт имеет специальные привилегии. Например, если выдать команду BREAK на консольном порте в течение первых нескольких секунд после перезагрузки, то можно легко провести процедуру восстановления пароля, что приведет к получению несанкционированного доступа к маршрутизатору. Это означает, что атакующий, если он сможет провести процедуру перезагрузки маршрутизатора и если он имеет доступ к консольному порту (посредством прямого подключения, модемное подключение и т.п.), может получить доступ к системе.

Основной способ доступа 
Существует достаточное количество способов для подключения к маршрутизатору. CISCO IOS в зависимости от конфигурации поддерживает соединения посредством telnet, rlogin, SSH, LAT, MOP, X.29, V.120. Локальные асинхронные терминалы и модемы используют стандартные линии — TTY. Удаленные сетевые соединения (независимые от протоколов) используют виртуальные TTY (VTY). Для защиты необходимо на все линии доступа установить пароли, для VTY возможна команда no password для защиты.

По умолчанию удаленный пользователь может установить соединение с TTY через сеть, так называемый «reverse Telnet», что позволяет данному пользователю работать с модемом или терминалом, подсоединенным к данному TTY. Для защиты необходимо работать с командой transport input none , которая запрещает принимать соединения из сети. Если есть возможность , то необходимо разнести dial-in и dial-out модемы и запретить использование reverse Telnet для линий, которые используются в dial-in.

Управляющий VTY
Любые VTY должны быть сконфигурированы для того, чтобы принимать соединения только по протоколам, которые нужны. Это можно сделать с помощью команды — transport input. Например, по VTY ожидается прием только сессии telnet, для этого используем команду transport input telnet. Для поддержки telnet и SSH необходимо ввести команду transprot input telnet ssh. Также можно ограничить доступ с определенных адресов с помощью ip access-class.

В СISCO IOS используется ограниченное количество VTY (обычно пять). Когда все VTY используются, больше никто подсоединиться не может. В этом и есть возможность использования DoS атаки. Способ защиты — ограничить доступ с помощью ip access-class. Например, для одного VTY используется общий доступ, а для четырех — только с одной рабочей станции.

Также можно использовать команду exec-timeout для ограничения времени атаки.

Можно использовать команду для TCP keepalive входящих соединений service tcp-keepalive-in для защиты от атак на хосты.

Желательно отключить возможность использования отличных от IP протоколов для доступа к VTY.

Предупреждающий баннер
Для предупреждения возможности несанкционированного доступа к системе целесообразно использовать ограничивающие (предупреждающие) заголовки. Данные заголовки можно сконфигурировать с помощью banner login.

 

Плохо сконфигурированные сервисы управления

Многие пользователи управляют маршрутизаторами с помощью специальных протоколов, например, HTTP или SNMP.

SNMP

Данный протокол широко используется для мониторинга и управления маршрутизаторами. К сожалению, версия 1 данного протокола использует очень слабую схему аутентификации, базирующуюся на «community string», при которой пароль может передаваться в открытом виде. Поэтому необходимо использовать версию 2 , которая работает с алгоритмом MD5 и не передает пароль по каналам связи.

Если все-таки необходимо использовать версию 1, то необходимо быть внимательным при выборе community string (нельзя использовать public или private). Необходимо избегать использования одних и тех же community string для различных устройств. Если возможно, то установить для periodic SNMP ver 1 polling в read-only community string.

Для версии 1 необходимо использовать ACL на команде snmp-server community для ограничения доступа на станции управления. Нельзя использовать команду snmp-server community в окружении, где используется версия 2 (переключает в версию 1).

Для версии 2 необходимо сконфигурировать защиту с помощью команд authentication и md5 в конфигурации snmp-server party. Если возможно, то лучше использовать различные секреты MD5 для каждого маршрутизатора.

HTTP
Для облегчения конфигурирования маршрутизатора есть возможность «поднять» на нем HTTP сервер. Пароль передается в открытом виде.

Для защиты необходимо ограничить перечень IP-адресов путем ip http access-class. Также можно использовать аутентификацию с использованием команд ip http authentication.

 

Управление и доступ через Интернет (или другие незащищенные сети)

Многие пользователи управляют своими маршрутизаторами удаленно, и часто через Интернет. Все схемы удаленного управления подвержены атакам, например, Packet Sniffers. Злоумышленники очень часто взламывают машины ISP или другие компьютеры в Сети и устанавливают программы-сниферы, которые мониторят весь трафик, пытаясь заполучить парольную фразу (если используется telnet, HTTP, snmp v.1). Защита — использование технологии S\Key, Kerberos, RADIUS, TACACS+. Для выявления сниферов можно использовать: http://www.l0pht.com/antisniff

 

Логировние

Способы ведения логов в CISCO

  • AAA logging — ведение записей о пользователях , которые подключаются.
  • SNMP trap logging — посылка данных об изменениях в системном статусе.
  • system logging — записывает огромное множество событий: logging console logging ip-address, logging trap logging monitor, termonal monitor logging buffered

Сохранение информации 
По умолчанию логируемая информация отсылается только на асинхронный консольный порт.

Почти все маршрутизаторы сохраняют информацию logging в local RAM buffer, имеющий конечный размер ( show memory, logging buffered buffer-size).

Также можно сохранять данные на syslog сервер, logging server ip-address, logging trap urgency.

Если маршрутизатор имеет real-time clock или запущен NTP, то можно записать лог с time-stamp — service timestamps log datetime msecs.

Запись нарушений списков доступа
Если используются списки доступа для ограничения трафика, есть возможность записи их нарушений. Команды — в старых версиях — log, в новых — log-input.

 

Защита IP-маршрутизации

Anti-spoofing
Множество сетевых атак проводятся с подмененными IP-адресами источника атаки, что снижает риск для атакующего быть замеченным.

Система защиты от спуфинга (anti-spoofing) должна быть использована на каждой точке, где существует возможность подобной атаки, обычно устанавливают данную защиту на границах сети, между большими блоками адресов или между доменами сетевого администрирования.

Защита с помощью ACL
К сожалению, нет общих примеров по конфигурации ACL, каждый раз поход различный. Однако основа одна: отбросить пакет, который пришел с интерфейса, с которого данный адрес прийти не может. Например, система имеет два интерфейса, один из них смотрит в сеть Интернет, а другой в сеть Интранет. Все пакеты, принятые из сети Интернет с адресами источника внутренней сети (адреса Интранет), будут отброшены. Если CPU позволяет, то anti-spoofing должен быть включен на каждом интерфейсе.

Пример:

access-list number deny icmp any any redirect
access-list number deny ip 127.0.0.0 0.255.255.255 any
access-list number deny ip 224.0.0.0 31.255.255.255 any
access-list number deny ip host 0.0.0.0 any

Anti-spoofing with RPF checks
Практически во всех CISCO IOS , которые поддерживают CISCO Express Forwarding (CEF), существует возможность «заставить» маршрутизатор проверять source address каждого пакета. Это будет работать только в случае, если маршрутизация симметричная. Если сеть будет построена так, что путь трафика от хоста А до хоста В будет проходить другим путем, чем трафик от B до A, проверка всегда будет давать неверный результат, и связь между хостами будет невозможна. Данная асимметричная маршрутизация обычно используется на Internet core. Данная проверка известна как reverse path forwarding (RPF) и включается с помощью команды ip verify unicast rpf.

Controlling Directed Broadcasts
Для атаки типа «smurf» обычно используется IP directed broadcasts.

IP directed broadcast — это пакет, который посылается на адрес broadcast подсети, к которой посылающая машина напрямую не подключена. Directed broadcast маршрутизируется через сеть как обыкновенный пакет unicast пока не достигнет подсети назначения, где и будет конвертирована в link-layer broadcast. Согласно архитектуре протокола IP только последний маршрутизатор в цепочке, тот который напрямую подсоединен к подсети-назначения, может идентифицировать directed broadcast.

При атаке типа «smurf» атакующий посылает пакеты ICMP echo requests, используя сфальсифицированный адрес источника, и все хосты подсети отвечают на подмененный адрес источника.

Посылая поток таких запросов, атакующий может создать мощный поток ответов на подмененный адрес.

На интерфейсе маршрутизатора CISCO для защиты можно использовать команду no ip directed-broadcast, при этом необходимо сконфигурировать no ip directed-broadcast на каждом интерфейсе каждого маршрутизатора, который может быть подсоединен к подсети назначения.

http://users.quadrunner.com/chuegen/smurf.cgi

Path Integrity
Много атак проводятся с помощью обмана маршрутизации. Если злоумышленник контролирует маршрутизацию, он может переслать трафик куда угодно, подменить адрес источника и т.п.

IP Source Routing
Протокол IP поддерживает опцию source routing, которая позволяет отправителю IP-пакета контролировать путь пакета до получателя. Ранние реализации IP отрабатывали пакеты source-routed неправильно, что могло в результате посылки на нее пакета с опцией source routing привести в зависанию машины.

Маршрутизаторы CISCO с установкой no ip source-route не будут пересылать пакеты IP, в которые будет включена опция source routing.

ICMP Redirects
Сообщение ICMP redirect «заставляет» конечное СВТ использовать указанный маршрутизатор для достижения определенной точки в сети. В нормально функционирующей сети маршрутизатор посылает пакеты redirects только хостам, расположенным в локальной подсети, ни один конечный узел не посылает данные пакеты, и ни один такой пакет не проходит больше одного сетевого hop. Однако атакующий может обойти эти правила . Хорошая идея -отфильтровать входящие ICMP redirects на входящем интерфейсе любого маршрутизатора, находящегося на границе между административными доменами.

Необходимо отметить, что данное фильтрование защищает от атак redirect , которые начинаются удаленными злоумышленниками.

Routing Protocol Filtering and Authentication
Если используется динамическая маршрутизация, которая использует аутентификацию, то ее необходимо использовать. Это позволяет избежать проблемы подмены данных маршрутизации.

В части ISP или других больших сетях целесообразно использовать фильтрацию протоколов маршрутизации с использованием команды distribute-list in. Например, если вы используете динамическую маршрутизацию для связи с пользовательской «stub» сетью, вам не нужно принимать данные об обновлении маршрута с данной сети.

 

Защита от флуда

Множество атак типа «Отказ в обслуживании» (DoS) основаны на пересылке бесполезных пакетов. Данные действия занимают полосу пропускания, снижают время ответа хостов и могут привести к перезагрузке маршрутизаторов.

Правильная настройка маршрутизаторов снижает риск таких атак. Важной частью управления потоком является поиск узкого места пропускной способности.

Транзитный флуд
Существует возможность использования CISCO’s quality of service (QoS) для защиты хостов от данных атак. Можно использовать — weighted fair queueing (WFQ). WFQ устанавливается по умолчанию для низкоскоростных линий во многих версия ОС. Также можно использовать committed access rate (CAR), generalized traffic shaping (GTS) и custom queuing.

Если планируется использовать QoS для контроля трафика, очень важно понимать, как это работает. Например, WFQ более эффективен против floods, чем против SYN floods, потому что обычный ping flood для WFQ является одиночным трафиком, а для SYN flood каждый пакет является отдельным потоком.

CISCO обеспечивает два различных способа уменьшить опасность от атаки типа SYN flooding. Способ «TCP Intercept» используется в маршрутизаторах модели 4000 или выше. Например, CISCO IOS Firewall Feature Set включает различные способы защиты от SYN flood.

Самозащита маршрутизатора
Прежде всего необходимо защитить сам маршрутизатор от атак и после этого необходимо защищать хосты, стоящие после него. Switching Modes and CISCO Express Forwarding

Режим — CEF switching mode, являющийся доступным в версиях ПО 11.1CC, 11.1CT, 11.2GS, и 12.0. Позволяет быстрее переключать трафик, чем обычная маршрутизация.

Хотя многие атаки типа DoS пересылают все пакеты на один или несколько хостов, много атак типа SYN flooding используют изменяющийся адрес источника. Хост, который атакуют, отвечает на SYN flood пакеты, создавая трафик с различными адресами destinations. При этом рекомендуется использовать CEF.

Scheduler Configuration
Когда маршрутизатор CISCO находится в режиме fast-switching большого количества пакетов, есть возможность его «загрузить» только работой на ответ , другая работа не будет проводиться. Данный эффект может быть снижен путем использования команды scheduler interval. Типичная конфигурация использует команду scheduler interval 500, которая показывает , что задача будет выполняться каждые 500 milliseconds.

Новые платформы фирмы CISCO используют команду scheduler allocate вместо команды scheduler interval.

 

Возможно ненужные сервисы

Существует несколько сервисов, которые обычно не используются, а их наличие может привести к атаке со стороны злоумышленника.

TCP and UDP «Small Services»
По умолчанию CISCO, начиная с версии 11.3, поднимает «small services»: echo, chargen и discard. Данные сервисы , особенно их UDP версии, могут использоваться для DoS атаки на маршрутизатор.

Например, атакующий может послать DNS пакеты с подмененным адресом источника DNS сервера и портом (53). Если данные пакеты будут направлены на порт CISCO’s UDP echo port, то маршрутизатор будет посылать DNS пакеты на сервер с вопросом. Ни один ACL не будет это отслеживать.

Для отключения необходимо использовать команду no service tcp-small-servers и no service udp-small-servers.

Finger
Маршрутизатор CISCO обеспечивает сервис «finger», который позволяет уточнить, кто подключен из пользователей. Отключается командой no service finger.

NTP
Network Time Protocol (NTP) не является опасным сервисом, но любые не нужные сервисы потенциально опасны. Для отключения используйте команду no ntp enable.

CDP
CISCO Discovery Protocol (CDP) используется для обмена данными между устройствами CISCO. Отключение производится командой no cdp running. CDP может быть поднят на каком-то из интерфейсов, отключение — по команде no cdp enable.

 

How to Static NAT two Public IPs to 1 Private IP?

A common question I get is can I NAT more than one public IP to a private IP using the Cisco ASA (or PIX) firewall.

The simple answer is yes, but you can’t using the «static» command as you would expect or else you’ll get the error «ERROR: duplicate of existing static».

So the following configuration will fail;

static (Inside,Outside) 201.10.10.2 10.10.10.1 netmask 255.255.255.255
static (Inside,Outside) 100.20.30.3 10.10.10.1 netmask 255.255.255.255

However using policy NAT on the PIX/ASA using code 7.x and beyond (Tested on 8.x) the following will work.

access-list policy_1 extended permit ip host 10.10.10.1 any
access-list policy_2 extended permit ip host 10.10.10.1 any
static (Inside,Outside) 201.10.10.2 access-list policy_1
static (Inside,Outside) 100.20.30.3 access-list policy_2

Interestingly if you ping 100.20.30.3 from the outside you see the echo-reply come from 201.10.10.2. ICMP isn’t stateful through the firewall so the Policy NAT will use the first IP in the list as the source address of any outgoing initiated flow.

Перехват трафика на Cisco ASA

Предисловие

…Есть сервер приложения. На нем вертится это самое приложение. Сам сервер на всякий случай спрятан от пользователей за фаерволом.

Звонит однажды администратор приложения сетевому администратору и говорит:

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

— Хорошо – говорит сетевой админ. – Скажи мне, какие порты использует твоя новая фишка.

— TCP/abxy и TCP/abxz

— эти порты открыты на фаерволе. У тебя что то не так на сервере.

— На сервере все в порядке. Это на твоем сетевом железе что то не так.

Один из способов решения проблемы — посмотреть и проанализировать интересующий обоих администраторов трафик. В данном случае можно обойтись без снифера так как cisco ASA умеет перехватывать проходящий через нее трафик. О том, как это сделать рассказано в этой статье.

Примеры настройки для Cisco ASA5510.

Процесс состоит из нескольких этапов:

— создание access-list-ов, описывающих трафик, который нужно перехватить

— запуск перехватчиков

— просмотр перехваченных данных

Схема соединения, рассматриваемых ниже примеров, представлена на рисунке.

 

Сначала создаем access-list, в котором описываем трафик, который собираемся перехватывать.

asa1(config)#

asa1(config)#access-list CAPT1 extended permit ip host 10.1.1.10 host 192.168.1.4

asa1(config)#access-list CAPT1 extended permit ip host 192.168.1.4 host 10.1.1.10

asa1(config)#

Согласно этому листу, будем перехватывать весь ip трафик, идущий в обоих направлениях между 10.1.1.10 и 192.168.1.4. При необходимости, можно ограничиться только нужными протоколами и портами.

Теперь стартуем перехват пакетов с помощью команды capture

asa1#

asa1#capture CA1 interface outside access-list CAPT1

asa1#

Здесь CA1 – это имя перехватчика. outside – имя интерфейса, на котором будем перехватывать пакеты.

По-хорошему, надо запустить еще один перехватчик – на интерфейсе ‘DMZ’.

asa1#

asa1#capture CA2 interface DMZ access-list CAPT1

asa1#

В результате мы будем иметь данные о трафике на обоих интерфейсах. Если эти данные будут различаться, можно будет сделать вывод о том, что ASA действительно не пропускает определенный трафик. Дело в том, что команда capture перехватывает трафик до того, как к нему будут применены какие либо политики безопасности. Пусть, например, access-list на входе интерфейса outside не пропускает любые ICMP пакеты. Тем не менее, перехватчик, настроенный на этом интерфейсе, увидит ‘следы’ от команды ‘ping’

Проверим состояние перехватчиков

asa1#

asa1#sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 0 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 0 bytes]

asa1#

Теперь запустим ping с компьютера пользователя в сторону сервера.

C:\>ping 192.168.1.4

Pinging 192.168.1.4with 32 bytes of data:

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Reply from 192.168.1.4: bytes=32 time=1ms TTL=128

Ping statistics for 192.168.1.4:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 1ms, Maximum = 1ms, Average = 1ms

C:\>

Еще раз проверим состояние перехватчиков.

asa1#

asa1#sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 720 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 720 bytes]

asa1#

Судя по тому, что количество перехваченных байт теперь больше 0, в буферах перехватчиков появились данные. Посмотрим, что они из себя представляют.

asa1#

asa1#sh capture CA1

8 packets captured

1: 15:39:53.928647 10.1.1.10 > 192.168.1.4: icmp: echo request

2: 15:39:53.928952 192.168.1.4 > 10.1.1.10: icmp: echo reply

3: 15:39:54.921384 10.1.1.10 > 192.168.1.4: icmp: echo request

4: 15:39:54.921690 192.168.1.4 > 10.1.1.10: icmp: echo reply

5: 15:39:55.921384 10.1.1.10 > 192.168.1.4: icmp: echo request

6: 15:39:55.921674 192.168.1.4 > 10.1.1.10: icmp: echo reply

7: 15:39:56.921430 10.1.1.10 > 192.168.1.4: icmp: echo request

8: 15:39:56.921720 192.168.1.4 > 10.1.1.10: icmp: echo reply

8 packets shown

asa1#
asa1#sh capture CA2

8 packets captured

1: 15:39:53.928815 10.1.1.10 > 192.168.1.4: icmp: echo request

2: 15:39:53.928937 192.168.1.4 > 10.1.1.10: icmp: echo reply

3: 15:39:54.921522 10.1.1.10 > 192.168.1.4: icmp: echo request

4: 15:39:54.921659 192.168.1.4 > 10.1.1.10: icmp: echo reply

5: 15:39:55.921522 10.1.1.10 > 192.168.1.4: icmp: echo request

6: 15:39:55.921644 192.168.1.4 > 10.1.1.10: icmp: echo reply

7: 15:39:56.921552 10.1.1.10 > 192.168.1.4: icmp: echo request

8: 15:39:56.921705 192.168.1.4 > 10.1.1.10: icmp: echo reply

8 packets shown

asa1#

Мы получили две ‘фотографии’ прохождения пакетов через интерфейсы фаервола. Можем, даже, сказать, что на прохождение от ‘outside’ до ‘DMZ’ пакетам требуется 120 — 170 мкс, а в обратном направлении — 15 -30 мкс.

Теперь попробуем открыть WEB станицу с сервера 192.168.1.4 и посмотрим, на перехваченный трафик:

asa1#

asa1# sh cap CA1

35 packets captured

1: 14:09:43.657238 10.1.1.10.3029 > 192.168.1.4.80: S 517995293:517995293(0) win 65535

2: 14:09:43.657558 192.168.1.4.80 > 10.1.1.10.3029: S 2097782201:2097782201(0) ack 517995294 win 8192

3: 14:09:43.657924 10.1.1.10.3029 > 192.168.1.4.80: . ack 2097782202 win 65535

4: 14:09:43.658092 10.1.1.10.3029 > 192.168.1.4.80: P 517995294:517995577(283) ack 2097782202 win 65535

5: 14:09:43.658245 192.168.1.4.80 > 10.1.1.10.3029: P 2097782202:2097782203(1) ack 517995577 win 8191

. . . . . .

. . . . . .

asa1#

Для того, что бы увидеть содержимое пакетов данных, воспользуемся командой ‘show capture CA1 dump’.

asa1# sh cap CA1 dump

35 packets captured

1: 14:09:43.657238 10.1.1.10.3029 > 192.168.1.4.80: S 517995293:517995293(0) win 65535

0x0000 4500 0030 f378 4000 7f06 40bd 9bf8 ef39 E..0.x@...@....9

0x0010 0a19 3247 0bd5 0050 1edf fb1d 0000 0000 ..2G...P........

0x0020 7002 ffff 9633 0000 0204 04ec 0101 0402 p....3..........

2: 14:09:43.657558 192.168.1.4.80 > 10.1.1.10.3029: S 2097782201:2097782201(0) ack 517995294 win 8192

0x0000 4500 002c 1db4 0000 ff06 d685 0a19 3247 E..,..........2G

0x0010 9bf8 ef39 0050 0bd5 7d09 9db9 1edf fb1e ...9.P..}.......

0x0020 6012 2000 6fee 0000 0204 0564 `. .o......d

3: 14:09:43.657924 10.1.1.10.3029 > 192.168.1.4.80: . ack 2097782202 win 65535

0x0000 4500 0028 f37a 4000 7f06 40c3 9bf8 ef39 E..(.z@...@....9

0x0010 0a19 3247 0bd5 0050 1edf fb1e 7d09 9dba ..2G...P....}...

0x0020 5010 ffff a75b 0000 P....[..

4: 14:09:43.658092 10.1.1.10.3029 > 192.168.1.4.80: P 517995294:517995577(283) ack 2097782202 win 65535

0x0000 4500 0143 f37b 4000 7f06 3fa7 9bf8 ef39 E..C.{@...?....9

0x0010 0a19 3247 0bd5 0050 1edf fb1e 7d09 9dba ..2G...P....}...

0x0020 5018 ffff 24a9 0000 4745 5420 2f20 4854 P...$...GET / HT

0x0030 5450 2f31 2e31 0d0a 4163 6365 7074 3a20 TP/1.1..Accept:

0x0040 2a2f 2a0d 0a41 6363 6570 742d 4c61 6e67 */*..Accept-Lang

0x0050 7561 6765 3a20 7275 0d0a 4163 6365 7074 uage: ru..Accept

0x0060 2d45 6e63 6f64 696e 673a 2067 7a69 702c -Encoding: gzip,

0x0070 2064 6566 6c61 7465 0d0a 5573 6572 2d41 deflate..User-A

0x0080 6765 6e74 3a20 4d6f 7a69 6c6c 612f 342e gent: Mozilla/4.

0x0090 3020 2863 6f6d 7061 7469 626c 653b 204d 0 (compatible; M

0x00a0 5349 4520 362e 303b 2057 696e 646f 7773 SIE 6.0; Windows

0x00b0 204e 5420 352e 313b 2053 5631 3b20 2e4e NT 5.1; SV1; .N

0x00c0 4554 2043 4c52 2031 2e31 2e34 3332 323b ET CLR 1.1.4322;

0x00d0 2049 6e66 6f50 6174 682e 323b 202e 4e45 InfoPath.2; .NE

0x00e0 5420 434c 5220 322e 302e 3530 3732 373b T CLR 2.0.50727;

0x00f0 202e 4e45 5420 434c 5220 332e 302e 3034 .NET CLR 3.0.04

0x0100 3530 362e 3330 3b20 4d53 2d52 5443 204c 506.30; MS-RTC L

0x0110 4d20 3829 0d0a 486f 7374 3a20 3130 2e32 M 8)..Host: 10.2

0x0120 352e 3530 2e37 310d 0a43 6f6e 6e65 6374 5.50.71..Connect

0x0130 696f 6e3a 204b 6565 702d 416c 6976 650d ion: Keep-Alive.

0x0140 0a0d 0a ...

. . . . . .

. . . . . .

asa1#

В этом коротком фрагменте мы видим, как браузер начинает открывать WEB страницу.

Таким образом, наша цель – перехватить и просмотреть пользовательский трафик, достигнута.

По умолчанию размер буфера, в котором перехватчики хранят данные, – 500Кбайт. Через некоторое время буферы заполнятся, и новые данные перестанут запоминаться.

asa1#

asa1# sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Buffer Full - 524208 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Buffer Full - 524208 bytes]

asa1#

Для очистки буфера используется команда ‘clear capture’.

asa1#

asa1# clear capture CA1

asa1# sh capture

capture CA1 type raw-data access-list CAPT1 interface outside [Capturing - 0 bytes]

capture CA2 type raw-data access-list CAPT1 interface DMZ[Capturing - 0 bytes]

asa1#

Для полной остановки и удаления перехватчиков нужно выполнить команду ‘no capture’.

asa1#

asa1# no capture CA1

asa1# no capture CA2

asa1#

asa1# sh capture

asa1#

Теперь можно удалить ставший ненужным access-list CAPT1.

asa1(config)#

asa1(config)#no access-list CAPT1 extended permit ip host 10.1.1.10 host 192.168.1.4

asa1(config)#no access-list CAPT1 extended permit ip host 192.168.1.4 host 10.1.1.10

asa1(config)#

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