네트워크 관리자를 통해 openconnect VPN을 작동시키기


10

이것은 여기와 같은 문제입니다 : gui를 통해 작동하도록 openconnect vpn 가져 오기에 대한 추가 사항이 삭제되어 새 질문을 작성하라는 요청을 받았습니다.

사실, 여기에 비슷한 질문을하는 많은 사람들이 있습니다.

소프트웨어 버전 : 우분투 14.04, openconnect 5.02

주요 문제 : openconnect를 사용하여 네트워크 관리자에 VPN 연결을 추가하려고합니다. VPN 사용자 이름과 암호를 제공하면 성공적으로 연결되지만 DNS를 확인할 수 없습니다.

sudo를 통해 터미널에서 openconnect를 실행하면 dns가 작동합니다.

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

자세한 내용은:

1a. ipv4 탭에 dns와 검색 도메인을 명시 적으로 추가했지만 openconnect와 네트워크 관리자를 통해 연결할 때 검색 도메인 만 /etc/resolv.conf에 나타납니다. DNS 및 검색 도메인을 제공하지 않더라도 로그에서 VPN 집중 장치에서 해당 정보를 얻고 있음을 알 수 있습니다. 다시 검색 도메인이 올바르게 업데이트됩니다. [아래 로그]

1b. 터미널에서 sudo를 통해 연결할 때 resolv.conf는 명령 줄에 해당 정보를 추가하지 않았거나 vpnc-script의 경로를 제공했지만 dns 및 검색 도메인으로 올바르게 채워집니다. VPN 집중 기에서 가져와야합니다. [아래도 로그]

2a. openconnect 및 네트워크 관리자를 통해 연결할 때 새로운 인터페이스 '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를 사용하여 연결할 때 로그 :

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 집중 네임 서버를 추가하는 경우, 나는 즉시 검색 할 수 있어요. 물론 연결을 끊 자마자 해당 변경 사항을 덮어 씁니다.

2012 년 에 이것에 버그가 있었지만 만료되었습니다. 문제는 vpnc 스크립트 인 것 같습니다.

vpnc-scripts를 최신 버전으로 수동 업데이트하려고 시도했지만 아무 소용이 없습니다.

일부 추가 연구가 12.04 경우 resolv.conf의로 더 이상 네트워크 관리자를 사용하는 경우 네임 서버는 DNS 확인을 위해가는 곳입니다 변합니다 없습니다. 그렇기 때문에 명령 줄을 사용할 때 작동하지만 네트워크 관리자를 사용할 때는 작동하지 않습니다. 오히려 네임 서버 127.0.1.1 [dnsmasq]가 추가되고 그 네임 서버는 실제 네임 서버의 IP 주소를 알게됩니다.

가장 큰 장점은 VPN에 연결하면 과거와 같이 모든 DNS 트래픽을 VPN을 통해 라우팅하는 대신 해당 VPN에서 발표 한 서브넷 및 도메인과 관련된 DNS 쿼리 만 보냅니다.

업데이트 /etc/resolv.conf 파일이 채워 때문에로 해결할 수 위의 링크에 문제를 설명한대로하는 dnsmasq를 설정합니다.

대체 방법이지만 실제 솔루션은 아닙니다.


NetworkManager에 다른 두 개의 수정 된 IP 주소 외에 127.0.0.1이 표시되는 이유는 무엇입니까? 어떤 네임 서버가 127.0.0.1에서 로컬로 실행 중이고 VPN 이름을 확인할 수 있습니까?
jdthood 2016 년

나는 그것이 단지 dns 캐싱을위한 것이라고 생각합니다. "실제"네임 서버가 아닙니다.
zee

주소 127.0.0.1은 NetworkManager에서 얻은 이름 서버 주소로 나열됩니다. NetworkManager는이 주소를 dnsmasq에 전달하여 전달 주소로 사용합니다. Dnsmasq는 루프백 주소 인이 주소로 쿼리를 전달하려고 시도합니다. 실제로 로컬 컴퓨터에서 해당 주소의 쿼리를 수신하는 네임 서버가 있습니까? 그래도 VPN 시작 중에 NetworkManager가 주소를보고하는 이유는 무엇입니까? VPN 서버가 VPN에서 네임 서버 주소로 127.0.0.1을 제공하도록 잘못 구성된 것처럼 보입니다.
jdthood 2016 년

흥미롭게도 오늘 아침에 연결을 시도했을 때 해당 라인이 사라 졌으므로 집중 장치에서 2 dns 서버에 불과합니다.
zee

