Windows

Webserver 在 OpenVPN 網路中暴露客戶端真實 IP 地址

  • November 8, 2015

我們的企業網站之一在 Linux 伺服器上執行,使用 Apache2 和 PHP5 建構。

幾個網頁只能從 OpenVPN 子網(地址 10.8.0.1/24)訪問。為了檢查每個請求,php 腳本會比較$_SERVER["REMOTE_ADDR"]apache 提供的值並決定允許或拒絕進一步執行。

目的是拒絕未配置為通過伺服器 VPN 工作的設備訪問這些頁面。

OpenVPN 伺服器在同一台機器上執行,這就是 PHP 從 VPN 內部的客戶端接收像 10.8.0.25 這樣的地址以及其他請求的真實地址的原因。

  • “保護”頁面不被公眾訪問是正確的方法嗎?

測試這個系統我發現了一件奇怪的事情,如果我使用 Windows 機器請求這些“受保護”頁面之一,連接到我們的 OpenVPN 網路,伺服器能夠看到真實的 IP 地址(不是 10.8.0.xx),同時做同樣的事情在 Android 設備上按預期工作(伺服器無法看到真實 IP 地址並在 php 中獲取 10.8.0.xx)。

我在 Android 上使用OpenVPN Connect應用程序,在 Windows上使用*OpenVPN GUI 。*在這兩種情況下,客戶端都通過 VPN 伺服器路由其流量,“我的 IP 是什麼?” 服務顯示 VPN 地址,而不是我的 ISP 的真實地址。

但不知何故,Windows 客戶端通過其在網路伺服器上的真實(提供者)地址被辨識,並且無論 VPN 是否打開,都無法訪問受保護的頁面。

  • 可能的原因是什麼?

我懷疑 OpenVPN 在該 Windows PC 上無法正常工作。否則,為什麼伺服器辨識 Android 和 Windows vpn 客戶端的方式不同?

謝謝你。

UPD:VPN/websrv 機器上的 iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  10.8.0.0/24          anywhere             tcp dpts:63000:64000
REJECT     tcp  --  anywhere             anywhere             tcp dpts:63000:64000 reject-with icmp-port-unreachable
ACCEPT     udp  --  10.8.0.0/24          anywhere             udp dpts:64000:65000
REJECT     tcp  --  anywhere             anywhere             tcp dpts:64000:65000 reject-with icmp-port-unreachable
DROP       all  --  anywhere             anywhere             match-set banned_ips src

UPD::cmd /k route print在 Windows 機器上

Interface List
 5...54 04 a6 3d 36 ff ......Realtek PCIe GBE Family Controller
 7...fc 75 16 86 ad 84 ......Microsoft Wi-Fi Direct Virtual Adapter
17...00 ff b7 66 85 11 ......TAP-Windows Adapter V9
12...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
13...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
 6...fc 75 16 86 ad 82 ......D-Link DWA-125 Wireless N 150 USB Adapter(rev.A3)
 1...........................Software Loopback Interface 1
 2...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 3...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
11...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
18...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 8...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
         0.0.0.0          0.0.0.0    192.168.137.1   192.168.137.97     25
         0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6     20
        10.8.0.0    255.255.255.0         10.8.0.5         10.8.0.6     20
        10.8.0.4  255.255.255.252         On-link          10.8.0.6    276
        10.8.0.6  255.255.255.255         On-link          10.8.0.6    276
        10.8.0.7  255.255.255.255         On-link          10.8.0.6    276
       127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
       127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
 127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
       128.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6     20
   xxx.53.xxx.yy  255.255.255.255    192.168.137.1   192.168.137.97     25
    192.168.10.0    255.255.255.0         10.8.0.5         10.8.0.6     20
    192.168.20.0    255.255.255.0         10.8.0.5         10.8.0.6     20
   192.168.137.0    255.255.255.0         On-link    192.168.137.97    281
  192.168.137.97  255.255.255.255         On-link    192.168.137.97    281
 192.168.137.255  255.255.255.255         On-link    192.168.137.97    281
   192.168.171.0    255.255.255.0         On-link     192.168.171.1    276
   192.168.171.1  255.255.255.255         On-link     192.168.171.1    276
 192.168.171.255  255.255.255.255         On-link     192.168.171.1    276
   192.168.229.0    255.255.255.0         On-link     192.168.229.1    276
   192.168.229.1  255.255.255.255         On-link     192.168.229.1    276
 192.168.229.255  255.255.255.255         On-link     192.168.229.1    276
       224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
       224.0.0.0        240.0.0.0         On-link     192.168.171.1    276
       224.0.0.0        240.0.0.0         On-link     192.168.229.1    276
       224.0.0.0        240.0.0.0         On-link          10.8.0.6    276
       224.0.0.0        240.0.0.0         On-link    192.168.137.97    281
 255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
 255.255.255.255  255.255.255.255         On-link     192.168.171.1    276
 255.255.255.255  255.255.255.255         On-link     192.168.229.1    276
 255.255.255.255  255.255.255.255         On-link          10.8.0.6    276
 255.255.255.255  255.255.255.255         On-link    192.168.137.97    281
===========================================================================
Persistent Routes:
 None

IPv6 Route Table

xxx.53.xxx.yy 是 VPN/websrv 機器 IP。

UPD:另外兩個事實

  • 網路伺服器和受保護的頁面使用 SSL 證書 (https) - Windows/Android 設備上的 DNS 僅設置為 Google DNS。

在 Openvpn/web 伺服器上安裝綁定。為 www.example.com 添加一個區域以指向 Web 伺服器的內部 IP,並為 8.8.8.8 和 8.8.4.4 設置轉發器,同時確保它正在偵聽並設置為內部/VPN 子網的解析器。

特定子域的基本區域,請務必根據需要複製任何重複的詳細資訊。

命名.conf.options

forwarders { 8.8.8.8; 8.8.4.4; };
allow-recursion { 10.8.0.0/24; };
allow-query { 10.8.0.0/24; };
listen-on { any; }

區域文件

$TTL 300   
@       IN      SOA     www.example.com. dnsadmin.example.com. (
                       2015000000       ; serial, YYYYMMDDRR
                       8H              ; refresh, seconds
                       2H              ; retry, seconds
                       4W              ; expire, seconds
                       1D )            ; minimum, seconds
@ IN NS ns1
ns1 IN A 10.8.0.5
@ IN A 10.8.0.5

確保您測試並配置 openvpn 以推送此 dns 伺服器。

引用自:https://serverfault.com/questions/733038