Вы здесь

Cisco ASA 8.4.2 с нуля. Часть 3. ASA и ASDM

В предыдущей части мы сделали все настройки, необходимые для подключения к ASA по telnet, ssh, а также по ASDM.
В данной статье мы подробнее ознакомимся с работой через интерфейс ASDM.
Здесь мы настроим внешний интерфейс, DHCP для внутренних пользователей, а также сделаем настройку простого NAT-а.

В данной статье мы будем придерживаться следующей схемы:
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_01_ciscomaster.ru.jpg

Несмотря на то, что статья посвящена приёмам работы из ASDM, здесь и далее мы будем всегда дублировать командами-аналогами для CLI.

Проверка версий ASA

ASDM > Home > General
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_versions_check_02_ciscomaster.ru.jpg
Во вкладке Licence мы можем увидеть тип лицензии, а также включённые фичи для данного девайса.

CLI
Всю аналогичную информацию можно посмотреть через CLI.

show version

Пару слов о лицензиях:
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_licenses_03_ciscomaster.ru.jpg
В каждый девайс вшит его серийный номер и для каждого серийного номера может быть сгенерён Activation Key.
Т.е. Activation Key привязан к конкретному железу, и в нем также содержится информация о поддерживаемых фичах для данного железа.
Activation Key "живёт" отдельно от конфигурации, и если мы даже удалим весь конфиг, лицензии никуда не денутся и не потеряются.

Таким образом, если вам понадобится расширить функции понадобится обновить лицензию. Для этого звоним в циску, платим денежку, сообщаем серийник, получаем новый Activation Key и вводим его. Для активации нового кода понадобится перезагрузка.
При этом нельзя одновременно обновлять и ОС и ключ, т.е. сначала (принадобности) следует обновить ОС, перезагрузиться, и только затем обновить ключ.

Проверка Boot Source

ASDM > Configuration > Device Management > System Image/Configuration > Boot Image/Configuration
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_04_boot_ciscomaster.ru_0.jpg
Как видно, мы можем задать список согласно которому система будет пытаться загружать различными методами и различные версии ОС. Если по списку ничего загрузить не удастся, система попытается загрузить первый попавшийся валидный образ из Flash.

CLI

boot system flash:/asa914-5-k8.bin asdm image flash:/asdm-643.bin

Проверка

show bootvar show asdm image

Управление доступом для администрирования ASA

ASDM > Configuration > Device Management > Management Access > ASDM/HTTPS/Telnet/SSH
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_05_management_access_ciscomaster.ru.jpg
Как видно, здесь настраивается метод для администрирования (telnet, ssh. asdm), интерфейс, а также разрешенные IP.

CLI

http server enable http 192.168.2.0 255.255.255.0 inside telnet 192.168.2.0 255.255.255.0 inside ssh 192.168.2.0 255.255.255.0 inside ssh timeout 60

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

Проверка

show running-config http show running-config ssh show running-config telnet

Добавление пользователей

Данный пункт необходим для включения AAA.
ASDM > Configuration > Device Management > Users/AAA > User Accounts
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_07_user_add_ciscomaster.ru.jpg

CLI

username asaadmin password fLerRrl0l9cO2yQ1 encrypted privilege 15

Если пользователь будет админить ASA, всегда ставьте privilege 15, иначе будут недоступны некоторые функции.
Также здесь примечательно что в ASA для пароля используется директива "password". В контексте ASA это всегда будет означать что храниться пароль будет в шифрованном виде (в отличие от конфигурации маршрутизаторов, где требуется указывать директиву "secret")

Проверка

show running-config username

AAA Access

Вообще AAA означает Authentication Authorization and Accounting.
Для нас включение AAA означает использование для логина имени пользователя и пароля.

Без включённой AAA, для логина например через telnet понадобится ввести сначала telnet password и затем Enable Password.
Данные пароли настраиваются здесь:
ASDM > Configuration > Device Setup > Device Name/Password
CLI

passwd 0kJhWf.xwl584crW encrypted enable password 0kJhWf.xwl584crW encrypted

Проверка

show running-config enable show running-config passwd

Включение AAA:
ASDM > Configuration > Device Management > Users/AAA > AAA Access > Authentication
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_06_aaa_ciscomaster.ru.jpg
CLI

aaa authentication ssh console LOCAL aaa authentication http console LOCAL aaa authentication serial console LOCAL

В данном случае LOCAL означает использование локально БД. При этом конечно подразумевается, что мы создадим хотя бы одного пользователя.
Слово "console" никакого отношения к консоли или к терминалу не имеет.
Например команда aaa authentication ssh console LOCAL означает: "Методом ssh производить аутентификацию из локальной БД".

