Ubuntu 18.04 openvpn'ye bağlandığında DNS çözünürlüğü yok


39

Gnome Network-manager üzerinden bir VPN ağına bağlandığımda DNS çözünürlüğünü kaybediyorum ve pratikte VPN ağı içindeki veya dışındaki kaynaklara erişemiyorum.

Ubuntu 16.04'ü kullanırken VPN'i kullanırken, " /etc/resolv.conf/" dosyası bağladığım (VPN) ağının DNS sunucularını içerecekti. Şimdi her zaman aşağıdaki girişleri içerir:

nameserver 127.0.0.53
search myprovider.com

Anladığım kadarıyla 127.0.0.53tarafından kullanılan DNS saplamasının adresi system-resolved.

Bunun bir hata olduğundan şüpheleniyorum, çünkü VPN, Ubuntu 16.04’te iyi çalışıyordu. Bir VPN servisi kullanırken ağımın DNS sunucularını ayarlayabilmemin bir yolu var mı?

Güncelleme:

OpenVPN ağına gönderinin sonunda ekli bir yapılandırma dosyasıyla bağlanmayı denedim, ancak aşağıdaki hatayı alıyorum:

 Authenticate/Decrypt packet error: cipher final failed

Sunucunun lzo sıkıştırma kullandığını ve onu da etkinleştirdiğimi doğruladım. Bağlantı etkin kalır ancak VPN'in içindeki veya dışındaki hiçbir sayfaya gidemiyorum.

Aşağıda listelenen yapılandırma dosyasına, cevaplara gönderilen çözümleri dahil ettim.

 client
 dev tun
 proto udp
 remote openvpn.bibsys.no 1194
 remote my-server-2 1194
 resolv-retry infinite
 nobind
 user myuser
 group myuser
 persist-key
 persist-tun
 ca ca-cert.pem
 cert openvpn.crt
 key openvpn.key
 cipher AES-256-CBC
 comp-lzo yes
 script-security 2
 up /etc/openvpn/scripts/update-systemd-resolved
 down /etc/openvpn/scripts/update-systemd-resolved
 down-pre

1
Aynen çözülemeyeceğini Buna benzer bir sorun ayıklarken, kullandığım resolvectl statusve resolvectl helpbenim belirli bir çözüm dışarı rakama.
notbad.jpeg

Yanıtlar:


25

Bu blog yazısında bir çözüm buldum . Bahsedilen iki çözüm varken, ikincisini kullanmayı tercih ediyorum çünkü DNS'imin OpenVPN sunucusu tarafından ayarlandığı anlamına geliyor (ilk çözüm, OpenVPN sunucusuna bağlı olsam da olmasam da aynı DNS sunucularını kullanıyorum).

Kısacası:

  • sudo mkdir -p /etc/openvpn/scripts
  • sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
  • sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved

Ardından, yukarı / aşağı komut dosyalarını değiştirerek OpenVPN müşteri dosyanızı (örneğin, client.ovpn) düzenleyin:

script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved

(Orijinal yukarı / aşağı ayarlarını yorumladım).


Eğer bir gnome openvpn yardımcı programını kullanıyorsa, config.ovpn dosyası nerede saklanmalı?
orestis

1
config.ovpn"bulunamadı" - bağlantı için kullanılan istemci yapılandırma dosyası. Siz onu üretirsiniz veya OpenVPN sağlayıcınız tarafından size verilir (ve aranmayabilir config.ovpn- buna herhangi bir şey denebilir client.ovpn).
Andy Turfer

Bu sadece mükemmel çalışıyor.
Ahsanul Haque,

2
AnladımWARNING: Failed running command (--up/--down): external program fork failed
blockhead

Ne yazık ki bu, tcp kullanan bir vpn için işe yaramadı, vpn dışındaki siteler çözülmedi, bu yüzden client.pritunl.com/#install kullanmaya başladım yararlı buldu
Saisurya Kattamuri

48

Sorun

Dosya /etc/resolv.conf, /etc/openvpn/update-resolv-confkomut dosyası tarafından güncellenmez, çünkü resolvconfvarsayılan olarak ubuntu 18.04'te yüklü değildir.

Aslında, bu betiğin ilk satırlarından biri /sbin/resolvconfyürütülebilir dosyayı kontrol eder :

[ -x /sbin/resolvconf ] || exit 0

Resolvconf'u yüklemek apt-get, /etc/openvpn/update-resolv-confkomut dosyası /etc/resolv.confdosyayı basılan DNS girişiyle güncellediğinden bir çözüm değildir, ancak tun cihazı bunu görmezden geliyor gibi görünmektedir.

Çözüm

  1. Ubuntu 18.04 kullanır systemd-resolved, yapmanız gereken tek şey böyledir için openvpn yardımcı komut dosyası yüklemek systemd-resolvedyoluyla

    sudo apt install openvpn-systemd-resolved
    

    veya bu GitHub talimatlarıyla

  2. config.ovpnDosyanızı şu satırları ekleyerek güncelleyin :

    script-security 2
    up /etc/openvpn/update-systemd-resolved
    down /etc/openvpn/update-systemd-resolved
    down-pre
    

    /etc/openvpn/update-resolv-confKonfokusun aşağı ve yukarı katılması yerine.

  3. DNS Sızıntısını önlemek için, bu satırı config.ovpndosyanın sonuna eklemelisiniz ( bu sistemd yayını yorumuna göre ):

    dhcp-option DOMAIN-ROUTE .
    

