私のOpenVPNトラフィックをブロックする要素を見つける方法

私のOpenVPNトラフィックをブロックする要素を見つける方法

OpenVPNを使用してパスをプッシュするのに問題があります。

私の設定は次のとおりです

ネットワーク

  • 国土:10.0.0.0/24
  • オープン VPN: 10.8.0.0/24
  • インターネット上のVPS

サーバー(すべてLinux)

  • サーバー1:10.0.0.13 + 10.8.0.1(OpenVPNサーバー)
  • サーバー2:10.0.0.11(DHCP + DNS)
  • VPS:インターネットIP + 10.8.0.X(OpenVPNの任意IP)

OpenVPN サーバーの構成

..snip..
push "route 10.0.0.0 255.255.255.0"
push "dhcp-option DNS 10.0.0.11"
..snip..

IP転送が有効

cat /proc/sys/net/ipv4/ip_forward
1

ルーティングされたVPS

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         www.xxx.yyy.1    0.0.0.0         UG    0      0        0 eth0
10.0.0.0        10.8.0.5        255.255.255.0   UG    0      0        0 tun0
10.8.0.0        10.8.0.5        255.255.255.0   UG    0      0        0 tun0
10.8.0.5        *               255.255.255.255 UH    0      0        0 tun0
www.xxx.yyy.1    *               255.255.255.255 UH    0      0        0 eth0

ルーティングサーバー1

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.1      0.0.0.0         UG    0      0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0

VPSでopenvpn-server(10.8.0.1)をpingしてみてください。

ping 10.0.0.13
ping 10.0.0.13 -I tun0;#gives same result

VPS用tcpdump

tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
19:05:22.049141 IP 10.8.0.6 > 10.8.0.1: ICMP echo request, id 17966, seq 1, length 64
19:05:22.101397 IP 10.8.0.1 > 10.8.0.6: ICMP echo reply, id 17966, seq 1, length 64

TCPダンプサーバー1

tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
18:05:22.064139 IP 10.8.0.6 > 10.8.0.1: ICMP echo request, id 17966, seq 1, length 64
18:05:22.064399 IP 10.8.0.1 > 10.8.0.6: ICMP echo reply, id 17966, seq 1, length 64
18:05:23.065687 IP 10.8.0.6 > 10.8.0.1: ICMP echo request, id 17966, seq 2, length 64
18:05:23.065886 IP 10.8.0.1 > 10.8.0.6: ICMP echo reply, id 17966, seq 2, length 64

機能しないのは、VPSからサーバー1の内部IPへの接続です。

VPSでopenvpn-server(10.0.0.13)をpingしてみてください。

VPS用tcpdump

19:12:24.847216 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18136, seq 1, length 64 
19:12:25.876441 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18136, seq 2, length 64 
19:12:26.900408 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18136, seq 3, length 64 
19:12:27.924476 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18136, seq 4, length 64 
19:12:39.964724 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18137, seq 1, length 64 
19:12:40.980446 IP vps.hoster.tld > 10.0.0.13: ICMP echo request, id 18137, seq 2, length 64 

Server1のtcpdump

#stays empty

だから私はここで何が間違っているのか本当に知りたいです。私のVPSから内部IP 10.0.0.0/24へのトラフィックをブロックするものは何かを見つけるための次のステップは何ですか?たぶん家のファイアウォールがトラフィックをブロックしているのでしょうか?調べる方法?

答え1

内部インターフェイスに到達中、パスなし
デフォルトでは、LinuxはすべてのインターフェースのすべてのIPに応答し、「間違った」インターフェースからのARP要求にも応答します。これは非常に安全ではないため、ほとんどのファイアウォールはこの動作を防ぐためにiptablesとproc / arp_filterを使用します。

ルーティングをブロックするファイアウォールルールがある可能性があります。
server1> iptables -L -n -v
server1> iptables -t nat -L -n -v

server1> iptables -A FORWARD -j LOGserver1を介して、10.8と10.0の間にルーティングされたすべてのパケットが記録されます(dmesg)。それはあなたにいくつかの情報を与えるかもしれません。
$server1> iptables -D FORWARD -j LOGルールを削除します。

以下は、ファイアウォールルールの前にルーティングルールを挿入します。
server1> echo 1 > /proc/sys/net/ipv4/ip_forward
server1> iptables -I FORWARD 1 --in-interface tun0 --source 10.8.0.0/24 -j ACCEPT
server1> iptables -I FORWARD 1 --in-interface eth0 --source 10.0.0.0/24 -j ACCEPT

私はそれがうまくいくとは思わないが、VPS> ping 10.0.0.11もしそうなら、問題はほぼ確実にserver1のiptablesにあります。

server1ポイントツーポイントルーティングを実行するため、ARPを実行しないでくださいが、どちらかが1に設定されている場合は、おそらくファイアウォールスクリプトによって実行され、問題はserver1のiptablesにあります。
server1> cat /proc/sys/net/ipv4/conf/all/arp_filter
server1> cat /proc/sys/net/ipv4/conf/tun0/arp_filter

路線
パスは問題ないようですが、この設定では10.8.0.0/24パスは必要ありません。 10.8.0.1〜10.8.0.5はポイントツーポイントです。

default gwVPSには、10.8.0.1 via tun0およびが必要です10.0.0.0/24 via gw 10.8.0.1。 server1には、および、が
必要です。default gw10.8.0.5 via tun010.0.0.0/24 via eth0

関連情報