mendapatkan openconnect vpn untuk bekerja melalui network-manager

10

ini adalah masalah yang sama seperti di sini: Mendapatkan openconnect vpn untuk bekerja melalui gui , tetapi tambahan saya untuk itu dihapus dan saya diminta untuk membuat pertanyaan baru.

sebenarnya, ada sejumlah orang yang mengajukan pertanyaan serupa di sini, semuanya dengan 0 tanggapan.

versi perangkat lunak: ubuntu 14.04, openconnect 5.02

masalah utama: saya mencoba menambahkan koneksi vpn ke dalam network-manager, menggunakan openconnect. ketika saya memberikan nama pengguna dan kata sandi vpn saya, ini berhasil terhubung, tetapi saya tidak dapat menyelesaikan dns.

jika saya menjalankan openconnect di terminal via sudo, dns berfungsi.

sudo openconnect -u <username> https://<vpn concentrator name>

keterangan lebih lanjut:

1a. ketika terhubung melalui openconnect dan network-manager walaupun saya telah secara eksplisit menambahkan dns dan domain pencarian di bawah tab ipv4, hanya domain pencarian yang berakhir di /etc/resolv.conf. bahkan jika saya tidak menyediakan dns dan mencari domain, saya dapat melihat di log bahwa itu mendapatkan informasi itu dari vpn concentrator. lagi, domain pencarian diperbarui dengan benar. [log di bawah]

1b. ketika terhubung melalui sudo di terminal, resolv.conf diisi dengan benar dengan dns dan domain pencarian meskipun saya belum menambahkan informasi itu di baris perintah atau menyediakan path ke skrip vpnc. itu harus mendapatkannya dari vpn concentrator. [log juga di bawah ini]

2a. saat menghubungkan melalui openconnect dan network-manager, antarmuka baru 'vpn0' dibuat.

2b. saat menghubungkan melalui sudo dan baris perintah, antarmuka baru 'tun0' dibuat.

log saat menghubungkan melalui manajer jaringan:

NetworkManager[784]: <info> Starting VPN service 'openconnect'...
NetworkManager[784]: <info> VPN service 'openconnect' started (org.freedesktop.NetworkManager.openconnect), PID 4513
NetworkManager[784]: <info> VPN service 'openconnect' appeared; activating connections
NetworkManager[784]: <info> VPN plugin state changed: init (1)

Di sinilah ia meminta kata sandi saya

