openvpnサーバー、クライアントから直接接続できますが、ルーター経由で、LAN内に入れた場合、接続できない

1,302 views
Skip to first unread message

Ken

unread,
Mar 1, 2020, 2:54:57 AM3/1/20
to OpenVPN Japan Users Group
グループのみなさん
こんにちは。

タイトルの通り、クライアントとサーバーは通信できます。ping, sshなどで、繋がっていること確認できます。

今度市販のルーター(日本電気 Aterm WR9500N HPモデル)でLAN構築し、vpnサーバー(OpenVPN 2.4.8-1.el7、OSはCentOS7)はLAN内に置きます。
LANは 172.16.1.0/24。ルーターのLAN側IPは 172.16.1.1 (WAN側はグローバルIP)、openvpnサーバーは172.16.1.2です。

直接、openvpnサーバーに接続できたのに、ルーター経由では、
TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS Error: TLS handshake failed
のエラー出ます。

ルーター側(1)穴をあける(portマッピング)と(2) 静的ルーティングの設定はしています。
(1) LAN側ホスト:172.16.1.2, Protocol: UDP, Port:1194-1194
(2)宛先IP:10.8.0.0/24、gw:172.16.1.2

TLSエラーはクライアント側です。
サーバー側のlogには何も出ていないです。
(iptablesにて1194/UDPは許可しています。直でつながっているのでその辺は問題がないかなと思いますが、どこか設定ミスや必要な設定が足りないでしょうね。)

パケットsniffing (tcpdump -ni em1 udp and port 1194)で見ると、
listening on em1, link-type EN10MB (Ethernet), capture size 262144 bytes
03:29:35.617406 IP xxx.xxx.xxx.xxx.58059 > 172.16.1.2.openvpn: UDP, length 54
(複数行続きます)
出ていますのでポートマッピングは正常かなと思います。

NIC1(em1)がルーターからパケットもらって、openvpnに渡してないかな。この辺の深い知識(routingの知識?)がないので、経験・知識お持ちの方、アドバイスください。


設定関係情報:

(1)IP forwardは有効にしています。 (/etc/sysctl.conf)
(net.ipv4.ip_forward = 1)

(2) 現在のIPtablesの設定:(関係すると思われる部分のみ)
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o em1 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -p udp --dport 1194 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p udp --sport 1194 -m state --state ESTABLISHED -j ACCEPT

-A INPUT -p udp --sport 1194 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p udp --dport 1194 -m state --state NEW,ESTABLISHED -j ACCEPT

-A INPUT -i tun0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT

-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -i tun0 -o em1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i em1 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i tun0 -s 172.16.1.0/24 -d 172.16.1.0/24 -j DROP

すべて、ネット上でカット・貼り付けですので不要なものが入っている可能性もありますが、必要な設定がないかもしれません。

(3)サーバー側に以下のコマンド実行しています。
route add -net 10.8.0.0 netmask 255.255.255.0 gw 172.16.1.2

その後 ip routeした結果は以下:
[root@userX ~]# ip route                                                                                              
default via nnn.nnn.nnn.nnn (グローバルのg/w IP) dev em2 (※)
10.8.0.0/24 via 172.16.1.2 dev em1 scope link 
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 
 nnn.nnn.nnn.nnn/25 dev em2 proto kernel scope link src  nnn.nnn.nnn.nnn (em2用にアサインされたグローバルIP) 
169.254.0.0/16 dev em1 scope link metric 1002 
169.254.0.0/16 dev em2 scope link metric 1003 
172.16.1.0/24 dev em1 proto kernel scope link src 172.16.1.2 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 <- これはどこから来たのかわからない (以前のルーターは192.168.12.0/24使っていたから?)

※em1はopenvpnLAN用のネットワーク、em2はリモートで管理しやすいように、「外」からも繋がるグローバルネットワークに接続しています。

長くなって申し訳ありませんが、よろしくお願いします。
K


山崎 太郎

unread,
Mar 1, 2020, 9:20:40 PM3/1/20
to openvpn-japa...@googlegroups.com

こんにちは、やまざきです。

