무슨 일이 일어나고 있는지 파악하는 데 많은 시간이 걸렸습니다. 그러나 문제는 여전히 불분명합니다. 설치된 NetworkManager에 대한 OVPN 패킷을 요약합니다. 그리고 Clear openvpn 새 버전 3을 설치했으므로 openvpn, openvpn3이 있습니다. 패킷은 NetworkManager(.ovpn config)와 함께 사용됩니다. 업데이트 해결 서비스도 설치됩니다.
구성은 다음과 같습니다.
remote domain_name 443
resolv-retry infinite
nobind
persist-key
persist-tun
auth-nocache
verb 3
explicit-exit-notify 5
rcvbuf 262144
sndbuf 262144
remote-cert-tls server
cipher AES-256-CBC
comp-lzo no
proto udp
key-direction 1
script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/scripts/update-systemd-resolved
up-restart
up /vpn/iptab_killswitch.sh
up-restart
down /etc/openvpn/scripts/update-systemd-resolved
down-pre
down /vpn/iptab_default.sh
down-pre
명령줄을 사용하여 VPN을 시작하면 iptables(Killswitch용)가 제대로 수정되지만 여전히 DNS 누출 문제가 있습니다.
킬 스위치:
#!/bin/bash
sudo iptables --flush
sudo iptables --delete-chain
sudo iptables -t nat --flush
sudo iptables -t nat --delete-chain
sudo iptables -P OUTPUT DROP
sudo iptables -A INPUT -j ACCEPT -i lo
sudo iptables -A OUTPUT -j ACCEPT -o lo
sudo iptables -A OUTPUT -j ACCEPT -d server/24 -o wlp2s0 -p udp -m udp --dport 443
sudo iptables -A INPUT -j ACCEPT -s server/24 -i wlp2s0 -p udp -m udp --sport 443
sudo iptables -A INPUT -j ACCEPT -i tun0
sudo iptables -A OUTPUT -j ACCEPT -o tun0
분석:
기본:
Link 2 (wlp2s0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
DNS Domain: ~.
"sudo openvpn --config /path_to_my_config.ovpn"을 사용하는 경우:
Link 54 (tun0)
Current Scopes: none
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (wlp2s0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
DNS Domain: ~.
NetworkManager를 사용하여 내 구성에 연결할 때:
Link 55 (tun0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 10.64.104.1
DNS Servers: 10.64.104.1
DNS Domain: ~.
Link 2 (wlp2s0)
Current Scopes: none
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
따라서 NetworkManager를 사용하면 DNS가 수정되고 .ovpn 내의 "up" 명령이 무시됩니다. 인터넷에서 들어오는 모든 서비스에는 VPN DNS가 표시됩니다. 명확한 openvpn 클라이언트를 사용하면 구성의 스크립트를 사용하지만 DNS는 수정하지 않습니다.
DNS 누출을 차단하고 Killswitch 기능을 사용하려면 VPN을 어떻게 설정해야 하나요?