Настроим Cisco
быстро и просто

Cisco ASA. «Проброс портов» или static NAT

Август 5, 2019

Одна из самых частых проблем, связанных с настройкой Cisco ASA, это так называемый «проброс портов» (port forwarding), а по-научному настройка NAT для того, чтобы дать возможность пользователям из сети интернет заходить на внутренние серверы компании.

Базовые настройки NAT для доступа пользователей и внутренних ресурсов в интернет описаны в статье о базовой настройке Cisco ASA, а сам принцип использования технологии NAT для тех или иных случаев подробно описан в статье «Как использовать NAT». Здесь же будет будут описаны только настройки публикации внутренних ресурсов в сеть интернет.

Для реализации этого необходимо 2 составляющих:

  • Настройка Static NAT для нужных адресов и портов;
  • Разрешающие правила в списках доступа access-list.

cisco asa port forwarding static nat

В современных версиях Cisco ASA есть 2 способа реализации Static NAT – 1) через объекты (object NAT) и 2) вручную/двойной NAT (manual/twice NAT). Эти способы отличаются по логике настройки и синтаксису команд, но оба ведут к одному и тому же. В первом (object NAT) строки, описывающие правило трансляции адресов привязываются к конкретному объекту (имя + ip адрес). Во втором (manual NAT) в отдельной строке с помощью все тех же объектов указываются адреса оригинального пакета (source и destination) и преобразованного. Далее будут приведены настройки для обоих способов, а вы для себя уже решите какой из них подходит больше. А если не получается сделать «проброс портов» одним из способов, то попробуйте другой.

Важно!
Если у вас старое оборудование и версия IOS до 8.3, то пример написания строки для старого синтаксиса приведен в самом конце статьи
deltaconfig - cisco аутсорсинг

Object NAT

Создание объекта для внешнего адреса
object network OBJ_NAT_SERVER_XXX_EXT
host x.x.x.x

Для каждого порта создается отдельный объект с внутренним адресом сервера
object network OBJ_NAT_SERVER_XXX_INT_1433
host 192.168.1.100
object network OBJ_NAT_SERVER_XXX_INT_1433
nat (inside,outside) static OBJ_NAT_SERVER_XXX_EXT service tcp 1433 1433

Здесь и далее зеленым цветом будут отмечены части кода, отвечающие за внутренние ресурсы, а красным — внешние.
Второй объект для того же самого сервера 192.168.1.100, но с другим именем
object network OBJ_NAT_SERVER_XXX_INT_8080
host 192.168.1.100
object network OBJ_NAT_SERVER_XXX_INT_8080
nat (inside,outside) static OBJ_NAT_SERVER_XXX_EXT service tcp 8080 8080

Важно!
В зависимости от того, сколько внешних «белых» публичных адресов предоставляет вам провайдер, необходимо корректировать синтаксис команд.

Если провайдер предоставляет только один(!) статический адрес и это адрес внешнего интерфейса устройства, то в командах для NAT необходимо указывать « interface » (подразумевая внешний интерфейс outside)

Если провайдер выдает несколько (!) статических адресов и требуется задействовать один из них НЕ на внешнем интерфейсе, то для этого создается отдельный объект, для которого указывается конкретный адрес.

В случае наличия только одного адреса команда из последнего примера будет выглядеть так:
object network OBJ_NAT_SERVER_XXX_INT_1433
nat (inside,outside) static interface service tcp 1433 1433



Manual/Twice NAT

Создание объекта для внешнего адреса
object network OBJ_NAT_SERVER_XXX_EXT
host x.x.x.x

Создание объекта для внутреннего адреса
object network OBJ_NAT_SERVER_XXX_INT
host 192.168.1.100

Создание объектов для портов и протоколов, которые должны быть видны извне
object service SERVICE_TCP_1433
service tcp source eq 1433
object service SERVICE_TCP_8080
service tcp source eq 8080

Правило трансляции для каждого порта/протокола записывается в отдельной строке
nat (inside,outside) source static OBJ_NAT_SERVER_XXX_INT OBJ_NAT_SERVER_XXX_EXT service SERVICE_TCP_1433 SERVICE_TCP_1433
nat (inside,outside) source static OBJ_NAT_SERVER_XXX_INT OBJ_NAT_SERVER_XXX_EXT service SERVICE_TCP_8080 SERVICE_TCP_8080

Как уже писалось ранее, если в наличии есть только один «белый» адрес и он уже используется на интерфейсе, то вместо объекта с указанием внешнего адреса, в команде необходимо использовать слово interface.
nat (inside,outside) source static OBJ_NAT_SERVER_XXX_INT interface service SERVICE_TCP_1433 SERVICE_TCP_1433

Проверка

Для проверки текущих настроек используйте команду sh nat detail. она покажет все текущие правила трансляции, в которых будут указаны как внешние адреса, так и внутренние для каждой строки
 

Команды для старого оборудования (версия Cisco ASA до 8.3)

Правила трансляции записываются построчно – по одной строчке для каждого порта. Обратите внимание, что в начале строки в скобках указана последовательность интерфейсов внутренний/внешний, при этом далее следует указание адресов в обратной последовательности внешний/внутренний. Сами команды выглядят так:

Если необходимо задействовать адрес НЕ на внешнем интерфейсе
static (inside,outside) tcp x.x.x.x 1433 192.168.1.100 1433 netmask 255.255.255.255
Если необходимо задействовать адрес внешнего интерфейса устройства.
static (inside,outside) tcp interface 1433 192.168.1.100 1433 netmask 255.255.255.255

Разрешение доступа в access list

Помимо настроек NAT для Object NAT и Manual NAT необходимо также разрешить доступ для нужных соединений. Для этого в access list, привязанному ко внешнему интерфейсу, необходимо добавить соответствующие строки. Обратите внимание, что в правилах разрешается доступ с любых адресов (any) ко внутреннему адресу сервера.
access-list ACL_OUTSIDE_IN line 1 extended permit tcp any object OBJ_NAT_SERVER_XXX_INT eq 1433
access-list ACL_OUTSIDE_IN line 2 extended permit tcp any object OBJ_NAT_SERVER_XXX_INT eq 8080

Однако, если у вас старое оборудование и версия ASA старше 8.3, то в списках доступа необходимо указывать внешний адрес.
access-list ACL_OUTSIDE_IN line 1 extended permit tcp any object OBJ_NAT_SERVER_XXX_EXT eq 1433
access-list ACL_OUTSIDE_IN line 2 extended permit tcp any object OBJ_NAT_SERVER_XXX_EXT eq 8080

Важно!

Более подробно о принципах и тонкостях  создания и наполнения списков доступа читайте в статье Cisco ASA. Основы. Доступ в интернет.

Перейти к оглавлению

avatar
×

Форма для связи