NetworkManager[784]: <info> VPN plugin state changed: starting (3)
NetworkManager[784]:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/vpn0, iface: vpn0)
NetworkManager[784]:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/vpn0, iface: vpn0): no ifupdown configuration found.
NetworkManager[784]: <warn> /sys/devices/virtual/net/vpn0: couldn't determine device driver; ignoring...
NetworkManager[784]: <info> VPN connection '<connection name>' (Connect) reply received.
openconnect[4544]: Attempting to connect to server <ip address>:443
openconnect[4544]: SSL negotiation with <correctly identified vpn server>
openconnect[4544]: Connected to HTTPS on <correctly identified vpn server>
openconnect[4544]: Got CONNECT response: HTTP/1.1 200 OK
openconnect[4544]: CSTP connected. DPD 30, Keepalive 20
NetworkManager[784]: <info> VPN connection '<connection name>' (IP Config Get) reply received.
NetworkManager[784]: <info> VPN connection '<connection name>' (IP4 Config Get) reply received.
NetworkManager[784]: <info> VPN connection '<connection name>' (IP6 Config Get) reply received.
NetworkManager[784]: <info> VPN Gateway: <ip address>
NetworkManager[784]: <info> Tunnel Device: vpn0
NetworkManager[784]: <info> IPv4 configuration:
NetworkManager[784]: <info>   Internal Address: 10.xxx.xxx.xxx
NetworkManager[784]: <info>   Internal Prefix: 19
NetworkManager[784]: <info>   Internal Point-to-Point Address: 10.xxx.xxx.xxx
NetworkManager[784]: <info>   Maximum Segment Size (MSS): 0
NetworkManager[784]: <info>   Forbid Default Route: no
NetworkManager[784]: <info>   Internal DNS: <ip address>
NetworkManager[784]: <info>   Internal DNS: <ip address>
NetworkManager[784]: <info>   DNS Domain: '(none)'
NetworkManager[784]: <info> IPv6 configuration:
NetworkManager[784]: <info>   Internal Address: <ipv6 ip>
NetworkManager[784]: <info>   Internal Prefix: 64
NetworkManager[784]: <info>   Internal Point-to-Point Address: <ipv6 ip>
NetworkManager[784]: <info>   Maximum Segment Size (MSS): 0
NetworkManager[784]: <info>   Forbid Default Route: no
NetworkManager[784]: <info>   DNS Domain: '(none)'
openconnect[4544]: Connected vpn0 as <ip address> + <ipv6 ip>, using SSL
openconnect[4544]: Established DTLS connection (using OpenSSL)
NetworkManager[784]: <info> VPN connection '<connection name>' (IP Config Get) complete.
NetworkManager[784]: <info> Policy set '<connection name>' (vpn0) as default for IPv4 routing and DNS.
NetworkManager[784]: <info> Policy set '<connection name>' (vpn0) as default for IPv6 routing and DNS.
NetworkManager[784]: <info> Writing DNS information to /sbin/resolvconf
dnsmasq[1027]: setting upstream servers from DBus
dnsmasq[1027]: using nameserver 127.0.0.1#53 for domain 10.in-addr.arpa
dnsmasq[1027]: using nameserver 127.0.0.1#53 for domain <home search domain>
dnsmasq[1027]: using nameserver 127.0.0.1#53 for domain <vpn search domain>
dnsmasq[1027]: using nameserver <ip address>#53 for domain 10.in-addr.arpa
dnsmasq[1027]: using nameserver <ip address>#53 for domain <home search domain>
dnsmasq[1027]: using nameserver <ip address>#53 for domain <vpn search domain>
dnsmasq[1027]: using nameserver <ip address>#53 for domain 10.in-addr.arpa
dnsmasq[1027]: using nameserver <ip address>#53 for domain <home search domain>
dnsmasq[1027]: using nameserver <ip address>#53 for domain <vpn search domain>
dbus[471]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
NetworkManager[784]: <info> VPN plugin state changed: started (4)
NetworkManager[784]:    keyfile: updating /etc/NetworkManager/system-connections/<connection name>-6a503043-13b0-4ce7-9749-29cd3054cae3
dbus[471]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

Meskipun semua kebisingan dalam log tentang memperbarui resolv.conf menghapus nameserver tetapi tidak menggantinya dengan alamat ip di log. itu memperbarui domain pencarian dengan benar, sehingga kemungkinan bukan masalah izin.

log saat menghubungkan menggunakan sudo openconnect di terminal:

NetworkManager[784]:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/tun0, iface: tun0)
NetworkManager[784]:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/tun0, iface: tun0): no ifupdown configuration found.
NetworkManager[784]: <warn> /sys/devices/virtual/net/tun0: couldn't determine device driver; ignoring...
dbus[471]: [system] Activating service name='org.freedesktop.hostname1' (using servicehelper)
kernel: [ 3258.725774] systemd-hostnamed[4927]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!
dbus[471]: [system] Successfully activated service 'org.freedesktop.hostname1'

tidak ada tentang memperbarui resolv.conf, namun itu memperbarui server nama dan domain pencarian dengan benar.

perbarui jika saya mengabaikan semua peringatan di resolv.conf dan menambahkan nameserver vpn concentrator ke dalamnya, saya langsung dapat menjelajah. tentu saja begitu saya putuskan, perubahan itu ditimpa.

ada bug pada ini , kembali pada tahun 2012, tetapi sudah kadaluwarsa. masalahnya tampaknya skrip vpnc.

saya mencoba memperbarui skrip-vpnc-skrip saya ke versi terbaru, tetapi tidak berhasil.

