OpenVPNクライアントは、OpenVPNサーバー以外のLAN上のすべてに接続できますか?


1

pfSense 2.3.2でOpenVPNを実行しています。現時点では、1つの小さなことを除いて、ほとんど動作しています。pfSenseサーバー自体を除く、LAN上の任意のものに接続できます。

いくつかの詳細:

  • IPアドレス範囲として172.16.104.0/21を使用して構成しています。
  • ファイアウォールは172.16.104.1。にあります。
  • OpenVPNクライアントのDHCP範囲は172.16.105.10-50です。
  • OpenVPNは、タップUDPを使用して構成されます。
  • ovpns1はOPT1に割り当てられ、OPT1とLANはブリッジされます(bridge0)。

タップとブリッジを使用している理由は、Appleデバイスがたくさんあり、Bonjourやその他のマルチキャスト/ブロードキャストベースのものがVPN全体で適切に動作するようにするためです。

これはすべて、172.16.104.1(ファイアウォール)を除くLANネットワーク上のすべてのアドレスに対して正しく機能します。クライアントは172.16.104.1にpingまたは接続できず、172.16.104.1はどのクライアントにもpingまたは接続できません。

tcpdumpを使用すると、他の奇妙な点が明らかになります。

tcpdumpを別のセッションで実行しているクライアントからサーバーにpingを実行すると、応答が返されているように見えますが、pingで報告されていませんか?

ping -c2 172.16.104.1
PING 172.16.104.1 (172.16.104.1) 56(84) bytes of data.

--- 172.16.104.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1009ms

ただし、同じマシンのtcpdumpセッションでは:

IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17069, seq 1, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17069, seq 1, length 64
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17069, seq 2, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17069, seq 2, length 64

そして、pfSenseサーバーから:

tcpdump -n -i ovpns1 -t icmp
tcpdump: WARNING: ovpns1: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ovpns1, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17084, seq 1, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17084, seq 1, length 64
IP 172.16.105.3 > 172.16.104.1: ICMP echo request, id 17084, seq 2, length 64
IP 172.16.104.1 > 172.16.105.3: ICMP echo reply, id 17084, seq 2, length 64

これは、ファイアウォールのないUbuntu Linuxマシンです。

pfSenseマシンは応答を送信していると考えており、Linuxマシンは応答を受信して​​いると考えていますが、pingはまだ100%のパケット損失を報告していますか?

そして、別の非サーバーアドレスにpingを実行すると、応答が返されます。

ping -c2 172.16.104.2
PING 172.16.104.2 (172.16.104.2) 56(84) bytes of data.
64 bytes from 172.16.104.2: icmp_seq=1 ttl=64 time=34.6 ms
64 bytes from 172.16.104.2: icmp_seq=2 ttl=64 time=34.1 ms

--- 172.16.104.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 34.165/34.401/34.638/0.300 ms

そしてtcpdumpシェルで:

IP 172.16.105.3 > 172.16.104.2: ICMP echo request, id 17068, seq 1, length 64
IP 172.16.104.2 > 172.16.105.3: ICMP echo reply, id 17068, seq 1, length 64
IP 172.16.105.3 > 172.16.104.2: ICMP echo request, id 17068, seq 2, length 64
IP 172.16.104.2 > 172.16.105.3: ICMP echo reply, id 17068, seq 2, length 64

以下は、pfSenseからダンプされたOpenVPNサーバーの構成です。

dev ovpns1
verb 1
dev-type tap
dev-node /dev/tap1
writepid /var/run/openvpn_server1.pid
#user nobody
#group nobody
script-security 3
daemon
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
proto udp
cipher AES-256-CBC
auth SHA1
up /usr/local/sbin/ovpn-linkup
down /usr/local/sbin/ovpn-linkdown
local <omitted>
tls-server
server-bridge 172.16.104.1 255.255.248.0 172.16.105.10 172.16.105.50
client-config-dir /var/etc/openvpn-csc/server1
tls-verify "/usr/local/sbin/ovpn_auth_verify tls '<omitted>' 1"
lport 1194
management /var/etc/openvpn/server1.sock unix
push "route 172.16.104.0 255.255.248.0"
client-to-client
duplicate-cn
ca /var/etc/openvpn/server1.ca
cert /var/etc/openvpn/server1.cert
key /var/etc/openvpn/server1.key
dh /etc/dh-parameters.1024
tls-auth /var/etc/openvpn/server1.tls-auth 0
persist-remote-ip
float
mode server

そしてクライアントから:

dev tap
persist-tun
persist-key
cipher AES-256-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote <omitted> 1194 udp
lport 0
verify-x509-name "<omitted>" name
pkcs12 udp-1194.p12
tls-auth udp-1194-tls.key 1
ns-cert-type server

ここで一体何が起こっているのですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.