具有多個 AWS VPC 子網路的 OpenVPN 設定

具有多個 AWS VPC 子網路的 OpenVPN 設定

我有一個在 Ubuntu 12.04 上運行的 OpenVPN 伺服器,位於具有 3 個子網路的 AWS VPC 中。我能夠連接我的客戶端並且可以毫無問題地 ping 伺服器 (10.8.0.1),但是我無法從我的客戶端存取 VPC 中的任何其他電腦。

一些背景資訊:

我可以從伺服器本身 ping 通伺服器。

我可以從客戶端 ping 伺服器。

我無法從伺服器 ping 客戶端。

我可以從伺服器 ping VPC 中的機器。

我無法從客戶端對 VPC 中的電腦(伺服器除外)執行 ping 操作。

我在伺服器上啟用了 IPV4 轉送。

我已禁用來源/目標檢查。

我已在 VPC 中設定路由表,將 10.8.0.0/16 流量路由到我的 OpenVPN 實例。

VPC 子網路:

10.0.0.0/24
10.0.1.0/24
10.0.2.0/24

OpenVPN 伺服器在 10.0.2.0/24 上運行,我能夠從它 ping 其他子網路上的任何伺服器,它的客戶端無法存取子網路上的任何內容。

伺服器配置:

port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
verb 6
mute 20

客戶端配置:

client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3

伺服器路由:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.1        0.0.0.0         UG    100    0        0 eth0
10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.0.0     UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0

客戶路線:

Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.36.1   192.168.36.120     10
         10.0.0.0        255.0.0.0         10.8.0.5         10.8.0.6     30
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     30
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    286
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    286
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    286
        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
     192.168.36.0    255.255.255.0         On-link    192.168.36.120    266
   192.168.36.120  255.255.255.255         On-link    192.168.36.120    266
   192.168.36.255  255.255.255.255         On-link    192.168.36.120    266
        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.36.120    266
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    286
  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.36.120    266
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    286

答案1

回應CIGuy上面的評論。

在 OpenVPN 伺服器上執行 tcpdump。您應該能夠看到資料包是否確實從伺服器轉送到遠端網路上的其他主機。

就像是:

tcpdump -i any -v host <ip> 

您嘗試 ping 的 IP 位址在哪裡。您也可以透過新增以下內容將封包擷取寫入檔案以便稍後在wireshark中進行分析

-s0 -w somefile.pcap

請記住,某些版本的 tcpdump 會自行 chroot,因此如果 somefile.pcap 未顯示您期望的位置,請檢查 /var/lib/tcpdump/

相關內容