1
Benim için Ubuntu 18.04'te çalışan çok teşekkürler. Ve şunu belirtmek isterim ki, bu parametre script-security 2hala yukarı / aşağı satırlardan önce gereklidir, aksi halde program bir hatayla düşer (OpenVPN 2.4.4)
lucidyan

Yardımcı oldu mu sevindim :) Cevabımdaki son cümleyi değiştirdim, benim durumumda script-security 2 gerekli değildi. Belki de openvpn istemcisini root olarak çalıştırıyorum (sudo ile)
Qlimax

1
@Qlimax Bu ayarları gnome openvpn istemcisine nasıl aktardığımızı biliyor musunuz?
orestis

2
@ orestis bu paketi yüklemelisiniz. sudo apt-get install network-manager-openvpn-gnome Sonra .ovpn config dosyalarını gnome ağ yöneticisine aktarabilmelisiniz. askubuntu.com/questions/187511/… UI zaman içinde değişti, ayarları-> ağ-> vpn
Qlimax

1
Bunun bir çoğunuz için işe yarayacağına şaşırdım: bir ovpn.config var, evet, ancak NetworkManager kullanmıyor gibi görünüyor. Özellikle yukarı / aşağı komut dosyalarını değiştirmek için dosyayı düzenlediniz ve yeniden içe aktardınız. Çünkü bu opak ikiliyi / usr / lib / NetworkManager / nm-openvpn-servis-openvpn-yardımcılarını kullanamadım, bunun için dokümantasyon bulamadım. Ovpn.config dosyasının yeniden içe aktarılması gerekirse, lütfen cevabı değiştirin.
Harald

4

Aslında, bu soruna çok daha kolay bir çözüm var. Sorun, DNS trafiği ve Ubuntu 18'in bunu nasıl yönettiği ile ilgilidir. Varsayılan olarak IP iletimi devre dışı bırakılmıştır; bu da uygun ağ sağlamak için OpenVPN'in ihtiyaç duyduğu şeydir. Tek yapmanız gereken şu komutu çalıştırmak:

sudo nano /etc/sysctl.conf

Bu dosyayı açtıktan sonra içeren satırı bulun net.ipv4.ip_forward. Bu satır yorum yapıldıysa, satırın önündeki # işaretini kaldırın (yorum yapılmadıysa, başka bir sorun yaşarsınız). Dosyayı kaydedin ve ardından OpenVPN sunucusu örneğinizi yeniden başlatın.

Bu düzeltme, Ubuntu 18'e yükseltmeden sonra istemcide veya OpenVPN kodunda herhangi bir değişiklik gerektirmez. Test edildi ve onaylandı.

Ancak, bu açıkça sunucuyu yönetmenizi gerektirir. Ve ne yazık ki, bu hata 18.04 ile başkaları tarafından yönetilen bir OpenVPN sunucusuna yeni bağlananlar için var.


benim için işe yaramadı. Sizin durumunuzda bunun problem olduğunu nasıl belirlediniz?
saat

UYARI: ASLA openvpn istemcisinde ip_forward özelliğini etkinleştirmenize gerek yoktur ! bu bir güvenlik riskidir. Openvpn sunucusunda , kullanılan yapılandırmaya bağlı olarak ihtiyacınız olabilir ve bu nedenle bu yorum görünmüyor.
higuita

2

Ubuntu 18.04 tarihinde 13 Eylül 2018'de test edilmiştir.

İhtiyacınız olanı komut satırı ile ayarlamak için başka bir yararlı komut var. Ancak benim durumumda VPN bağlantınızı hem komut satırı hem de GUI ile kontrol edebilirsiniz.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- Varsayılan olarak gereklidir, ancak hiçbir şeyi etkilemez

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default uzak ağ geçidini varsayılan yol olarak kullanmamalı

Ve çok daha fazla ilgilenen son dokunuş:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

Daha sonra vpn'yi GUI ile kontrol edebilir veya aşağıdaki komutları kullanabilirsiniz:

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com


0

Ben de etkilendim. Benim durumumda OpenVPN'i dahili bir isim sunucusuyla (VPN'in içinde) kullanıyorum. Bu, Ubuntu 17.10'a kadar çalıştı (/etc/nsswitch.conf içindeki "hosts: dns dosyaları" ile).

/etc/resolv.conf, openvpn komut dosyaları tarafından doğru şekilde güncellendi (openvpn istemci yapılandırma dosyasında / etc / openvpn / update-resolv-conf çağrıları aracılığıyla).

Ancak, VPN'deki ana bilgisayarlar için ad çözümlemesi artık çalışmıyordu (ya da en azından düzensizce ... Yerel DNS önbelleği adları seçiyordu, ancak çok uzun bir süre sonra).

Bu sorunu çözmek için yardımcı olmak, hatta hatta çözmek için çok erken olsa da, aşağıdaki paketi yüklemek:

sudo apt yüklemek openvpn-systemd-resolved

Birkaç gün içinde, sorunumu çözüp çözmeyeceğimi daha fazla deneyimleyeceğim.

Eğer etkilendiyse, lütfen bunu dene ve yorum yap!

Alkış,

Michael.


Sonunda, bir çözüm gibi görünmüyor. Yine sorunum var. Sanırım başka bir şey işe
yaradı

1
Belki de cevabını sildin? Kararın çoktan aşağıda olduğu
anlaşılıyor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.