รับ openconnect VPN เพื่อทำงานผ่านผู้จัดการเครือข่าย


10

นี่เป็นปัญหาเดียวกันกับที่นี่: การขอ openconnect VPN เพื่อทำงานผ่าน guiแต่ส่วนที่เพิ่มเติมของฉันถูกลบไปและฉันถูกขอให้สร้างคำถามใหม่

ในความเป็นจริงมีคนจำนวนมากถามคำถามที่คล้ายกันที่นี่ทั้งหมดมี 0 คำตอบ

ซอฟต์แวร์เวอร์ชัน: Ubuntu 14.04, openconnect 5.02

ปัญหาหลัก:ฉันพยายามเพิ่มการเชื่อมต่อ VPN ในเครือข่าย - ผู้จัดการโดยใช้ openconnect เมื่อฉันระบุชื่อผู้ใช้และรหัสผ่าน vpn ของฉันมันจะเชื่อมต่อได้สำเร็จ แต่ฉันไม่สามารถแก้ไข DNS ได้

ถ้าฉันใช้ openconnect ใน terminal ผ่าน sudo, dns จะทำงานได้

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

รายละเอียดเพิ่มเติม:

1a เมื่อเชื่อมต่อผ่าน openconnect และ network-manager แม้ว่าฉันได้เพิ่ม dns และโดเมนการค้นหาอย่างชัดเจนภายใต้แท็บ ipv4 เฉพาะโดเมนการค้นหาที่ลงท้ายด้วย /etc/resolv.conf แม้ว่าฉันจะไม่ได้ระบุ DNS และโดเมนการค้นหาฉันสามารถเห็นในบันทึกว่าได้รับข้อมูลนั้นจาก vpn concentrator อีกครั้งโดเมนการค้นหาจะอัปเดตอย่างถูกต้อง [บันทึกด้านล่าง]

1b เมื่อเชื่อมต่อผ่าน sudo บนในเทอร์มินัล resolv.conf จะถูกเติมด้วย dns และโดเมนการค้นหาอย่างเหมาะสมแม้ว่าฉันจะไม่ได้เพิ่มข้อมูลนั้นในบรรทัดคำสั่งหรือระบุพา ธ ไปยังสคริปต์ vpnc มันจะต้องได้รับจากหัว vpn [บันทึกด้านล่าง]

2a เมื่อเชื่อมต่อผ่าน openconnect และ network-manager อินเทอร์เฟซใหม่ 'vpn0' จะถูกสร้างขึ้น

2b เมื่อเชื่อมต่อผ่าน sudo และบรรทัดคำสั่งจะมีการสร้างอินเทอร์เฟซใหม่ 'tun0'

เข้าสู่ระบบเมื่อเชื่อมต่อผ่านผู้จัดการเครือข่าย:

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)

นี่คือที่จะขอรหัสผ่านของฉัน

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'

แม้จะมีเสียงรบกวนทั้งหมดในบันทึกเกี่ยวกับการปรับปรุง resolv.conf มันจะลบเนมเซิร์ฟเวอร์ แต่ไม่ได้แทนที่พวกเขาด้วยที่อยู่ IP ในบันทึก อัปเดตโดเมนการค้นหาอย่างถูกต้องดังนั้นจึงไม่มีปัญหาสิทธิ์

เข้าสู่ระบบเมื่อเชื่อมต่อโดยใช้ sudo openconnect ใน 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'

ไม่มีอะไรเกี่ยวกับการอัพเดต resolv.conf แต่ก็ยังปรับปรุงเซิร์ฟเวอร์ชื่อและโดเมนการค้นหาอย่างถูกต้อง

อัปเดต หากฉันเพิกเฉยต่อคำเตือนทั้งหมดใน resolv.conf และเพิ่มเนมเซิร์ฟเวอร์ vpn concentrator ให้ฉันสามารถเรียกดูได้ทันที แน่นอนทันทีที่ฉันยกเลิกการเชื่อมต่อการเปลี่ยนแปลงเหล่านั้นจะถูกเขียนทับ