beberapa penelitian lebih lanjut menemukan bahwa pada resolusi 12,04 resolv.conf tidak lagi di mana nameserver pergi untuk resolusi dns saat menggunakan manajer jaringan. itu sebabnya ia bekerja ketika saya menggunakan baris perintah, tetapi tidak ketika menggunakan manajer jaringan. bukan nameserver 127.0.1.1 [dnsmasq] ditambahkan dan nameserver diberi tahu alamat ip dari nameserver yang sebenarnya.

Keuntungan besar adalah jika Anda terhubung ke VPN, alih-alih mengatur semua lalu lintas DNS Anda melalui VPN seperti di masa lalu, Anda hanya akan mengirim kueri DNS yang terkait dengan subnet dan domain yang diumumkan oleh VPN itu.

perbarui menonaktifkan dnsmasq seperti yang dijelaskan dalam tautan di atas menyelesaikan masalah karena /etc/resolv.conf diisi

ini bukan solusi nyata meskipun itu mundur.

zee
sumber
Mengapa NetworkManager mencantumkan 127.0.0.1 selain dua alamat IP yang disunting lainnya? Server nama apa yang berjalan secara lokal dan mendengarkan pada 127.0.0.1 dan dapat menyelesaikan nama VPN?
jdthood
Saya pikir itu hanya untuk caching dns. itu bukan server nama "nyata".
zee
Alamat 127.0.0.1 terdaftar sebagai alamat server nama yang diperoleh oleh NetworkManager. NetworkManager meneruskan alamat ini ke dnsmasq untuk digunakan sebagai alamat penerusan. Dnsmasq akan mencoba meneruskan pertanyaan ke alamat ini yang merupakan alamat loopback. Apakah sebenarnya ada server nama yang berjalan di mesin lokal yang mendengarkan pertanyaan di alamat itu? Dan bahkan jika demikian, mengapa NetworkManager melaporkan alamat selama inisiasi VPN? Tampaknya bagi saya seolah-olah server VPN Anda salah dikonfigurasi untuk memasok 127.0.0.1 sebagai alamat server nama pada VPN.
jdthood
Menariknya ketika saya mencoba koneksi saya pagi ini, jalur itu sudah tidak ada, jadi hanya server 2 dns dari concentrator.
zee
Dan bisakah Anda sekarang menyelesaikan nama Internet? Nama VPN? Nama lokal? Silakan posting konten aktual resolv.conf yang Anda katakan tidak diperbarui dengan benar. Apakah Anda tahu bahwa NetworkManager secara default menjalankan server penerusan forwarding - contoh dnsmasq - yang mendengarkan pada 127.0.1.1 dan meneruskan permintaan ke nameserver pada alamat yang diberikan oleh NetworkManager melalui DBus? Ketika server penerusan penerusan ini digunakan, hanya alamat pendengarannya yang terdaftar pada nameserverbaris di /etc/resolv.conf, terlepas dari berapa banyak server nama penerusan yang digunakan.
jdthood

Jawaban:

0

Periksa apakah ada ketidakcocokan antara host yang Anda coba selesaikan melalui VPN dan "Domain DNS" yang dikirim oleh server VPN Cisco.

Untuk memeriksa ini, buka terminal dan jalankan:

tail -f /var/log/syslog

Kemudian mulai buka koneksi melalui manajer jaringan. Anda akan melihat sejumlah besar output keluar, termasuk beberapa baris seperti ini:

5 Des 12:54:31 kano NetworkManager [1266]: DNS internal: 10.0.20.21

5 Des 12:54:31 kano NetworkManager [1266]: DNS internal: 10.10.3.32

5 Des 12:54:31 kano NetworkManager [1266]: Domain DNS: 'internal.example.com'

Dan lebih jauh ke bawah Anda akan melihat

5 Des 12:54:31 canoe dnsmasq [1871]: using nameserver 10.0.20.21 # 53 untuk domain internal.example.com

