понедельник, 28 марта 2016 г.

DNS Doctoring or DstNAT?

Дано: Клиенты и сервис www находятся за одним интерфейсом INSIDE( в одной или разных IP сетях). Ваши внутренние клиенты пытаются попасть на внутренний ресурс опубликованный во внешней сети(NAT-ed IP).  Однако в следствии того, что внешний DNS отдает клиентам публичный IP ,  может возникнуть ситуация (в специфических условиях), когда внутренние пользователи не смогут  получить доступ к этому ресурсу. Все потому что по умолчанию, firewall сбросит любые пакеты пытающиеся вернуться через тот же интерфейс через который попали на устройство. Все ради нашей же безопасности. К сожалению или к счастью, данная ситуация давно исправилась, по крайней мере на железяках Cisco ASA, с версии 7.2 если не ошибаюсь.
same-security-traffic permit intra-interface (Enables Hairpinning and redirection on interface)
Решений может быть несколько: 
  1. DNS Doctoring.
  2. DNAT and Hairpinning 



“Hairpinning is the process by which traffic is sent back out the same interface on which it arrived. This feature was introduced in security appliance software version 7.0. For versions earlier than 7.2(1), it is required that at least one arm of the hairpinned traffic (inbound or outbound) be encrypted. From 7.2(1) and later, this requirement is no longer in place. Both the traffic inbound and the traffic outbound might be unencrypted when you use 7.2(1).Hairpinning, in conjunction with a static NAT statement, can be used to achieve the same effect as DNS doctoring. This method does not change the contents of the DNS A-record that is returned from the DNS server to the client.”
Мы рассмотрим DNS Doctoring. 
В нашем примере клиенты находятся во внутренней  сети 192.168.1.0/24.  когда они пытаются разрешить имя веб сервера www.domain.com в ответе получают публичный ip 1.2.3.4. В последующем, когда клиент попытается обратиться к серверу по этому адресу, наш фаервол увидев что запрос пришел на NAT-ed IP c интерфейса за которым находится и REAL Address для www.domain.com попросту сбросит такой пакет. Все потому что у нас имеется запись NAT котоорая делает маппинг реального адреса 192.168.1.10 в 1.2.3.4. Трик, заключается в добавлении директивы "DNS" в конец строки определяющей нашу NAT трансляцию.
Это заставит железку проводить инспектирование DNS запросов и ответов, и в случае обнаружения в ответе IP адреса для которого в таблице NAT имеется запись, умная железка сделает подмену внутри пакета, что сделает его доступным по приватному адресу с точки зрения внутреннего пользователя. 

 Чтобы все это заработало конечно же необходимо включить инспекцию DNS.
object network web server
host 192.168.1.10
nat (inside,outside) static 1.2.3.4 dns
!
policy-map global_policy
class inspection_default
inspect dns

Альтернатива: Destination NAT


Destination NAT предоставляет нам альтернативное решение. Рассмотрим следующий пример:

 Использование destination NAT в нашем сценарии сводится к тому чтобы создать статическую запись трансляции между публичным (MAPPED IP) нашего WWW сервера со стороны INSIDE и реальным (приватным) адресом со стороны DMZ. Destination NAT не меняет содержимое пакета с DNS Response, т.е не меняет DNS A-record которая возвращается нам сервером. Тем не менее, когда мы используем destination NAT в сценарии выше,клиент может использовать публичный (MAPPED IP) для подключения к запрашиваемому сервису, в нашем случае WWW.

Статическая трансляция позволяет security appliance транслировать адрес назначения с  172.20.1.10 в адрес 10.10.10.10(REAL IP). Ниже приводится полная конфигурация с DST NAT.:
ASA Version 9.x
!
hostname ciscoasa

access-list OUTSIDE extended permit tcp any host 10.10.10.10 eq www


object network obj-192.168.100.0
network 192.168.100.0 255.255.255.0
nat (inside,outside) dynamic interface

!--- INSIDE NETWORK транслируется в адрес интерфейса OUTSIDE 
object network obj-10.10.10.10 host 10.10.10.10 nat (dmz,outside) static 172.20.1.10 !--- Статическая трансляция позволяющая хостам со
!--- стороны OUTSIDE получить доступ к WWW.
object network obj-10.10.10.10-1
host 10.10.10.10
nat (dmz,inside) static 172.20.1.10
!--- Статическая трансляция позволяющая хостам со
!--- стороны INSIDE получить доступ к WWW по MAPPED IP.
Destination NAT Achieved with Manual/Twice NAT Statement
ASA Version 9.x
!
hostname ciscoasa

!--- Output suppressed.

access-list OUTSIDE extended permit tcp any host 10.10.10.10 eq www

!--- Output suppressed.

object network obj-192.168.100.0
network 192.168.100.0 255.255.255.0
nat (inside,outside) dynamic interface

object network obj-10.10.10.10
host 10.10.10.10

object network obj-172.20.1.10
host 172.20.1.10

nat (inside,dmz) source dynamic obj-192.168.100.0 interface
 destination static obj-172.20.1.10 obj-10.10.10.10

!--- Static translation to allow hosts on the inside access
!--- to the WWW server via its outside address.

access-group OUTSIDE in interface outside

Комментариев нет:

Отправить комментарий