มีข้อผิดพลาดในเรื่องนี้ย้อนกลับไปในปี 2012 แต่มันหมดอายุ ปัญหาน่าจะเป็นสคริปต์ vpnc

ฉันพยายามอัปเดตสคริปต์ vpnc ของฉันเป็นเวอร์ชันล่าสุดด้วยตนเอง แต่ก็ไม่มีประโยชน์

การวิจัยเพิ่มเติมบางอย่างปรากฎว่า ณ 12.04 resolv.conf ไม่ได้ที่ nameservers ไปแก้ปัญหา DNS เมื่อใช้เครือข่ายผู้จัดการ นั่นเป็นเหตุผลที่มันทำงานเมื่อฉันใช้บรรทัดคำสั่ง แต่ไม่เมื่อใช้เครือข่ายผู้จัดการ ค่อนข้างจะเพิ่ม nameserver 127.0.1.1 [dnsmasq] และ nameserver จะบอกกับที่อยู่ ip ของเนมเซิร์ฟเวอร์จริง

ข้อได้เปรียบที่สำคัญคือถ้าคุณเชื่อมต่อกับ VPN แทนที่จะให้การรับส่งข้อมูล DNS ทั้งหมดของคุณผ่าน VPN เหมือนในอดีตคุณจะส่งเฉพาะการสืบค้น DNS ที่เกี่ยวข้องกับเครือข่ายย่อยและโดเมนที่ประกาศโดย VPN นั้นแทน

อัปเดต การปิดใช้งาน dnsmasq ตามที่อธิบายไว้ในลิงก์ด้านบนแก้ปัญหาได้เนื่องจาก /etc/resolv.conf ถูกใส่ข้อมูล

นี่ไม่ใช่ทางออกที่แท้จริงแม้ว่าจะเป็นทางเลือก


เหตุใด NetworkManager จึงแสดงรายการ 127.0.0.1 นอกเหนือจากที่อยู่ IP แบบ Redacted อีกสองรายการ เนมเซิร์ฟเวอร์ใดที่ทำงานอยู่ภายในเครื่องและกำลังฟังที่ 127.0.0.1 และสามารถแก้ไขชื่อ VPN ได้
jdthood

ฉันคิดว่านั่นเป็นเพียงการแคช DNS ไม่ใช่เนมเซิร์ฟเวอร์ "ของจริง"
zee

ที่อยู่ 127.0.0.1 แสดงรายการเป็นที่อยู่เซิร์ฟเวอร์ที่ได้รับจาก NetworkManager NetworkManager ส่งที่อยู่นี้ไปยัง dnsmasq เพื่อใช้เป็นที่อยู่การส่งต่อ Dnsmasq จะพยายามส่งต่อข้อความค้นหาไปยังที่อยู่นี้ซึ่งเป็นที่อยู่ย้อนกลับ จริง ๆ แล้วมีเซิร์ฟเวอร์ชื่อที่ทำงานอยู่บนเครื่องท้องถิ่นซึ่งฟังการสืบค้นตามที่อยู่นั้นหรือไม่? และแม้ว่าจะเป็นเช่นนั้นเหตุใด NetworkManager จึงรายงานที่อยู่ระหว่างการเริ่มต้น VPN ดูเหมือนว่าฉันหากเซิร์ฟเวอร์ VPN ของคุณกำหนดค่าผิดพลาดให้ระบุ 127.0.0.1 เป็นที่อยู่เซิร์ฟเวอร์ชื่อบน VPN
jdthood

ที่น่าสนใจเมื่อฉันลองเชื่อมต่อของฉันเมื่อเช้านี้สายหายไปดังนั้นมันจึงเป็นเพียงเซิร์ฟเวอร์ 2 dns จาก concentrator
zee