ちょっと状況を整理したいのですが、「外部からルーター越しでのOpenVPN接続はNG」ですが、「LAN上でのOpenVPN接続はOK(VPN接続後、VPNアドレス 10.8.0.0/24 でOpenVPNクライアント→OpenVPNサーバーのPINGが通る、などで確認可)」という認識で正しいでしょうか?

もしLAN上でのOpenVPN接続がOKなら、OpenVPN自体は正常に稼働しているということになります。
であればルーター周りの設定が原因という可能性が高いですね。

「TLS key negotiation failed to occur within 60 seconds (check your network connectivity)」はメッセージの通り、ネットワークの疎通に問題があるときに発生します。
OpenVPNサーバー側のログが一切出ていないということは、VPN接続自体が届いていないということですので、まずはまずはルーター経由で通信を確立できるよう設定いただくのがターゲットになるかと思います。
> --
> このメールは Google グループのグループ「OpenVPN Japan Users Group」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには openvpn-japan-user...@googlegroups.com <mailto:openvpn-japan-user...@googlegroups.com> にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openvpn-japan-users-group/c7f7ab40-c498-402a-8dd5-86d425e1e36f%40googlegroups.com <https://groups.google.com/d/msgid/openvpn-japan-users-group/c7f7ab40-c498-402a-8dd5-86d425e1e36f%40googlegroups.com?utm_medium=email&utm_source=footer> にアクセスしてください。

--
::
:: Taro Yamazaki [ ta...@plum-systems.co.jp ]
::
:: Plum Systems Inc.
:: 2-3-11-2F, Kurihira, Asao-ku,
:: Kawasaki, Kanagawa
:: http://www.plum-systems.co.jp/

Ken

unread,
Mar 2, 2020, 2:51:00 AM3/2/20
to OpenVPN Japan Users Group
山崎さま

コメント、ありがとうございます。

LANに入れずに、(ですのでルーター経由しないで)クライアントとサーバー間の接続は問題がないということです。
書き方わかりにくいでご迷惑おかけしました。

そうですね。ルーター周りの設定でした。
詳しく書くと、ルーターはem1につなげていますのでそちらがデフォルトルートにするべきでした。

二つのNICがあって、openvpn関係のNIC =ルーター繋がっているNIC=em1のifcfg-em1内で、
defroute=no、
グローバル関係のNIC=em2=はdefroute=yesになっていました。
逆にしたら問題なく、ルーター経由でつながりました!!

ありがとうございました。




2020年3月2日月曜日 11時20分40秒 UTC+9 山崎 太郎:
> このグループから退会し、グループからのメールの配信を停止するには openvpn-japan-users-group+unsub...@googlegroups.com <mailto:openvpn-japan-users-group+unsubscribe@googlegroups.com> にメールを送信してください。

Ken Sai

unread,
Apr 2, 2020, 6:55:16 AM4/2/20
to openvpn-japa...@googlegroups.com
これは、もしかして、OpenVPNとは無関係で、サーバー1(172.16.1.3)、サーバー2(172.16.1.4)側のsshの問題?
確かにsshして、何もしないでほって置きました。
keepaliveの設定するべきでしたでしょうか。
であればうれしい。
こちらでも確認し続きます。

2020年3月2日(月) 16:51 Ken <i7t...@gmail.com>:
> このグループから退会し、グループからのメールの配信を停止するには openvpn-japan-user...@googlegroups.com <mailto:openvpn-japan-user...@googlegroups.com> にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openvpn-japan-users-group/c7f7ab40-c498-402a-8dd5-86d425e1e36f%40googlegroups.com <https://groups.google.com/d/msgid/openvpn-japan-users-group/c7f7ab40-c498-402a-8dd5-86d425e1e36f%40googlegroups.com?utm_medium=email&utm_source=footer> にアクセスしてください。

--
::
:: Taro Yamazaki [ ta...@plum-systems.co.jp ]
::
::  Plum Systems Inc.
:: 2-3-11-2F, Kurihira, Asao-ku,
:: Kawasaki, Kanagawa
:: http://www.plum-systems.co.jp/

--
このメールは Google グループのグループ「OpenVPN Japan Users Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには openvpn-japan-user...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openvpn-japan-users-group/aac132c2-9717-41b1-8aca-0a0db48bd757%40googlegroups.com にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages