Вопрос или проблема
Я настроил 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-соединения.
Основные Подозреваемые
-
Настройки DNS:
- DNS-запросы не проходят через туннель OpenVPN.
-
Настройки Маршрутизации:
- Нет правильных маршрутов для доступа к интернету через VPN.
-
Правила Брандмауэра (Firewall):
- Возможно, GCP не позволяет трафику из вашего подсети VPN выходить в интернет.
-
Конфигурация 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 для дополнительной помощи.