และคุณสามารถแก้ไขชื่ออินเทอร์เน็ตได้หรือไม่? ชื่อ VPN? ชื่อท้องถิ่น กรุณาโพสต์เนื้อหาจริงของ resolv.conf ที่คุณบอกว่าไม่ได้รับการอัพเดตอย่างถูกต้อง คุณรู้หรือไม่ว่า NetworkManager โดยค่าเริ่มต้นจะเรียกใช้ nameserver ที่ส่งต่อ - ตัวอย่างของ dnsmasq - ซึ่งฟังที่ 127.0.1.1 และส่งต่อแบบสอบถามไปยังเซิร์ฟเวอร์ชื่อตามที่อยู่ที่กำหนดโดย NetworkManager ผ่าน DBus? เมื่อใช้ nameserver การส่งต่อนี้จะมีเพียงฟังที่อยู่เท่านั้นที่แสดงอยู่ในnameserverบรรทัดใน /etc/resolv.conf
jdthood

คำตอบ:


0

ตรวจสอบว่ามีความไม่ตรงกันระหว่างโฮสต์ที่คุณพยายามแก้ไขผ่าน VPN และ "DNS Domain" ที่เซิร์ฟเวอร์ VPN VPN ส่งอยู่หรือไม่

เพื่อตรวจสอบสิ่งนี้เปิดเทอร์มินัลและเรียกใช้:

tail -f /var/log/syslog

จากนั้นเริ่ม openconnect ผ่านตัวจัดการเครือข่าย คุณจะเห็นกลุ่มของผลลัพธ์ทั้งหมดรวมถึงบางบรรทัดเช่นนี้:

5 ธันวาคม 12:54:31 เรือแคนู NetworkManager [1266]: DNS ภายใน: 10.0.20.21

5 ธันวาคม 12:54:31 canoe NetworkManager [1266]: DNS ภายใน: 10.10.3.32

5 ธันวาคม 12:54:31 canoe NetworkManager [1266]: โดเมน DNS: 'internal.example.com'

และไกลออกไปคุณจะเห็น

5 ธันวาคม 12:54:31 canoe dnsmasq [1871]: ใช้ nameserver 10.0.20.21 # 53 สำหรับโดเมน internal.example.com

ซึ่งหมายความว่าเซิร์ฟเวอร์ VPN จะสอนไคลเอนต์ที่เซิร์ฟเวอร์ DNS ควรจะใช้เพื่อเป็นเจ้าภาพแก้ปัญหาภายในเช่นinternal.example.comserver.internal.example.com

ในกรณีของฉันฉันต้องแก้ไขserver.example.com(และไม่ได้รับผลลัพธ์ใด ๆ )

ทางออกสำหรับฉันคือไปที่การตั้งค่า VPN และเพิ่มexample.comเป็นโดเมนการค้นหาเพิ่มเติม:

ป้อนคำอธิบายรูปภาพที่นี่

อย่าลืมยกเลิกการเชื่อมต่อ VPN จากนั้นเชื่อมต่อใหม่เพื่อให้การตั้งค่ามีผล


0

ดังนั้นฉันจึงแก้ไขปัญหานี้ด้วยตัวเองอย่างน่าพอใจ ฉันอยู่ใน Mint 18 / Ubuntu 16.04

ปัญหาของฉันคือเมื่อฉันเชื่อมต่อกับ Openconnect VPN ผ่าน NetworkManager ฉันไม่สามารถแก้ไข DNS สำหรับโดเมนที่อยู่นอกโดเมนงานของฉันได้อีก คือฉันสูญเสียอินเทอร์เน็ต!

