Я установил OpenVPN на свой сервер с помощью этого скрипта автоматической установки и скопировал сгенерированный файл конфигурации на мой клиент, также работающий с OpenVPN. Я хочу направить весь клиентский трафик через VPN, и я хочу, чтобы имена разрешались на стороне сервера. Весь трафик, кажется, успешно маршрутизируется, но имена разрешаются любым DNS-сервером, который я указываю в resolv.conf
клиента . Как я могу сделать так, чтобы они были разрешены на стороне сервера? Соответствующая конфигурация на стороне сервера:
root@marius:~# cat /etc/openvpn/server.conf | grep dhcp
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
Я не знаком с VPN-серверами, я не уверен, что этот "толчок" необходим, так как я не использую DHCP-клиент. Клиентский resolv.conf
(ручная установка, никогда не изменяется):
domain domain.name
search domain.name
# Local cache (dnsmasq)
nameserver 127.0.0.1
# VPN (doesn't work)
#nameserver 10.8.0.1
# ISP (doesn't work with VPN)
#nameserver 200.175.89.139
#nameserver 200.175.5.139
# Google (works with VPN)
nameserver 8.8.8.8
nameserver 8.8.4.4
Согласно официальному HOWTO от OpenVPN:
Когда используется redirect-gateway, клиенты OpenVPN будут направлять DNS-запросы через VPN, и VPN-сервер должен будет обрабатывать их. Это может быть достигнуто путем передачи адреса DNS-сервера подключающимся клиентам, который заменит их обычные настройки DNS-сервера во время активности VPN. Например:
push "dhcp-option DNS 10.8.0.1"
настроит клиентов Windows (или клиентов не Windows с некоторыми дополнительными серверными сценариями) для использования 10.8.0.1 в качестве своего DNS-сервера. Любой адрес, который доступен клиентам, может использоваться в качестве адреса DNS-сервера.
Но это, похоже, не работает, как уже упоминалось. Я полагаю, что для того, чтобы это работало, мой (VPN) сервер также должен быть DNS-сервером. Но нужно ли это? Почему сервер VPN не может обрабатывать перенаправленные DNS-запросы через свой resolv.conf
(не будучи DNS-сервером, так же, как он обрабатывает все остальное, не будучи сервером всего остального)? Я немного потерян здесь.
Я могу предоставить любые дополнительные файлы конфигурации, если это необходимо.