检查 ubuntu 服务器上的 DNS 泄漏

检查 ubuntu 服务器上的 DNS 泄漏

我目前运行的是 Ubuntu 服务器 18.04.1 LTS。我已经设置了拆分隧道 VPN,它似乎运行良好,但是我想检查 DNS 泄漏。有没有办法用命令行来做到这一点?在 Ubuntu 服务器中真的无法打开浏览器...

更新了 heynnema 的信息:

ls -al /etc/openvpn

total 52
drwxrwxrwx  4 root root  4096 Nov  2 21:32 .
drwxr-xr-x 99 root root  4096 Nov  3 12:40 ..
-rwxrwxrwx  1 root root  1403 Nov  2 20:35 ca.crt
drwxrwxrwx  2 root root  4096 Sep  5 14:43 client
-rwxrwxrwx  1 root root  1597 Nov  2 20:39 iptables.sh
-rwxrwxrwx  1 root root    18 Nov  2 20:36 login.txt
-rwxrwxrwx  1 root root   670 Nov  2 21:29 openvpn.conf
-rwxrwxrwx  1 root root   623 Nov  2 20:40 routing.sh
drwxrwxrwx  2 root root  4096 Sep  5 14:43 server
-rwxrwxrwx  1 root root   636 Nov  2 20:35 tls.key
-rwxrwxrwx  1 root root 11773 Nov 12  2017 update-systemd-resolved

#

grep -i hosts /etc/nsswitch.conf
hosts:          files resolve [!UNAVAIL=return] dns

# 我从在线指南中获得了“防止 DNS 泄漏”部分,但是如果我启用该命令,VPN 对我来说根本不起作用。

up/down/down-pre
#up and down scripts to be executed when VPN starts or stops
up /etc/openvpn/iptables.sh
down /etc/openvpn/update-systemd-resolved
down-pre

# prevent DNS leakage
#dhcp-option DOMAIN-ROUTE .

更多信息:

#! /bin/bash
# Niftiest Software – www.niftiestsoftware.com
# Modified version by HTPC Guides – www.htpcguides.com

export INTERFACE="tun0"
export VPNUSER="vpn"
export LOCALIP="192.168.1.10"
export NETIF="enp1s0"

# flushes all the iptables rules, if you have other rules to use then add them into the script
iptables -F -t nat
iptables -F -t mangle
iptables -F -t filter

# mark packets from $VPNUSER
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT ! --dest $LOCALIP -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT --dest $LOCALIP -p udp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT --dest $LOCALIP -p tcp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT ! --src $LOCALIP -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT -j CONNMARK --save-mark

# allow responses
iptables -A INPUT -i $INTERFACE -m conntrack --ctstate ESTABLISHED -j ACCEPT

# block everything incoming on $INTERFACE to prevent accidental exposing of ports
iptables -A INPUT -i $INTERFACE -j REJECT

# let $VPNUSER access lo and $INTERFACE
iptables -A OUTPUT -o lo -m owner --uid-owner $VPNUSER -j ACCEPT
iptables -A OUTPUT -o $INTERFACE -m owner --uid-owner $VPNUSER -j ACCEPT

# all packets on $INTERFACE needs to be masqueraded
iptables -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE

# reject connections from predator IP going over $NETIF
iptables -A OUTPUT ! --src $LOCALIP -o $NETIF -j REJECT

# Start routing script
/etc/openvpn/routing.sh

exit 0

答案1

检查cat /etc/resolv.conf名称服务器地址。如果显示 127.0.0.1 或 127.0.0.53,则可能是 DNS 泄漏。您应该会看到 VPN DNS 的 IP 地址和 127.0.0.1/127.0.0.53(可能指向您的路由器 192.168.0.1/192.168.1.1)。

路由器的 DNS 路由器可能设置为 8.8.8.8/8.8.4.4 或 208.67.222.222/208.67.220.220,并且会出现 DNS 泄漏。

如果你可以通过 SSH 进入你的服务器并获得 GUI,你可以检查http://dnsleak.com或者http://dnsleaktest.com检查 DNS 泄漏。

注意:这可能不适用于“拆分隧道 VPN 设置”,我不知道。

更新#1:

用户正在运行openvpn-system-resolved,因此我的大部分答案不适用。

答案2

我做了什么:

ssh -X VPNuser@server
firefox

然后浏览网站进行 dns 泄漏测试。

相关内容