L2TP/IPsec を用いたリモートアクセスVPN

動作確認バージョン:Brocade 5600vRouter Version4.2R1S1
ここでは、L2TP/IPsecを利用して、ファイアウォールにPCなど端末をリモートから接続させる設定を紹介します。
L2TP/IPsec VPNを利用することで、クライアントPCをサイト内にVPN接続をさせることが可能です。

L2TP/IPsec を利用したリモートアクセスの設定

ここでは、WindowsなどのクライアントからL2TP/IPsec VPNプロトコルを使用して、ファイアウォールへ接続させるリモートアクセスサーバとしての紹介をします。

注釈

  • 以下の手順では、Windowsクライアントからファイアウォールに接続する確認を実施しています。
  • Windowsクライアントの設定方法に関しては、別途 動作確認済み利用モデル をご参照ください。

サンプル設定のシナリオ

  • インターネットアクセスできるPCからファイアウォールにVPN接続させたい
  • VPN接続には、L2TP/IPsecを利用して接続させたい
  • クライアントPCの接続可否はファイアウォール設定に登録しているユーザ名とパスワードで認証したい
構成図
l2tp_ipsec_fig1

接続時の認証情報

ローカル認証ユーザ test-user01
ローカル認証パスワード testpass
事前共有鍵パスフレーズ testkey

注釈

L2TP/IPsec設定前に、サーバ・クライアント間の通信は確立できているものとします。

シナリオにおける設定の流れ

1.IPsecで、接続してくる端末を許可するために、接続PCに利用させるネットワーク(192.168.3.0/28)を許可する
2.IPsecで、NATトラバーサル機能を有効にする
3.L2TP/IPsec接続してくるユーザは、ユーザ名:test-user01 パスワード:testpass で認証する
4.接続PCなどに利用させるIPアドレスは、192.168.3.4から192.168.3.9までを設定
5.L2TP/IPsec認証用に利用するパスワード:testkeyを設定
6.L2TPトンネルに利用するIPアドレスは、153.xx.xx.178を設定
7.L2TPトンネルに利用するIPのネクストホップアドレスに 153.xx.xx.190を設定

CLIにて入力するコマンド

set security vpn ipsec nat-networks allowed-network '192.168.3.0/28'
set security vpn ipsec nat-traversal 'enable'
set security vpn l2tp remote-access authentication local-users username test-user01 password 'testpass'
set security vpn l2tp remote-access authentication mode 'local'
set security vpn l2tp remote-access client-ip-pool start '192.168.3.4'
set security vpn l2tp remote-access client-ip-pool stop '192.168.3.9'
set security vpn l2tp remote-access ipsec-settings authentication mode 'pre-shared-secret'
set security vpn l2tp remote-access ipsec-settings authentication pre-shared-secret 'testkey'
set security vpn l2tp remote-access outside-address '153.xx.xx.178'
set security vpn l2tp remote-access outside-nexthop '153.xx.xx.190'

注釈

  • CLIにて入力するコマンドについては、わかりやすくするためにパスワード等を記載しています。
正しく設定が完了したときのコンフィグレーションは次のとおりです。
security{
        vpn {
                ipsec {
                        nat-networks {
                                  allowed-network 192.168.3.0/28
                        }
                        nat-traversal enable
                }
                l2tp {
                        remote-access {
                                authentication {
                                      local-users {
                                             username test-user01 {
                                                         password "********"
                                             }
                                      }
                                      mode local
                                }
                                client-ip-pool {
                                        start 192.168.3.4
                                        stop 192.168.3.9
                                }
                                ipsec-settings {
                                        authentication {
                                                mode pre-shared-secret
                                                pre-shared-secret "********"
                                        }
                                }
                                outside-address 153.xx.xx.178
                                outside-nexthop 153.xx.xx.190
                        }
                }
        }
}

注釈

  • CLIでコンフィグレーション参照時はパスワード部分は ***** で表示されます。
  • グローバルIPアドレスは、実際には表示されますが、上記では、153.xx.xxという形でマスクさせていただいています。

動作確認結果

ファイアウォール側でクライアントからのリモートアクセス接続を受け付けており、接続できていることが確認できました。
経路情報も、直接接続という形で見えており、通信も可能になっておりますので、L2TP/IPsec 設定が正しく動作確認できました。
 # ファイアウォール側からの接続確認 -> OK
 # ユーザ名:test-user01 が接続しており、IPアドレスも、192.168.3.4が払い出されている

 user-admin@raFW01:~$ date;show vpn remote-access
 Sat Mar 18 10:37:15 UTC 2017
 Active remote access VPN sessions:
 User            Proto Iface  Tunnel IP       TX byte RX byte  Time
 ----            ----- -----  -----------     ------- -------  ----
 test-user01     L2TP  ppp0   192.168.3.4         402   10.8K  00h05m28s


 # ファイアウォール側の経路確認 -> OK
 # ファイアウォールで、クライアントPCの経路がConnect経路として確認が可能
  *L2TP/IPsec利用時に 10.255.0.0/32は内部的に利用されるアドレスで自動生成されます。

 user-admin@raFW01:~$ show ip route connect
 IP Route Table for VRF "default"
 C    *> 10.255.0.0/32 is directly connected, ppp0
 C    *> xxx.xx.xx.0/20 is directly connected, dp0s3
 C    *> 127.0.0.0/8 is directly connected, lo
 C    *> 153.xxx.xxx.176/28 is directly connected, dp0s8
 C    *> 192.168.3.0/28 is directly connected, dp0s7
 C    *> 192.168.3.4/32 is directly connected, ppp0
 C    *> 192.168.3.16/28 is directly connected, dp0s11
 user-admin@raFW01:~$


 # ファイアウォール側からの通信確認 -> OK

user-admin@raFW01:~$ ping 192.168.3.4
PING 192.168.3.4 (192.168.3.4) 56(84) bytes of data.
64 bytes from 192.168.3.4: icmp_seq=1 ttl=128 time=1.55 ms
64 bytes from 192.168.3.4: icmp_seq=2 ttl=128 time=0.933 ms
64 bytes from 192.168.3.4: icmp_seq=3 ttl=128 time=0.793 ms
64 bytes from 192.168.3.4: icmp_seq=4 ttl=128 time=0.786 ms
64 bytes from 192.168.3.4: icmp_seq=5 ttl=128 time=1.09 ms
^C
--- 192.168.3.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.786/1.031/1.554/0.287 ms
user-admin@raFW01:~$