이제 인터넷 이름을 확인할 수 있습니까? VPN 이름? 현지 이름? resolv.conf의 실제 내용이 올바로 업데이트되지 않았다고 게시하십시오. NetworkManager는 기본적으로 127.0.1.1에서 수신 대기하는 전달 이름 서버 (dnsmasq의 인스턴스)를 실행하고 DBus를 통해 NetworkManager가 제공 한 주소에서 이름 서버로 쿼리를 전달한다는 것을 알고 있습니까? 이 전달 이름 서버를 사용 nameserver하는 경우 사용중인 전달자 이름 서버 수에 관계없이 수신 주소 만 /etc/resolv.conf 의 행에 나열됩니다 .
jdthood

답변:


0

VPN을 통해 해결하려는 호스트와 Cisco VPN 서버가 전송하는 "DNS 도메인"이 일치하지 않는지 확인하십시오.

이를 확인하려면 터미널을 열고 다음을 실행하십시오.

tail -f /var/log/syslog

그런 다음 네트워크 관리자를 통해 openconnect를 시작하십시오. 다음과 같은 줄을 포함하여 많은 출력이 나옵니다.

12 월 5 일 12:54:31 카누 NetworkManager [1266] : 내부 DNS : 10.0.20.21

12 월 5 일 12:54:31 카누 NetworkManager [1266] : 내부 DNS : 10.10.3.32

12 월 5 일 12:54:31 카누 NetworkManager [1266] : DNS 도메인 : 'internal.example.com'

그리고 더 아래로 볼 수 있습니다

12 월 5 일 12:54:31 카누 dnsmasq [1871] : 도메인 internal.example.com에 네임 서버 10.0.20.21 # 53 사용

VPN 서버가 DNS 서버 내에서 해결 호스트에 사용되어야하는 클라이언트를 지시하는 것이이 수단 internal.example.com과 같은 server.internal.example.com.

제 경우에는 해결해야하며 server.example.com결과가 나오지 않았습니다.

나를위한 해결책은 VPN 설정으로 이동 example.com하여 추가 검색 도메인으로 추가하는 것이 었습니다 .

여기에 이미지 설명을 입력하십시오

설정을 적용하려면 VPN 연결을 끊었다가 다시 연결하는 것을 잊지 마십시오.


0

그래서 나는 이것을 만족스럽게 충분히 해결했습니다. 나는 민트 18 / 우분투 16.04에 있습니다

내 문제는 NetworkManager를 통해 Openconnect VPN에 연결하면 더 이상 내 작업 도메인 외부의 도메인에 대한 DNS를 확인할 수 없다는 것입니다. 즉, 나는 인터넷을 잃었다!

내 수정은 이것이었다 :

  1. NetworkManager에서 "Network Connections"아래의 VPN Connection을 편집했습니다.
  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의 게이트웨이를 포함하는 내 경로를 포함하는 경로를 추가하십시오.
  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에 연결하면 10.10.10.100의 DNS 서버가 "mywork.tld"DNS 확인에 사용될 dnsmasq에 추가 서버로 추가됩니다.
  4. VPN에 연결되면 업무용 방화벽에서 더 이상 포트 53을 8.8.8.8로 사용할 수 없으므로 일반적인 인터넷 해상도가 사라집니다. DNS가 시간 초과되고 보조 DNS 서버로 이동해야하지만 어떤 이유로 오지 않습니까?
  5. 이 쿼리는 VPN을 통해 액세스 할 수있는 10.10.10.100으로 이동하기 때문에 "server01.mywork.tld"에 대한 DNS 확인 만 가능합니다.
  6. www.google.com을 쿼리하면 내부 DNS가 전달할 수 있어도 실패합니다. 내부 DNS에 요청을받지 않았다고 가정 할 수 있습니다.

내 작업으로 네트워크 또는 DNS 서버 IP 주소를 변경하지 않는 한 내 수정 프로그램이 계속 작동하는 것 같습니다.

나는 그것에 대해 조금 흐릿하지만, 일단 이것이 완료되면 무선 NIC가 기본 네트워크 연결이되기 때문에 그것이 효과가 있다고 생각합니다. 따라서 DNS 쿼리는 wifi를 통해 8.8.8.8로 이동합니다. "xyz.mywork.tld"에 대한 모든 쿼리는 dnsmasq에서 10.10.10.100으로 이동하도록 지시합니다. "xyz.mywork.tld"에 대한 올바른 10.10.10.x IP 주소를 반환하는 "vpn0"NIC를 통과하는 경로를 설정했습니다. 내부 및 외부 네트워크를위한 빙고 방고 DNS 분석 및 모든 사람이 행복합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.