グループのみなさん
こんにちは。
タイトルの通り、クライアントとサーバーは通信できます。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]
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
すべて、ネット上でカット・貼り付けですので不要なものが入っている可能性もありますが、必要な設定がないかもしれません。
(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 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)
※em1はopenvpnLAN用のネットワーク、em2はリモートで管理しやすいように、「外」からも繋がるグローバルネットワークに接続しています。
長くなって申し訳ありませんが、よろしくお願いします。
K