การแก้ไขของฉันคือ:

  1. ใน NetworkManager ฉันแก้ไขการเชื่อมต่อ VPN ภายใต้ "การเชื่อมต่อเครือข่าย"
  2. ในแท็บ IPv4 เปลี่ยนวิธีเป็น "ที่อยู่อัตโนมัติ (VPN) เท่านั้น"
  3. เพิ่มเซิร์ฟเวอร์ DNS งานของฉัน (เช่น 10.10.10.100) และ "ค้นหาโดเมน" ของ "mywork.tld"
  4. คลิกที่ "เส้นทาง"
  5. เพิ่มเส้นทางที่ครอบคลุมเครือข่ายงานของฉันเช่น 10.10.0.0 / 255.255.0.0 และเกตเวย์ของ 10.10.10.253 <- เกตเวย์ VPN ที่ฉันได้รับจาก "traceroute"
  6. จากนั้นฉันเลือกทั้งสองตัวเลือก: i. "ข้ามเส้นทางที่เลือกไม่ใช้โดยอัตโนมัติ" ii "ใช้การเชื่อมต่อนี้สำหรับทรัพยากรบนเครือข่ายเท่านั้น"

ทำงานบนคอมพิวเตอร์ของฉัน

ความเข้าใจของฉันเกี่ยวกับสิ่งที่เกิดขึ้นคือ:

  1. /etc/resolv.conf ของฉันถูกตั้งค่าด้วย dnsmasq และชี้ไปที่ 127.0.1.1
  2. dnsmasq กำลังใช้เซิร์ฟเวอร์ DNS ของ ISP สำหรับการแก้ปัญหา DNS อินเทอร์เน็ตทั่วไป ตัวอย่างเช่น ISP DNS สมมุติว่า 8.8.8.8
  3. ฉันเชื่อมต่อกับ VPN เซิร์ฟเวอร์ DNS ของ 10.10.10.100 ถูกเพิ่มเป็นเซิร์ฟเวอร์เพิ่มเติมสำหรับ dnsmasq ที่จะใช้สำหรับการแก้ไข DNS "mywork.tld"
  4. เมื่อฉันใช้ VPN ไฟร์วอลล์ในที่ทำงานของฉันจะไม่อนุญาตให้ฉันใช้พอร์ต 53 ถึง 8.8.8.8 อีกต่อไปดังนั้นความละเอียดอินเทอร์เน็ตทั่วไปของฉันจึงหายไป DNS ควรหมดเวลาและไปที่เซิร์ฟเวอร์ DNS รอง แต่ไม่ใช่เหตุผลบางประการใช่หรือไม่
  5. ฉันเหลือเพียงการเข้าถึงการแก้ไข DNS สำหรับ "server01.mywork.tld" เพราะแบบสอบถามนี้ไปที่ 10.10.10.100 ซึ่งฉันสามารถเข้าถึง VPN ได้
  6. ถ้าฉันค้นหา www.google.com มันล้มเหลวแม้ว่า DNS ภายในของฉันจะส่งต่อได้ ฉันสามารถสันนิษฐานได้ว่า DNS ภายในของฉันไม่เคยถูกถาม

การแก้ไขของฉันดูเหมือนว่าจะทำงานต่อไปตราบใดที่งานของฉันไม่เปลี่ยนที่อยู่ IP เครือข่ายหรือเซิร์ฟเวอร์ DNS

ฉันสับสนเล็กน้อย แต่ฉันคิดว่ามันใช้งานได้ดีเพราะเมื่อทำสิ่งนี้เสร็จแล้ว Wireless NIC ของฉันจะกลายเป็นการเชื่อมต่อเครือข่ายเริ่มต้นของฉัน ดังนั้นการสืบค้น DNS ไปที่ 8.8.8.8 ผ่าน wifi แบบสอบถามใด ๆ สำหรับ "xyz.mywork.tld" จะถูกบอกโดย dnsmasq ให้ไปที่ 10.10.10.100 ฉันได้ตั้งค่าเส้นทางสำหรับสิ่งนั้นแล้วจึงข้าม "vpn0" NIC ซึ่งจะส่งกลับที่อยู่ IP 10.10.10.x ที่ถูกต้องสำหรับ "xyz.mywork.tld" Bingo bango Resolution DNS สำหรับเครือข่ายภายในและภายนอกและทุกคนมีความสุข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.