VPN работает, кроме запросов DNS. Проблема с файрволом (Cisco ASA 5505)?

Вопрос или проблема

У меня следующая настройка:

LAN ->  DHCP / DNS / VPN сервер (OSX 10.6) -> Cisco ASA 5505 -> WAN

Подключение к LAN через VPN работает нормально. Я получаю все детали правильно и могу пинговать любой хост во внутренней сети по их IP. Однако я не могу выполнять никаких запросов на разрешение имен. Я просмотрел журналы и нашёл эту деталь в журнале межсетевого экрана:

3   Sep 08 2010 10:46:40    305006  10.0.0.197  65371           создание трансляции portmap не удалось для udp src внутри:myhostname.local/53 dst внутри:10.0.0.197/65371

Порт 53 — это DNS-сервисы, не так ли? Из-за этой записи в журнале я думаю, что проблема в межсетевом экране, а не на сервере. Есть идеи? Пожалуйста, имейте в виду, что у меня очень мало знаний и опыта с таким межсетевым экраном, и единственный опыт, который у меня есть, — это с консолью ASDM GUI, а не с консолью CLI.

1) Ваши клиенты устанавливают туннель напрямую с ASA или с “VPN сервером” на вашей диаграмме?
2) Вашим VPN-клиентам присваивается тот же диапазон IP, что и у вашей внутренней сети, или отдельный диапазон?

Судя по записи в журнале, ваши клиенты устанавливают туннель к ASA и получают другую подсеть, чем внутренняя сеть. Если это так, я думаю, вам нужно создать правило исключения NAT на вашем ASA, чтобы сообщить ему не пытаться NAT-трафик между вашим внутренним диапазоном IP и диапазоном IP VPN. Это сохраняет ваши источники (подсеть VPN) и целевые сети (внутренняя подсеть), чтобы ASA не думал, что ему нужно общее/частное правило NAT для доступа к внутренней сети на основе 2 интерфейсов, через которые поступает трафик. В GUI это находится в: вкладка Конфигурация>>Межсетевой экран>>Правила NAT, хотя у меня были смешанные результаты при создании таких правил в GUI – возможно, придется перейти к CLI.

На мой взгляд, это должно работать с конфигурацией ASA “из коробки”. Проверьте наличие настроек DHCP на ASA, которые могут переопределять ваши настройки с вашего DHCP-сервера LAN.

Линии, на которые нужно обратить внимание, это dhcpd domain, dhcpd dns и dhcpd auto_config.

Настройка, которую я использую, довольно надежна, но ASA осуществляет DHCP для местных клиентов – это означает, что если VPN падает, пользователи всё равно имеют доступ к локальным системам.

У меня нет опыта с конкретным оборудованием, с которым вы работаете. Тем не менее, с openvpn вам нужно настроить мост для работы DNS-запросов. Судя по всему, у вас уже настроен мостовой VPN (т.е. ваш IP-адрес клиента находится в том же диапазоне, что и адреса сети назначения).

Когда вы настраиваете мостовую сеть таким образом, ваш DNS-сервер может все ещё привязываться к исходному ethernet интерфейсу, а не к новому мостовому интерфейсу.

Если это так, пакеты не будут маршрутизироваться правильно. Настройте DNS-сервер для привязки к интерфейсу моста или, что еще лучше, к IP-адресу интерфейса моста, чтобы он работал независимо от того, активен ли VPN или нет.

У меня была такая же проблема с Cisco VPN Client, работающим с USB GSM модемом. Проблема была решена с помощью следующей команды в ASA Cisco ASA.

group-policy TestVPN attributes
  split-dns value dominioprivado1.com dominioprivado1.org dominioprivado1.net 

Где “dominioprivado1.com dominioprivado1.org dominioprivado1.net” – это DNS-зоны, которые содержат имена приватных серверов.

Ответ или решение

Вопрос: VPN работает, за исключением DNS-запросов. Проблема с файрволом (Cisco ASA 5505)?

Ваша проблема с выполнением DNS-запросов через VPN-соединение может быть связана с несколькими факторами конфигурации сети и настройками файрвола Cisco ASA 5505. Рассмотрим наиболее вероятные причины и способы их устранения.

Анализ проблемы

Ваша схема выглядит следующим образом:

LAN -> DHCP / DNS / VPN-сервер (OSX 10.6) -> Cisco ASA 5505 -> WAN

Как вы упомянули, туннель VPN устанавливается успешно, и вы можете пинговать внутренние IP-адреса, однако DNS-запросы не проходят. Лог файрвола сообщает о проблеме с созданием трансляции порта для UDP, что может указывать на конфигурацию NAT.

Возможные причины и решения

  1. Проблемы с NAT: Лог-файл указывает на ошибку "portmap translation creation failed". Это связано с тем, что маршрутизатор (ASA) не понимает, как обрабатывать пакеты между VPN-подключениями и внутренней сетью. Вам нужно создать правило исключения NAT, чтобы ASA не пытался выполнять NAT между вашим внутренним диапазоном IP и диапазоном VPN. Это можно сделать через GUI ASA или через интерфейс CLI.

    • В GUI: Перейдите в раздел Configuration -> Firewall -> NAT Rules и создайте правило исключения для вашего VPN-подключения. Убедитесь, что источником является ваш VPN-подсет, а целью — ваш внутренний диапазон.

    • В CLI:

      object network obj-vpn
      subnet [ваша_VPN_подсеть] [маска_подсети]
      nat (inside,outside) source static obj-vpn obj-vpn
  2. DHCP и DNS настройки: Убедитесь, что ваши VPN-клиенты получают правильные DNS-серверы через DHCP. Проверьте настройки DHCP на ASA, которые могут перекрывать настройки вашего локального DHCP-сервера. Ключевые строки в конфигурации:

    • dhcpd domain
    • dhcpd dns
    • dhcpd auto_config

    Настройки DNS должны указывать на ваш внутренний DNS-сервер, чтобы клиенты могли правильно разрешать имена хостов.

  3. DNS-сервер: Если ваш VPN настроен в режиме моста, убедитесь, что DNS-сервер привязан к интерфейсу моста или IP-адресу этого интерфейса. Это обеспечит правильный маршрутизация запросов DNS, независимо от состояния VPN.

  4. Настройки группы и разделения DNS: Возможно, вам нужно будет использовать настройку split-dns, чтобы указать доменные зоны, для которых ваши VPN-клиенты должны использовать внутренние DNS-серверы.

    group-policy TestVPN attributes
     split-dns value dominioprivado1.com dominioprivado1.org dominioprivado1.net

Рекомендации по настойкам

  • Проверка конфигурации: Проверьте конфигурацию на ASA и убедитесь, что все адреса и правила настроены корректно. Также убедитесь, что ваши клиенты подключаются к ASA, а не напрямую к вашему VPN-серверу.

  • Тестирование: После внесения изменений протестируйте соединение, выполняя DNS-запросы с VPN-клиента. Если проблема остается, попробуйте использовать инструменты для отладки, такие как Wireshark, чтобы отслеживать DNS-пакеты и выяснить, где они блокируются.

  • Документация и поддержка: Если вы не можете решить проблему самостоятельно, рассмотрите возможность обращения к документации Cisco или техподдержке.

Следуя этим рекомендациям и выполняя настройки, описанные выше, вы сможете решить проблему с DNS-запросами внутри вашего VPN-соединения. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...