ssh, http, serial - это "methods" доступа. Вообще ещё есть telnet но мы его не упоминаем, т.к. им пользоваться не рекомендуется.
http означает использование ASDM.
Serial - доступ через консоль

Есть ещё одна полезная команда:

aaa authentication enable console LOCAL

Без неё юзер должен сначала залогиниться под собой, затем ввести глобальный enable.
Данная команда позволяет использовать пароль текущего юзера в качестве enable.

Проверка

show running-config aaa

Certificates

ASDM > Configuration > Device Management > Certificate Management > Identity Certificates

Вообще для ASA мы можем настроить 3 типа сертификатов:

  • Self Sighned Temporary Certificate - собственный сертификат, который генерится при каждой загрузке ASA
  • Self Sighned Permanent Certificate - собственный сертификат, который генерится один раз
  • Real Certificate from PKI - сертификат сгенерённый сторонней Certificate Authority

cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_08_certificates_ciscomaster.ru.jpg
Здесь размещаются сертификаты от CA, и, как видно, пока ни одного сертификата тут нет.

Тем не менее мы можем заходить на нашу ASA по https благодаря тому, что при каждом запуске ASA генерит Self Sighned Temporary Certificate

Добавим Self Sighned Permanent Certificate:
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_09_certificates_ciscomaster.ru.jpg

CLI

crypto ca trustpoint ASDM_TrustPoint0 id-usage ssl-ipsec no fqdn subject-name CN=asa1 enrollment self crypto ca enroll ASDM_TrustPoint0 noconfirm

Statefull Packet Filtering

cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_10_scheme_ciscomaster.ru.jpg
Принцип работы ASA заключается в работе с зонами Zones или c Security Domains.
Каждой зоне соответствует свой Security Level из диапазона 0 - 100.
Чем выше Security Level зоны, тем выше доверие к этой зоне.
При этом не столько важно какой конкретный номер присвоен какому интерфейсу, но очень важно взаимное расположение этих номеров, т.е. какой номер больше и какой меньше.

В нашем случае присутствует три зоны: интерфейсу inside соответствует Security Level 100, на outside - 0, а на dmz - 50.
С тем же успехом можно сделать и номера
inside 10
dmz 7
outside 3

По умолчанию ASA всегда пропускает трафик из зоны с более высоким Security Level в зону с более низким Security Level.
Например трафик от inside(100) в outside(0) будет пропущен, т.е. будет принято положительное Routing Decision. Но инициировать сессию в обратном направлении не удастся. Для разрешения трафика в направлении outside > inside нам нужно будет настроить отдельный ACL.
Тот же принцип используется и в работе с другими зонами независимо от их количества.

Если капнуть чуть глубже, то на самом деле разрешается или запрещается Initial Flow Traffic. Дальше начинает работать другой важный принцип, а именно - Statefull Packet Filtering.

Statefull Packet Filtering позволяет работать не с конкретными пакетами, а с сессией.

Предположим внутренний пользователь пошёл наружу по https. Поскольку Initial Flow Traffic идёт из зоны inside(100) в зону outside(0), то он будет разрешён. ASA запоминает параметры данной сессии (source address, destination address и тп), поэтому ответ от сайта интернет также будет пропущен, несмотря на то, что формально пакеты будут двигаться outside(0) > inside(100).

Таким образом Statefull Packet Filtering позволяет работать не с пакетами, но с сессией.
Другими словами если ваш трафик был проверен и разрешён движком ASA, для этой сессии будет также разрешен и Reply Traffic и сессия будет полноценно работать.

Параметры сессий хранятся в Stateful session table.
По умолчанию ASA запоминает параметры только сессий TCP и UDP, - отсюда идёт интересное следствие: по умолчанию изнутри наружу не работает пинг (что ставит в тупик новичков), поскольку пинг использует протокол ICMP.

Добавление интерфейса outside

ASDM > Configuration > Device Setup > Interfaces
И открываем свойства интерфейса Gi1:
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_11_add_interface_ciscomaster.ru.jpg
Здесь:
Dedicate this interface to management only - если это отметить, данный интерфейс не будет участвовать в машрутизации, но будет использоваться чисто для администрирования.

CLI

Interface GigabitEthernet1 no shutdown nameif outside security-level 0 ip address 62.105.149.229 255.255.255.224

Также обратите внимание на две настройки на странице:
ASDM > Configuration > Device Setup > Interfaces
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_15_ciscomaster.ru.jpg
По умолчанию трафик между интерфейсами с одинаковыми Security Levels запрещён.
Причем даже применение ACL не разрешит эту проблему. Трафик запрещается "молча" и дебаг будет пустым.
Также запрещен и трафик между хостами подключёнными к одному и тому же интерфейсу.
Последнее особенно актуально при подключениях пользовательского VPN. Чтобы разрешить пользователю выходить в интернет через ASA, нужно будет отметить эту галку. Это также называется Hair-pin Forwarding.

