ASA: порт VPN и статический PAT для DMZ на одном публичном IP
Один публичный адрес, две службы. Сведите в таблицу адрес, транспорт и порт для слушателя VPN и PAT для DMZ, прежде чем одна займёт запись другой.
Две службы, один публичный адрес и имя DNS, которое будто бы резервирует порт. Не резервирует. Прежде чем публиковать сервер DMZ рядом с записью VPN на ASA, запишите кортежи записей и проверьте их по порядку; первое поле, совпадающее с существующей службой, - это место, где план останавливается. Всё ниже предполагает, что VPN завершается на самом устройстве, а не на внутреннем сервере.
Запишите пять полей, прежде чем писать команду
Для каждой публичной записи укажите семейство адресов, публичный адрес, транспорт, публичный порт и владельца. Владелец - либо локальная служба ASA, либо транслированный внутренний сервер. Две записи могут делить адрес и при этом быть разными кортежами, а две записи могут выглядеть по-разному на схеме и сталкиваться на устройстве.
Держите второй столбец для реального порта - того, на котором внутренний сервер действительно слушает. Публичный порт и реальный порт - независимые решения, и в тот момент, когда вы сливаете их в один столбец, вы теряете возможность позже прочитать собственный перевод.
| Public entry | Owner | Real side |
|---|---|---|
| TCP 443 on the outside address | ASA VPN listener | Appliance-local, no translation |
| TCP 8443 on the outside address | Static PAT | DMZ server TCP 443 |
| UDP 443 on the outside address | Check the effective listeners | Possibly the VPN data path |
Читайте реальные и отображённые позиции правильно
Начинайте с кортежа, который у вас уже есть, а не с сервера, который хотите добавить. Иллюстративное разделение оставляет одобренную запись VPN на публичном TCP 443 и публикует сервер DMZ HTTPS на публичном TCP 8443, пока этот сервер продолжает слушать на 443:
Public TCP 443 -> ASA VPN listener
Public TCP 8443 -> DMZ server TCP 443
В развёрнутой команде реальная служба и отображённая служба стоят на фиксированных позициях, и их перестановка описывает другое отображение, а не сломанное. Это самый частый способ, которым работающий перевод превращается в головоломку: конфигурация корректна, она просто указывает в другое место.
Руководство ASA 9.16 NAT от Cisco описывает статический PAT, использование адреса интерфейса и значения реального и отображённого порта. Читайте раздел для той версии, которую вы действительно запускаете; команда, запомненная с более старой платформы, не является полной текущей конфигурацией.
Считайте транспорт частью резервирования
TCP 443 и UDP 443 - разные кортежи, и это различие не даёт вам UDP бесплатно. У VPN могут быть отдельные слушатели TLS и DTLS, а другие настроенные службы могут уже занимать нужный вам транспорт. Сведите в таблицу фактические слушатели и политику доступа, вместо того чтобы считать веб-страницу всей записью VPN.
Второе имя хоста, разрешающееся в тот же адрес, тоже не решает конфликт на уровне транспорта. DNS - это отображение имени в адрес, а не брокер портов, и публикация сервера через PAT - не та же операция, что перенос слушателя VPN на другой порт.
Если запись VPN действительно должна переехать, четыре вещи меняются вместе: профиль клиента, публичный URL, фильтрация выше по потоку и каждый транспорт, который использует развёртывание. Сделайте их в одном окне, а не по одному. Держите отдельный путь управления к устройству открытым, прежде чем трогать службу, через которую вы до него добираетесь. Без второго пути переезд - это изменение, которое нельзя отменить снаружи.
Проверяйте снаружи новыми подключениями
Разрешите только предусмотренное приложение DMZ в рамках действующей политики доступа, затем проверьте соответствующий порядок трансляции, обратный путь сервера и имя хоста в сертификате. PAT меняет сетевой пункт назначения; он не даёт доступа к приложению и не исправляет сертификат, в котором указан другой хост.
Проверьте обе службы новыми подключениями с авторизованного внешнего хоста: VPN должен по-прежнему устанавливаться, а запрос DMZ должен доходить до своего слушателя. Установленный сеанс может сохранять прежнее состояние, поэтому он ничего не доказывает об отображении, которое вы изменили минуту назад.
Замкните цикл, обновив реестр записей тем, что вы развернули, включая каждый слушатель, который вы обнаружили, а не создали. Следующий человек, публикующий службу на этом адресе, начнёт с вашей таблицы, и неверная строка там стоит дороже, чем неверная команда здесь.