Ini berarti bahwa server VPN menginstruksikan klien bahwa server DNS harus digunakan untuk menyelesaikan host di dalamnya internal.example.com, seperti server.internal.example.com.

Dalam kasus saya, saya perlu menyelesaikan server.example.com(dan tidak mendapatkan hasil apa pun).

Solusi bagi saya adalah masuk ke pengaturan VPN dan menambahkan example.comsebagai domain pencarian tambahan:

masukkan deskripsi gambar di sini

Jangan lupa untuk memutuskan sambungan VPN, lalu sambungkan kembali agar pengaturan mulai berlaku.

jdhildeb
sumber
0

Jadi saya telah menyelesaikan ini untuk diri saya sendiri dengan cukup memuaskan. Saya ada di Mint 18 / Ubuntu 16.04

Masalah saya adalah bahwa begitu saya terhubung ke Openconnect VPN melalui NetworkManager, saya tidak bisa lagi menyelesaikan DNS untuk domain di luar domain pekerjaan saya. Yaitu saya kehilangan internet!

Perbaikan saya adalah ini:

  1. Di NetworkManager, saya mengedit Koneksi VPN di bawah "Network Connections".
  2. Di tab IPv4, ubah metode menjadi "Hanya Alamat Otomatis (VPN)"
  3. Menambahkan server DNS pekerjaan saya (mis. 10.10.10.100) dan "Domain pencarian" dari "mywork.tld"
  4. Klik pada "Rute".
  5. Tambahkan rute yang mencakup jaringan kerja saya, mis. 10.10.0.0 / 255.255.0.0 dan gateway dari 10.10.10.253 <- Gateway VPN yang saya dapatkan dari "traceroute".
  6. Kemudian saya mencentang kedua opsi: i. "Abaikan rute yang dipilih secara otomatis" ii. "Gunakan koneksi ini hanya untuk sumber daya di jaringannya"

Bekerja di komputer saya.

Pemahaman saya tentang apa yang terjadi adalah:

  1. /Etc/resolv.conf saya diset dengan dnsmasq dan mengarah ke 127.0.1.1
  2. dnsmasq menggunakan server DNS ISP saya untuk resolusi DNS internet umum. Sebagai contoh, DNS ISP adalah katakanlah 8.8.8.8.
  3. Saya terhubung ke VPN, server DNS 10.10.10.100 ditambahkan sebagai server tambahan ke dnsmasq yang akan digunakan untuk resolusi DNS "mywork.tld".
  4. Setelah saya berada di VPN, firewall pekerjaan saya tidak lagi memungkinkan saya untuk menggunakan port 53 ke 8.8.8.8 sehingga resolusi internet umum saya hilang. DNS harus kehabisan waktu dan pergi ke server DNS sekunder, tetapi tidak karena suatu alasan?
  5. Saya hanya memiliki akses ke resolusi DNS untuk "server01.mywork.tld" karena permintaan ini masuk ke 10.10.10.100 yang saya dapat aksesnya melalui VPN.
  6. Jika saya meminta www.google.com gagal, meskipun DNS internal saya dapat meneruskan. Saya hanya dapat berasumsi bahwa DNS internal saya tidak pernah diminta.

Perbaikan saya tampaknya tetap berfungsi selama pekerjaan saya tidak mengubah jaringan atau alamat IP server DNS mereka.

Saya agak kabur tentang hal itu, tetapi saya pikir itu bekerja untuk saya karena setelah ini dilakukan Wireless NIC saya menjadi koneksi jaringan default saya. Jadi permintaan DNS pergi ke 8.8.8.8 melalui wifi. Permintaan untuk "xyz.mywork.tld" diceritakan oleh dnsmasq untuk pergi ke 10.10.10.100. Saya telah menetapkan rute untuk itu, sehingga melampaui "vpn0" NIC yang mengembalikan alamat IP 10.10.10.x yang benar untuk "xyz.mywork.tld". Bingo bango resolusi DNS untuk jaringan internal dan eksternal dan semua orang senang.

Seanchán
sumber