В предыдущей части мы сделали все настройки, необходимые для подключения к ASA по telnet, ssh, а также по ASDM.
В данной статье мы подробнее ознакомимся с работой через интерфейс ASDM.
Здесь мы настроим внешний интерфейс, DHCP для внутренних пользователей, а также сделаем настройку простого NAT-а.
В данной статье мы будем придерживаться следующей схемы:
Несмотря на то, что статья посвящена приёмам работы из ASDM, здесь и далее мы будем всегда дублировать командами-аналогами для CLI.
ASDM > Home > General
Во вкладке Licence мы можем увидеть тип лицензии, а также включённые фичи для данного девайса.
CLI
Всю аналогичную информацию можно посмотреть через CLI.
show version
Пару слов о лицензиях:
В каждый девайс вшит его серийный номер и для каждого серийного номера может быть сгенерён Activation Key.
Т.е. Activation Key привязан к конкретному железу, и в нем также содержится информация о поддерживаемых фичах для данного железа.
Activation Key "живёт" отдельно от конфигурации, и если мы даже удалим весь конфиг, лицензии никуда не денутся и не потеряются.
Таким образом, если вам понадобится расширить функции понадобится обновить лицензию. Для этого звоним в циску, платим денежку, сообщаем серийник, получаем новый Activation Key и вводим его. Для активации нового кода понадобится перезагрузка.
При этом нельзя одновременно обновлять и ОС и ключ, т.е. сначала (принадобности) следует обновить ОС, перезагрузиться, и только затем обновить ключ.
ASDM > Configuration > Device Management > System Image/Configuration > Boot Image/Configuration
Как видно, мы можем задать список согласно которому система будет пытаться загружать различными методами и различные версии ОС. Если по списку ничего загрузить не удастся, система попытается загрузить первый попавшийся валидный образ из Flash.
CLI
boot system flash:/asa914-5-k8.bin asdm image flash:/asdm-643.bin
Проверка
show bootvar show asdm image
ASDM > Configuration > Device Management > Management Access > ASDM/HTTPS/Telnet/SSH
Как видно, здесь настраивается метод для администрирования (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 для подключений как небезопасный протокол.
Также можно изменить порт для http:
http server enable 8880
Проверка
show running-config http show running-config ssh show running-config telnet
Данный пункт необходим для включения AAA.
ASDM > Configuration > Device Management > Users/AAA > User Accounts
CLI
username asaadmin password fLerRrl0l9cO2yQ1 encrypted privilege 15
Если пользователь будет админить ASA, всегда ставьте privilege 15, иначе будут недоступны некоторые функции.
Также здесь примечательно что в ASA для пароля используется директива "password". В контексте ASA это всегда будет означать что храниться пароль будет в шифрованном виде (в отличие от конфигурации маршрутизаторов, где требуется указывать директиву "secret")
Проверка
show running-config username
Вообще 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
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
ASDM > Configuration > Device Management > Certificate Management > Identity Certificates
Вообще для ASA мы можем настроить 3 типа сертификатов:
Здесь размещаются сертификаты от CA, и, как видно, пока ни одного сертификата тут нет.
Тем не менее мы можем заходить на нашу ASA по https благодаря тому, что при каждом запуске ASA генерит Self Sighned Temporary Certificate
Добавим Self Sighned Permanent Certificate:
CLI
crypto ca trustpoint ASDM_TrustPoint0 id-usage ssl-ipsec no fqdn subject-name CN=asa1 enrollment self crypto ca enroll ASDM_TrustPoint0 noconfirm
Принцип работы 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.
ASDM > Configuration > Device Setup > Interfaces
И открываем свойства интерфейса Gi1:
Здесь:
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
По умолчанию трафик между интерфейсами с одинаковыми 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
Здесь обратите внимание на 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
Еще одна замечательная вещь - это tcp ping.
tcp ping фактически отсылает TCP Syn на заданные адреса.
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.
В заключение настроим несложный NAT.
В нашем случае это будет PAT или в терминах ASA это называется Dynamic translation with Hiding, но смысл тот же: вся внутрення сеть скрывается за одним внешним адресом.
ASDM > Configuration > Firewall > NAT Rules
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
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
same-security-traffic permit inter-interface same-security-traffic permit intra-interface
show running-config telnet
show running-config username
Комментарии
Большое спасибо за статьи.
Большое спасибо за статьи. Очень круто было бы, если Настройки DHCP так же расписали бы. Гайд был бы наиболее полным. А то как-то обрывается
Спасибо! Всё классно изложено
Спасибо! Всё классно изложено!
Хорошая полезная статья.
Хорошая полезная статья. Очень поиогла в настройке
Добавить комментарий