Cisco ASA. Управление входящим и исходящим трафиком с помощью списков ACL
Рисунок –вместо тысячи слов. Примеры сценариев, которые будут приведены ниже, изображены на приведенном ниже рисунке. Эти примеры покажут вам, как управлять входящим и исходящим потоком трафика:
Сценарий 1. Разрешить входящий доступ к серверам DMZ
Для указанных выше веб-серверов и серверов электронной почты мы создали статические сопоставления NAT, чтобы преобразовать их реальные частные адреса в общедоступные адреса, доступные из Интернета. В дополнение к статическим операторам NAT мы должны также использовать ACL, чтобы разрешить соответствующий входящий трафик к нашим серверам.
Версия Cisco ASA до 8.3
ciscoasa(config)# static (DMZ , outside) 100.1.1.1 10.0.0.1 netmask 255.255.255.255
ciscoasa(config)# static (DMZ , outside) 100.1.1.2 10.0.0.2 netmask 255.255.255.255
ciscoasa(config)# access-list OUTSIDE-IN extended permit tcp any host 100.1.1.1 eq 80
ciscoasa(config)# access-list OUTSIDE-IN extended permit tcp any host 100.1.1.2 eq 25
ciscoasa(config)# access-group OUTSIDE-IN in interface outside
ciscoasa(config)# access-list DMZ-IN extended deny ip any any log
ciscoasa(config)# access-group DMZ-IN in interface DMZ
Как видно из утверждений ACL, мы разрешаем «любому» трафику (то есть всему интернет-трафику) получать доступ к общедоступным IP-адресам наших веб-серверов и серверов электронной почты только через соответствующие порты (80 и 25). Кроме того, весь трафик, исходящий от серверов DMZ, запрещается и регистрируется с использованием ACL DMZ-IN. Это хорошая практика обеспечения безопасности, поскольку, если сервер DMZ будет взломан извне, злоумышленник не сможет получить доступ к чему-либо еще из зоны DMZ.
Cisco ASA версии 8.3 и новее
Начиная с Cisco ASA версии 8.3 и более поздних, вы должны указать Реальный IP-адрес в ACL вместо Сопоставленного общедоступного IP-адреса. Из приведенного выше примера у нас есть следующая конфигурация:
! Сначала создайте статические трансляции NAT
ciscoasa(config)# object network web_server_static
ciscoasa(config-network-object)# host 10.0.0.1 (Реальный IP-адрес Web-сервера)
ciscoasa(config-network-object)# nat (DMZ , outside) static 100.1.1.1 (Сопоставленный IP)
ciscoasa(config)# object network email_server_static
ciscoasa(config-network-object)# host 10.0.0.2 (Реальный IP-адрес E-mail-сервера)
ciscoasa(config-network-object)# nat (DMZ , outside) static 100.1.1.2 (Сопоставленный IP)
! Теперь разрешите только абсолютно необходимые порты (80 и 25) доступные из Интернета.
ciscoasa(config)# access-list OUTSIDE-IN extended permit tcp any host 10.0.0.1 eq 80
ciscoasa(config)# access-list OUTSIDE-IN extended permit tcp any host 10.0.0.2 eq 25
ciscoasa(config)# access-group OUTSIDE-IN in interface outside
Обратите внимание, что мы использовали реальные IP-адреса (10.0.0.1 и 10.0.0.2) в записи списка доступа, а НЕ сопоставленные общедоступные IP-адреса.
Сценарий 2: применение Identity NAT (nat 0) к внутренней сети при доступе к DMZ
Как мы упоминали ранее, списки управления доступом, помимо ограничения потока трафика, также могут использоваться для идентификации трафика для применения к нему других действий. Для нашей схемы выше предположим, что мы хотим применить Identity NAT к нашей внутренней сети, когда она взаимодействует с DMZ. Другими словами, когда хосты в сети 192.168.1.0/24 инициируют связь с сетью 10.0.0.0/24, мы не хотим их транслировать. Чтобы отключить трансляцию NAT с определенного интерфейса с высоким уровнем безопасности на интерфейс с более низким уровнем безопасности, мы можем использовать команду nat 0 (только в версиях до 8.3). ACL можно использовать вместе с командой nat 0, чтобы определить, какой поток трафика не будет транслироваться.
Версия Cisco ASA до 8.3
ciscoasa(config)# access-list NO-NAT extended permit ip 192.168.1.0 255.255.255.0 10.0.0.0 255.255.255.0 (Сопоставление трафика Inside с DMZ)
ciscoasa(config)# nat (inside) 0 access-list NO-NAT (Не транслировать трафик, соответствующий этому ACL)
ciscoasa(config)# nat (inside) 1 192.168.1.0 255.255.255.0
ciscoasa(config)# global (outside) 1 interface (Используйте PAT при трафике Inside to Outside)
Приведенная выше конфигурация применима к версиям до 8.3. Следующий сценарий намного популярнее, так что давайте продолжим.
Сценарий 3: Двунаправленная связь между сетями Inside и сетями DMZ
Предыдущий сценарий 2 выше работает только для трафика, идущего из внутренней сети в DMZ (а не наоборот). Если мы хотим иметь двунаправленную связь между внутренней сетью и DMZ, мы должны настроить статическую трансляцию NAT между двумя сетями. В частности, мы можем создать статический Identity NAT внутренней локальной сети (192.168.1.0/24) при взаимодействии с DMZ. Это означает, что исходные IP-адреса хостов внутренней локальной сети не будут транслироваться при взаимодействии с DMZ.
(Identity NAT). Поскольку мы будем использовать статическое сопоставление, это также позволит получить доступ из DMZ во внутреннюю часть (конечно, контролируемую ACL).
Снова обращаясь к предыдущему рисунку в сценарии 1 выше, мы создадим Static Identity NAT из Inside LAN. Давайте посмотрим, какие команды необходимы для этого сценария:
Версия Cisco ASA до 8.3
ciscoasa(config)# static (inside , DMZ) 192.168.1.0 192.168.1.0 netmask 255.255.255.0
Команда выше создает Static Identity NAT из внутренней LAN (между внутренней и DMZ-зонами). Хосты во внутренней зоне не будут транслироваться при переходе в зону DMZ. Более того, эта конфигурация при необходимости позволит получить доступ из DMZ во внутреннюю часть.
! Теперь разрешите доступ из DMZ в Inside по мере необходимости. Этот доступ контролируется ACL «dmzin».
ciscoasa(config)# access-list dmzin extended permit tcp host 10.0.0.2 host 192.168.1.3 eq 25
ciscoasa(config)# access-group dmzin in interface DMZ
ACL «dmzin» разрешит доступ с хоста DMZ 10.0.0.2 на порт 25 внутреннего хоста 192.168.1.3.
Cisco ASA версии 8.3 и новее
Настройка сценария 3 в версиях 8.3 и более поздних:
! Настройте статический Identity NAT
ciscoasa(config)# object network inside_identity_nat
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0
ciscoasa(config)# object network inside_network
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0 (Внутренняя подсеть)
ciscoasa(config-network-object)# nat (inside, DMZ) static inside_identity_nat
! Теперь разрешите доступ из DMZ в Inside по мере необходимости. Этот доступ контролируется ACL «dmzin».
ciscoasa(config)# access-list dmzin extended permit tcp host 10.0.0.2 host 192.168.1.3 eq 25
ciscoasa(config)# access-group dmzin in interface DMZ
Сценарий 4: Применение ограничений исходящего трафика из внутренней сети к DMZ
Теперь предположим, что пользователям внутренней сети (192.168.1.0/24) разрешен доступ только к серверу электронной почты через порт 25 в DMZ (для получения электронной почты), но они не должны иметь доступа к остальной части сети DMZ. Однако любой доступ к Интернету должен быть разрешен.
ciscoasa(config)# access-list INSIDE-IN extended permit tcp 192.168.1.0 255.255.255.0 host 10.0.0.2 eq 25
ciscoasa(config)# access-list INSIDE-IN extended deny ip 192.168.1.0 255.255.255.0 10.0.0.0 255.255.255.0
ciscoasa(config)# access-list INSIDE-IN extended permit ip 192.168.1.0 255.255.255.0 any
ciscoasa(config)# access-group INSIDE-IN in interface inside