Вот моя конфигурация сервера OpenVPN:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh4096.pem
topology subnet
server 10.224.127.0 255.255.255.0 # AKA 10.224.127.0/24
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 10.0.9.102"
push "dhcp-option DNS 10.0.8.186"
push "dhcp-option DOMAIN dc1.lam.myname.net aws.myname.net myname.local"
keepalive 10 120
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
cipher AES-256-CBC
auth SHA256
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 TLS-DHE-RSA-WITH-AES-256-CBC-SHA TLS-DHE-RSA-WITH_AES-128-CBC-SHA
client-cert-not-required
username-as-common-name
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
Я в основном хочу сделать следующее:
10.224.127.0/24
ассортимент.10.0.0.0/8
по каналу VPN.Так что это «в основном» работает, с некоторыми оговорками. Разрешение DNS работает только в течение нескольких секунд после того, как VPN-сервер подключается к сети, а затем перестает работать. Я могу без проблем маршрутизировать TCP-пакеты независимо от того, работает DNS или нет.
Почему DNS работает только в течение первых нескольких секунд моего подключения? Что я делаю не так?
Клиенты, которые я планирую использовать, - это Linux и OSX. Как я могу передать им разрешение DNS?
Поскольку опция DNS push OpenVPN работает только с Windows, я предполагаю, что это ОС, под которой работают ваши VPN-клиенты.
Вероятно, что (как упомянул @ HåkanLindqvist) некоторая часть программного обеспечения изменяет ваши настройки DNS. Это обычная особенность программного обеспечения, связанного с безопасностью (например, антивируса), поскольку поддельный DNS-сервер может использоваться для т. фишинговые атаки. Вам нужно будет найти это приложение самостоятельно и, если возможно, запустить сценарий из OpenVPN, который отключит функцию защиты DNS при подключении.
Кроме того, если вы используете PAM, вам необходимо предоставить учетные данные из пользовательского пространства, поэтому OpenVPN нельзя запускать как службу Windows. Вы используете графический интерфейс OpenVPN или только командную строку? Вы начинаете с повышенных привилегий?
Если вы хотите использовать DNS-адреса, предоставленные сервером, под клиентом UNIX, вам понадобится сценарий, который будет запускаться из OpenVPN при подключении, который считывает среду OpenVPN и помещает полученные значения в /etc/resolv.conf. Обратитесь к руководству для справки. Другой вариант - установить dnsmasq локально на клиенте и предоставляем --server /LOCAL_DOMAIN/LOCAL_DNS_IP
опции, которые обеспечат разрешение имен через VPN-туннель только для хостов в выбранном домене (ах).