Ubuntu 18.04 openvpn에 연결할 때 DNS 확인이 안 됨


39

Gnome Network-manager를 통해 VPN 네트워크에 연결하면 DNS 확인이 손실되고 실제로 VPN 네트워크 내부 또는 외부의 리소스에 액세스 할 수 없습니다.

Ubuntu 16.04를 사용 중이고 VPN을 사용 중일 때 " /etc/resolv.conf/"파일에는 내가 연결 한 (VPN) 네트워크의 DNS 서버가 포함됩니다. 이제 항상 다음 항목이 포함됩니다.

nameserver 127.0.0.53
search myprovider.com

내가 이해 한 127.0.0.53것은에서 사용 된 DNS 스텁의 주소입니다 system-resolved.

VPN이 Ubuntu 16.04에서 제대로 작동했기 때문에 이것이 버그라고 생각합니다. VPN 서비스를 사용할 때 네트워크의 DNS 서버를 설정할 수있는 방법이 있습니까?

최신 정보:

게시물 끝에 첨부 파일이 첨부 된 OpenVPN 네트워크에 연결을 시도했지만 다음 오류가 발생합니다.

 Authenticate/Decrypt packet error: cipher final failed

서버가 lzo 압축을 사용하는지 확인하고 활성화했습니다. 연결은 활성화되어 있지만 VPN 내부 또는 외부의 페이지로 이동할 수 없습니다.

아래에 나열된 구성 파일에는 답글에 게시 된 솔루션이 포함되어 있습니다.

 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
정확히 동일하게 해결할 수없는 이와 비슷한 문제를 디버깅 할 때 특정 솔루션을 사용 resolvectl status하고 resolvectl help파악했습니다.
notbad.jpeg

답변:


25

이 블로그 게시물 에서 해결책을 찾았 습니다 . 언급 된 두 가지 솔루션이 있지만 두 번째 솔루션을 사용하는 것이 좋습니다 .DNS가 OpenVPN 서버에 의해 설정되어 있음을 의미하기 때문입니다 (첫 번째 솔루션은 OpenVPN 서버에 연결되어 있는지 여부에 관계없이 동일한 DNS 서버를 사용함을 의미합니다).

한마디로 :

  • 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

그런 다음 위 / 아래 스크립트를 다음과 같이 변경하여 OpenVPN 클라이언트 파일 (예 : client.ovpn)을 편집하십시오.

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

(원래의 위 / 아래 설정을 주석 처리했습니다).


gnome openvpn 유틸리티를 사용하는 경우 config.ovpn 파일을 어디에 저장해야합니까?
orestis

1
config.ovpn"찾을 수 없음"-연결에 사용되는 클라이언트 구성 파일입니다. 당신이 중 하나를 생성하거나 당신의 OpenVPN을 제공하여 발급한다 (그리고 호출되지 않을 수 있습니다 config.ovpn- 그것은 같은 것을 호출 할 수있다 client.ovpn).
Andy Turfer

이것은 완벽하게 작동합니다.
Ahsanul Haque

2
내가 얻을WARNING: Failed running command (--up/--down): external program fork failed
멍청이

불행하게도이 TCP를 사용하는 VPN에없는 일을했다, 사이트 외부 VPN 해결되지 않으며, 따라서 나는 사용하기 시작 client.pritunl.com/#install가 발견 유용한
Saisurya Kattamuri

48

문제

우분투 18.04에 기본적으로 설치되어 있지 않기 때문에 파일 /etc/resolv.conf/etc/openvpn/update-resolv-conf스크립트에 의해 업데이트되지 않습니다 resolvconf.

실제로 해당 스크립트의 첫 번째 줄 중 하나가 /sbin/resolvconf실행 파일을 확인합니다 .

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

스크립트 가 푸시 된 DNS 항목으로 파일을 업데이트 하므로 tun 장치가이를 무시하는 것처럼 resolvconf를 통한 설치 apt-get는 해결책이 아닙니다 ./etc/openvpn/update-resolv-conf/etc/resolv.conf

해결책

  1. 우분투 18.04는를 사용 systemd-resolved하므로 openvpn 도우미 스크립트를 설치하기 만하면 systemd-resolved됩니다.

    sudo apt install openvpn-systemd-resolved
    

    또는 이러한 GitHub 지침 과 함께

  2. config.ovpn다음 줄을 추가 하여 파일을 업데이트하십시오 .

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

    그것은 /etc/openvpn/update-resolv-confconf에 위아래로 추가하는 대신에 .

  3. DNS 누출을 방지하려면이 시스템 행 문제 설명config.ovpn 에 따라 파일 끝에 다음 줄을 추가해야합니다 .

    dhcp-option DOMAIN-ROUTE .
    

1
Ubuntu 18.04에서 저를 위해 일해 주셔서 감사합니다. 그리고 나는 script-security 2위 / 아래 라인 전에 매개 변수 가 여전히 필요하다는 것을 지정하고 싶습니다 . 그렇지 않으면 프로그램이 오류 (OpenVPN 2.4.4)로 떨어집니다.
lucidyan

