OpenVPN не работает на виртуальной машине GCP Compute Engine.

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

Я настроил VPN-сервер по этой инструкции. https://www.cherryservers.com/blog/install-openvpn-server-ubuntu

У меня есть возможность подключаться к серверу, но затем я не могу получить доступ ни к чему, похоже, что DNS не работает. Я пробовал разные конфигурации, но безуспешно. Однако, если я подключаюсь по SSH к экземпляру и пингуя ресурсы как внутренние, так и внешние, это работает. Поэтому, похоже, проблема заключается в OpenVPN или в настройках GCP.
Конфигурация клиента

remote 35.238.9.79 1194
client
nobind
proto udp 
user nobody
group nogroup
cipher AES-256-CBC
auth SHA512
redirect-gateway def1 bypass-dhcp
key-direction 1
; script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
verb 3
setenv PUSH_PEER_INFO

; script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE .

Конфигурация сервера

port 1194
proto udp4
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key # Этот файл должен храниться в секрете
dh dh.pem
topology subnet
server 172.16.20.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.8.4"
client-to-client
keepalive 10 120
;tls-auth ta.key 0 # Этот файл является секретным
cipher AES-256-CBC
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512

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

Проблемы с работой OpenVPN на GCP Compute Engine VM: Решения и Рекомендации

Введение

Настройка OpenVPN-сервера на виртуальной машине (VM) в Google Cloud Platform (GCP) может быть сложной задачей, особенно если возникают проблемы с доступом после подключения клиента. В данном руководстве мы рассмотрим возможные причины и решения проблемы, когда OpenVPN работает, но не позволяет клиенту получить доступ к ресурсам из-за проблем с разрешением DNS.

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

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

Основные Подозреваемые

  1. Настройки DNS:

    • DNS-запросы не проходят через туннель OpenVPN.
  2. Настройки Маршрутизации:

    • Нет правильных маршрутов для доступа к интернету через VPN.
  3. Правила Брандмауэра (Firewall):

    • Возможно, GCP не позволяет трафику из вашего подсети VPN выходить в интернет.
  4. Конфигурация OpenVPN:

    • Ошибки в настройках клиента или сервера OpenVPN.

Проверка Настроек

1. Проверка Конфигурации DNS

Проверьте, правильно ли настроены параметры DNS на стороне сервера OpenVPN. В вашей конфигурации сервера вы уже отправляете опции DNS в конфигурации клиента:

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.8.4"

Это означает, что после подключения клиент должен использовать эти DNS-серверы. Убедитесь, что на клиенте действительно применяются эти настройки. Вы можете выполнить команду cat /etc/resolv.conf на клиенте после подключения к VPN и посмотреть, какие DNS-серверы используются.

2. Проверка Правил Брандмауэра в GCP

Убедитесь, что вы настроили правила брандмауэра для вашего GCP VM правильно:

  • Откройте Google Cloud Console.
  • Перейдите в раздел "VPC Network" > "Firewall".
  • Убедитесь, что у вас есть правило, разрешающее входящий трафик на порт 1194 для UDP.
  • Создайте правило, разрешающее исходящий трафик для всей подсети вашего VPN на адреса назначения (например, 0.0.0.0/0).

3. Проверка Настроек маршрутизации

Проверьте настройки маршрутизации на сервере OpenVPN. Убедитесь, что вы используете redirect-gateway def1, что должно автоматически обновлять маршруты при подключении клиента.

4. Логи OpenVPN

Для более детального анализа, проверьте логи OpenVPN на сервере. Логи могут содержать информацию о том, почему DNS-запросы не проходят. Для этого вы можете использовать следующую команду:

tail -f /var/log/openvpn/openvpn.log

Вы также можете увеличить уровень детализации логов, изменив значение verb на более высокое (например, verb 5) в конфигурации, чтобы получить более подробную информацию.

Заключение

Проблемы с OpenVPN на GCP могут быть вызваны множеством факторов, включая неправильные настройки DNS, управляемые брандмауэром правила и отсутствие необходимых маршрутов. Проверка и исправление вышеперечисленных параметров помогут вам решить проблему с доступом к интернет-ресурсам после подключения к OpenVPN. В случае продолжения проблем следует обратиться в службу поддержки Google Cloud для дополнительной помощи.

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

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