same-security-traffic permit inter-interface same-security-traffic permit intra-interface

после этого, для разрешения трафик между двумя интерфейсами с равными security level всё равно потребуется применение ACL.

На практике в 95% случаев рекомендуется сразу выполнить эти команды, чтобы избежать проблем в будущем.

Добавление шлюза

ASDM > Configuration > Device Setup > Routing > Static Routes
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_13_default_gateway_ciscomaster.ru.jpg
Здесь обратите внимание на metric на самом деле, в терминологии маршрутизации, это не метрика но Administrative Distance для данного статического маршрута.

CLI

route outside 0.0.0.0 0.0.0.0 62.105.149.225 1

Проверка
проверка маршрутизации:
ASDM > Monitoring > Routing > Routes

CLI

show route

Проверить правильность настройки мы можем всё тем же пингом.
ASDM > Tools > ping
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_12_ping_ciscomaster.ru.jpg

Еще одна замечательная вещь - это tcp ping.
tcp ping фактически отсылает TCP Syn на заданные адреса.
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_14_tcp_ping_ciscomaster.ru.jpg

ping tcp 195.112.100.134 80

Данный тип пинга позволяет проверить доступность от имени любого узла, например:

asa#ping tcp 217.112.35.75 80 source 192.168.2.12 45 Type escape sequence to abort. Sending 5 TCP SYN requests to 217.112.35.75 port 80 from 192.168.2.12 starting port 45, timeout is 2 seconds: ????? Success rate is 0 percent (0/5)

пинг прошел неудачно, поскольку мы ещё не включили NAT.

Basic NAT

В заключение настроим несложный NAT.
В нашем случае это будет PAT или в терминах ASA это называется Dynamic translation with Hiding, но смысл тот же: вся внутрення сеть скрывается за одним внешним адресом.
ASDM > Configuration > Firewall > NAT Rules
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_16_basic_nat_ciscomaster.ru.jpg

CLI

nat (inside,outside) 1 source dynamic any interface

Что означает данная настройка nat.
Здесь нас интересует только то, что в случае если трафик идет в направлении inside > outside, из любого источника(source dynamic) на любое destination (any), то будет активирован dynamic nat.
Директива interface означает использование для маскировки адреса внешнего интерфейса.

Ну и конечно проверим наш пинг:

msk-asa-01# ping tcp 217.112.35.75 80 source 192.168.2.12 45 Type escape sequence to abort. Sending 5 TCP SYN requests to 217.112.35.75 port 80 from 192.168.2.12 starting port 45, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/46/49 ms

Настройка DHCP Server

Configuration > Device Management > DHCP > DHCP Server
В случаях SOHO, когда ASA является чуть ли не единственным активным устройством в сети, ASA может выступать также и в роли DHCP сервера.
Для настройки DHCP необходимо выполнить следующие команды:

dhcpd address 172.16.100.186-172.16.100.190 dmz dhcpd enable dmz dhcpd dns 8.8.8.8 8.8.4.4

Интересно, что клиенту автоматически будет отдан Defaul Gateway в виде IP на интерфейсе dmz. Маска для клиента также явно не выставляется и забирается с интерфейса dmz.

Проверка:

show running-config dhcp show dhcpd binding show dhcpd state show dhcpd statistics

Настройка часов

clock timezone MSK 3 ntp server 64.90.182.55 ntp server 62.117.76.138 ntp server 81.2.117.228 ntp server 88.147.254.228 ntp server 192.168.252.6 ntp server 192.168.252.2

Проверка

show clock show ntp status show ntp associations

Рекомендации

  • Во избежание проблем, включите опции разрешения трафика между интерфейсами с одинаковым security level.
    same-security-traffic permit inter-interface same-security-traffic permit intra-interface
  • Не рекомендуется разрешать доступ на внешнем интерфейсе, либо максимально сужайте подсеть разрешённых адресов для подключения извне.
  • Для удобства увеличьте таймаут SSH до 60мин
  • В ASDM включите отображение выполняемых команд:
    Tools > Preferences > Prefview Commands
  • Рекомендуется отключить telnet как протокол для подключения к устройству.
    Нужно чтобы эта команда ничего не возвращала:
    show running-config telnet
  • На всякий случай проверьте пользователей в БД ASA и удалите лишних:
    show running-config username

Комментарии

Большое спасибо за статьи. Очень круто было бы, если Настройки DHCP так же расписали бы. Гайд был бы наиболее полным. А то как-то обрывается

Спасибо! Всё классно изложено!

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

Filtered HTML

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

Plain text

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