네트워크 관리자를 통해 openconnect VPN이 작동하도록 하기

네트워크 관리자를 통해 openconnect VPN이 작동하도록 하기

이것은 여기와 같은 문제입니다:GUI를 통해 openconnect VPN이 작동하도록 하기, 그러나 내가 추가한 내용은 삭제되었고 새 질문을 작성하라는 요청을 받았습니다.

실제로 여기에 비슷한 질문을 하는 사람들이 많이 있는데 모두 응답이 없습니다.

소프트웨어 버전:우분투 14.04, 오픈커넥트 5.02

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

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

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

자세한 내용은:

1a. ipv4 탭 아래에 DNS와 검색 도메인을 명시적으로 추가했는데도 openconnect와 network-manager를 통해 연결할 때 검색 도메인만 /etc/resolv.conf에 표시됩니다. DNS 및 검색 도메인을 제공하지 않더라도 VPN 집중 장치에서 해당 정보를 가져오는 것을 로그에서 볼 수 있습니다. 이번에도 검색 도메인이 제대로 업데이트되었습니다. [아래 로그]

1b. 터미널에서 sudo를 통해 연결할 때 명령줄에 해당 정보를 추가하지 않았거나 vpnc-script에 대한 경로를 제공하지 않았더라도 resolv.conf가 DNS 및 검색 도메인으로 올바르게 채워집니다. 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를 사용하여 연결할 때 기록합니다.

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 쿼리만 전송한다는 것입니다.

업데이트 위 링크에 설명된 대로 dnsmasq를 비활성화하면 /etc/resolv.conf가 채워지기 때문에 문제가 해결됩니다.

그러나 이것은 실제 해결책은 아니며 대체 방법입니다.

답변1

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 연결을 끊었다가 다시 연결하는 것을 잊지 마세요.

답변2

그래서 나는 이 문제를 충분히 만족스럽게 해결했습니다. 저는 Mint 18/Ubuntu 16.04를 사용하고 있습니다.

내 문제는 NetworkManager를 통해 Openconnect VPN에 연결하면 더 이상 내 작업 도메인 외부의 도메인에 대한 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 <-- "traceroute"에서 얻은 VPN 게이트웨이).
  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에 연결하면 "mywork.tld" DNS 확인에 사용하기 위해 dnsmasq에 추가 서버로 10.10.10.100의 DNS 서버가 추가됩니다.
  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 쿼리는 Wi-Fi를 통해 8.8.8.8로 이동합니다. "xyz.mywork.tld"에 대한 모든 쿼리는 dnsmasq에 의해 10.10.10.100으로 이동하라는 지시를 받습니다. 이에 대한 경로를 설정하여 "xyz.mywork.tld"에 대한 올바른 10.10.10.x IP 주소를 반환하는 "vpn0" NIC를 통과합니다. 내부 및 외부 네트워크에 대한 Bingo Bango DNS 확인이 모두 만족스럽습니다.

관련 정보