도움이되어 기뻤습니다 :) 대답의 마지막 문장을 바 꾸었습니다 . 제 경우 script-security 2 에는 필요하지 않았습니다. 아마도 내가 openvpn 클라이언트를 루트로 (sudo 포함) 실행하고 있기 때문일 것입니다.
Qlimax

1
@Qlimax이 설정을 gnome openvpn 클라이언트로 가져 오는 방법을 알고 있습니까?
orestis

2
@orestis이 패키지를 설치해야합니다. sudo apt-get install network-manager-openvpn-gnome 그러면 .ovpn 구성 파일을 gnome 네트워크 관리자로 가져올 수 있습니다. askubuntu.com/questions/187511/… UI가 시간이 지남에 따라 변경 되었으므로 설정
Qlimax에서

1
ovpn.config가 있지만 NetworkManager가 사용하지 않는 것 같습니다. 특히 업 / 다운 스크립트를 대체하기 위해 파일을 편집하고 다시 가져 오셨습니까? 문서를 찾을 수없는이 불투명 바이너리 / usr / lib / NetworkManager / nm-openvpn-service-openvpn-helper가 사용 되었기 때문에. ovpn.config를 다시 가져와야 할 경우 답변을 수정하십시오.
Harald

4

실제로이 문제에 대한 훨씬 쉬운 해결책이 있습니다. 문제는 DNS 트래픽과 Ubuntu 18이이를 관리하는 방법에 관한 것입니다. 적절한 네트워킹을 제공하기 위해 OpenVPN에 필요한 IP 전달 기능은 기본적으로 비활성화되어 있습니다. 다음 명령을 실행하기 만하면됩니다.

sudo nano /etc/sysctl.conf

이 파일을 연 후에가 포함 된 행을 찾으십시오 net.ipv4.ip_forward. 이 줄에 주석이 달린 경우, 줄 앞에있는 # 기호를 제거하십시오 (설명되지 않은 경우 다른 문제가 있음). 파일을 저장 한 다음 OpenVPN 서버 인스턴스를 다시 시작하십시오.

이 수정 프로그램은 Ubuntu 18로 업그레이드 한 후 클라이언트 또는 OpenVPN 코드를 수정하지 않아도됩니다. 테스트 및 작동 확인.

그러나 분명히 서버를 관리 할 수 ​​있어야합니다. 불행히도 18.04로 다른 사람이 관리하는 OpenVPN 서버에 연결하는 많은 사람들에게 버그가 존재합니다 ...


나를 위해 일하지 않았다. 귀하의 경우에 이것이 문제라고 어떻게 판단 했습니까?
hwjp

경고 : openvpn 클라이언트 에서 ip_forward를 활성화 할 필요는 없습니다 . 보안 위험이 있습니다. openvpn 서버 에서 사용 된 구성에 따라 필요할 수 있으며이 설명이 표시 될 수 있습니다.
higuita

2

2018 년 9 월 13 일 우분투 18.04에서 테스트

명령 행을 통해 필요한 것을 설정하는 또 다른 유용한 명령이 있습니다. 그러나 제 경우에는 명령 줄과 GUI를 사용하여 VPN 연결을 제어 할 수 있습니다.

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

ifname -- 기본적으로 필요하지만 아무런 영향을 미치지 않습니다

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 원격 게이트웨이를 기본 경로로 사용해서는 안됩니다

그리고 훨씬 더 흥미로운 최종 손길 :

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'

나중에 GUI를 사용하여 VPN을 제어하거나 다음 명령을 사용할 수 있습니다.

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


0

나도 영향을 받았다. 필자의 경우 내부 이름 서버 (VPN 내부에 있음)와 함께 OpenVPN을 사용하고 있습니다. 우분투 17.10까지 (/etc/nsswitch.conf의 "hosts : files dns"사용)까지 작동했습니다.

/etc/resolv.conf는 openvpn 스크립트에 의해 올바르게 업데이트되었습니다 (openvpn 클라이언트 구성 파일의 / etc / openvpn / update-resolv-conf에 대한 호출을 통해).

그러나 VPN 내부의 호스트 이름 확인은 더 이상 작동하지 않습니다 (또는 적어도 산발적으로 ... 로컬 DNS 캐시가 이름을 선택했지만 다소 오랜 시간이 지난 후).

너무 빠르지 만 문제를 해결하거나 심지어 해결하는 것처럼 보이는 것은 아래 패키지를 설치하는 것입니다.

sudo apt 설치 openvpn-systemd-resolved

며칠 안에 문제가 해결되는지 여부에 대한 더 많은 경험이 있습니다.

당신도 영향을받는 경우, 이것을 시도하고 의견을 게시하십시오!

건배,

남자 이름.


결국 솔루션이 아닌 것 같습니다. 다시 문제가 있습니다. 뭔가 다른 일이
일어났다

1
아마도 당신은 당신의 답변을 삭제? 결정은 아래에서 이미 발견 된 것 같습니다
lucidyan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.