spoiler

пятница, 3 мая 2013 г.

Настройка NAT на ASA5505 (v9.0(2))

В сети уже имеется установленная и настроенная ASA5505 с минимальной лицензией. Необходимо пробросить внешний порт, предположим 8081 на внутренний Web-сервер.

Так как до этого с ASA работал мало, воспользуемся советами из вот этого блога.

    Исходные данные:
  • Внешний интерфейс ASA(который смотрит в инет): outside
  • Внешний порт, по которому будет доступ к Web-серверу:8081
  • Внутренний интерфейс, к которому в том числе подключен Web-сервер: inside
  • Внутренний порт на Webserverе: 80
  • IP адрес Web-сервера: 172.16.4.4
Создаем объект определяющий Web-сервер:

ciscoasa(config)#object network HWebServer
ciscoasa(config-network-object)#host 172.16.4.4
ciscoasa(config-network-object)#description OutsideWebserver

Теперь необходимо прописать соответствующее правило NAT. Для этого вначале надо определиться, что в ASA NAT настраивается и работает немного не по классическим правилам. Если в классическом случае мы должны определиться откуда куда будет проходить трансляция адресов, то в ASA если мы прописали NAT в одну сторону, он автаматически начинает работать и во вторую сторону. То есть, если мы скажем что, во всех исходящих пакетах с сервера 172.16.4.4 и порта 80, надо заменить источник на адрес внешнего интерфейса и 8081 порт, то создастся также и обратное правило. То есть все пакеты приходящие на 8081 порт внешнего интерфейса будут перекидываться на наш Web-сервер. Что собственно нам и надо. Далее в ASA есть еще одно отличие от классической настройки NAT: правило трансляции можно прописать в двух разных местах, и будут они работать одинаково.
1 вариант - прописываем NAT прямо в объекте, определяющем Web-сервер

ciscoasa(config)#object network HWebServer
ciscoasa(config-network-object)# nat (inside,outside) static interface service tcp 80 8081

2 вариант - прописываем в разделе глобальной конфигурации. Для этого создаем объекты, указывающие какие сервисы мы натим и куда.

ciscoasa(config)#object service HTTP
ciscoasa(config-service-object)#service tcp destination eq www
ciscoasa(config-service-object)#object service OUT_HTTP
ciscoasa(config-service-object)# service tcp source eq 8082

И само правило:

ciscoasa(config)# nat (inside,outside) static HWebServer interface service HTTP OUT_HTTP

Если вам необходимо открыть несколько портов, то вам придется либо прописывать несколько объектов, каждый со своим правилом NAT. Либо писать несколько правил NAT в глобальной конфигурации.

И как всегда все команды для копипаста в одном блоке =) :
1 вариант

object network HWebServer
host 172.16.4.4
description OutsideWebserver
nat (inside,outside) static interface service tcp 80 8081

2 вариант

object network HWebServer
host 172.16.4.4
description OutsideWebserver
object service HTTP
service tcp destination eq www
object service OUT_HTTP
service tcp source eq 8082
nat (inside,outside) static HWebServer interface service HTTP OUT_HTTP


Не забываем открыть доступ, если используете access-list. В ранних версиях софта (до 8.3) необходимо было указывать внешний IP и порт, а теперь те, в которые мы только что сделали NAT.

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