방금 VPN 제공업체에 가입했습니다.
Xubuntu 17.10, openvpn 2.4.3이 있습니다. openvpn 명령을 시작한 후 IP를 확인하고(괜찮았습니다) 간단한 작업을 수행했습니다.DNS 누출 테스트: 아니요, 내 인터넷 서비스 제공업체가 표시됩니다!
이 DNS 누출 문제를 해결하는 방법은 무엇입니까?
예비 심문이 있습니다.
- 내 쪽에서 "수정 가능"합니까? 아니면 원격 서버가 잘못 구성되어 있습니까?
내 입장에서는 openvpn의 .ovpn 구성 파일에서 일부 값을 변경해 보았습니다.
처음에는 다음 줄이 있었고 작동할 것으로 예상되었지만 작동하지 않았습니다.
script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf
나는 이것에 따라 그들을 바꿨다.레딧 답변(DNS 주소를 명시적으로 지정):
dhcp-option DNS 208.67.222.222 dhcp-option DNS 208.67.220.220 dhcp-option DNS 8.26.56.26 up "/etc/openvpn/update-resolv-conf foreign_option_1='dhcp-option DNS 208.67.222.222' foreign_option_2='dhcp-option DNS 208.67.220.220' foreign_option_3='dhcp-option DNS 8.26.56.26'" down "/etc/openvpn/update-resolv-conf foreign_option_1='dhcp-option DNS 208.67.222.222' foreign_option_2='dhcp-option DNS 208.67.220.220' foreign_option_3='dhcp-option DNS 8.26.56.26'"
/etc/resolvconf
이렇게 하면 up/down 스크립트에 의해 내용이 업데이트되므로 작업이 수행되는 것 같습니다 .# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # 127.0.0.53 is the systemd-resolved stub resolver. # run "systemd-resolve --status" to see details about the actual nameservers. nameserver 208.67.222.222 nameserver 208.67.220.220 nameserver 8.26.56.26 search lan
하지만 DNSleaktest에는 여전히 내 ISP가 표시됩니다.
그럼 내가배운
openvpn-systemd-resolved
systemd와 유사한 스크립트를 제공 하지만 systemd와 함께 작동하게 만드는 ubuntu 패키지가 존재합니다update-resolve-conf
(여기서 어떤 프로세스가 이 스크립트를 사용하는지 모르겠습니다: network-manager? openvpn?). 패키지를 설치했는데교체됨내 .ovpn 파일의 스크립트 이름:up "/etc/openvpn/update-systemd-resolved ..." down "..." down-pre
아직도 운이 없습니다.[이 글을 쓰는 시점에서 나는 방금 해결책을 찾았습니다.내 대답다음과 같은]
그런 다음 이 파일을 많이 변경했습니다
/etc/resolv.conf
. 평소에는 바뀌지 않아야 하므로 DNS 서버 주소를 에 넣었는데/etc/resolvconf/resolv.conf.d/base
게시resolvconf -u
가 안되는 것 같습니다.VPN 회사 지원팀에 문의했지만 해결책이 없습니다.
나는 이와 같은 다양한 솔루션을 시도했습니다.하나, 그리고 이후 허용되지 않는 답변:
나는 내가 시도한 다른 일들을 잊어버렸고, stackexchange가 나를 불행에서 구해 줄 것이라고 생각했고, 기적적으로 질문의 힘을 통해 그렇게 되었습니다.
[편집 1: 해결되지 않았습니다! 사실 내 첫 번째 대답은 그것이 작동하는 이유가 아닙니다.]
나는 더 많은 검사를 한 후에 이것을 발견했습니다. 이 줄을 삭제해도 systemd-update-resolved
여전히 작동하지만 특정 조건에서만 작동합니다.
언제. . . 언제openvpn
제공하다실행하는 동안 DNS 누출이 발생했습니다. 이를 중지한 다음 내 클라이언트의 서비스만 다시 시작하는 경우:
sudo service openvpn stop
sudo service openvpn@client start
그렇다면 괜찮습니다.
죄송합니다. 아직 openvpn 매뉴얼을 꼼꼼히 확인하지 못한 것 같습니다만,왜 그런 겁니까? 이거 보안 구멍 아닌가요? 특히 openvpn 서비스는 apt에서 설치 후 자동으로 활성화되기 때문입니다.변화를 영구적으로 만드는 방법은 무엇입니까?(시도했지만 sudo systemctl disable openvpn
다음 부팅에서도 여전히 같은 문제가 발생했습니다.)
[편집 2: 라우팅 테이블]
중지 openvpn
하고 시작하면 openvpn@client
DNS 누출이 없으며 출력은 route -n
다음과 같습니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 91.240.65.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.254 0.0.0.0 UG 100 0 0 eno1
91.240.64.17 192.168.1.254 255.255.255.255 UGH 0 0 0 eno1
91.240.65.0 0.0.0.0 255.255.255.224 U 0 0 0 tun0
128.0.0.0 91.240.65.1 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
후에 sudo service openvpn restart
:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 91.240.66.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.254 0.0.0.0 UG 100 0 0 eno1
91.240.64.16 192.168.1.254 255.255.255.255 UGH 0 0 0 eno1
91.240.66.0 0.0.0.0 255.255.255.224 U 0 0 0 tun0
128.0.0.0 91.240.66.1 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
더 이상 작동하지 않습니다. 두 경우 모두 DNS 누출이 발생합니다. 해당 패키지(resolvconf를 대체함) 설치를 시도했는데 openresolv
작동하는 것 같았습니다. 새로운 라우팅 테이블은 다음과 같습니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 91.240.66.161 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.254 0.0.0.0 UG 100 0 0 eno1
91.240.64.15 192.168.1.254 255.255.255.255 UGH 0 0 0 eno1
91.240.66.160 0.0.0.0 255.255.255.224 U 0 0 0 tun0
128.0.0.0 91.240.66.161 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
답변1
따라서 대답은 ArchLinux 위키의 항상 유효한 지침을 주의 깊게 따르는 것입니다.
https://wiki.archlinux.org/index.php/OpenVPN#Update_systemd-resolved_script
그리고추가의해당 라인.
따라서 두 단계:
sudo apt install openvpn-systemd-resolved
그리고추가의.ovpn 파일에 다음 줄을 추가합니다.
script-security 2
dhcp-option DNS 208.67.222.222
dhcp-option DNS 208.67.220.220
dhcp-option DNS 8.26.56.26
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
명확하지 않은 경우 이제 파일에 다음이 포함되어야 합니다.둘"위쪽" 행 합계둘'아래쪽' 행:
# old lines
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
# new lines
script-security 2
dhcp-option DNS 208.67.222.222
dhcp-option DNS 208.67.220.220
dhcp-option DNS 8.26.56.26
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
[편집 1: 사실 아니요, 그게 작동하는 이유는 아닙니다.]
바라보다편집 1내 질문에.
[편집 2: 이번에는 제대로 된 것 같아요]
이상한 systemd-resolved.service
동작이 포함된 이 문제가 인용되었습니다.여기.
클라이언트 구성 파일에 입력되는 것으로 나타나는 옵션은 다음과 같습니다.
dhcp-option DOMAIN-ROUTE .
분명히 선택한 연결을 통해 모든 DNS를 라우팅합니다.
답변2
Ubuntu 17.10 및 현재 18.04 LTS에서 DNS 누출 문제가 있습니다. 얼마전 16.10 업데이트때부터 시작된거 같은데, 지금까지 우연히 확인해 볼 생각은 없었습니다. 아래 URL을 발견하고 버그 보고서를 처음부터 끝까지 읽기 전까지는 위의 내용(그리고 내가 찾아 시도한 다른 모든 내용)도 도움이 되지 않았습니다. DNS 우선 순위 줄 추가에 대한 설명이 저에게 효과적이었습니다.
https://bugs.launchpad.net/network-manager/+bug/1624317 댓글 #103을 참조하세요.
설치된 NetworkManager VPN 연결을 찾으세요(" "는 $
터미널 창의 명령줄에 있음을 나타내는 시스템 프롬프트일 뿐입니다).
$ ls -la /etc/NetworkManager/system-connections/*
그런 다음 수정하려는 항목을 선택하고 이 명령을 실행합니다(또는 이 명령이 ipv4 섹션 아래에 dns-priority 항목을 추가하므로 구성 파일을 수동으로 편집할 수도 있습니다).
$ sudo nmcli 연결 수정<VPN 연결 이름>ipv4.dns-우선순위-42
다시 시작하세요.
$ sudo service network-manager restart
적어도 나에게는 이것을 내 VPN(ProtonVPN)에서 OpenVPN .ovpn 구성 파일에 넣는 것이 작동하지 않는다는 점에 유의하십시오. 어떤 이유로 GUI 대화 상자를 사용하여 설치할 때 NetworkManager 구성으로 이동하지 않습니다. 설치 후 구성을 업데이트한 다음 NetworkManager를 다시 시작한 경우에만 작동했습니다. 사용하려는 설치된 각 VPN 구성에 대해 이 작업을 수행해야 합니다.
답변3
이는 systemd-resolve를 이해하기 위해 network-manager-openvpn 패키지를 업데이트하기 전에 Ubuntu가 systemd-resolve로 전환했기 때문에 버그인 것 같습니다. Ubuntu 18.10에서는 Network Manager 1.12.2-0ubuntu5에서 이 문제를 해결한 것 같습니다. 자세한 내용을 보려면 여기를 클릭하세요:https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/issues/10.
게시하기 전에 @Bob Willan의 답변이 저에게 효과적이었습니다.
답변4
OpenVPN 구성 파일에 다음 줄을 추가하여 문제를 성공적으로 해결했습니다.
스크립트 보안 2
/etc/openvpn/update-resolv-conf
내려와 /etc/openvpn/update-resolv-conf
에서 @Linux에서 OpenVPN DNS 누출을 수정하는 방법
Windows 사용자의 경우(OpenVPN +2.3.9):
외부 DNS 차단