そもそもVPNとは何だ
在宅ワークなど自宅から会社のネットワークに接続する、もしくは共用Wifiを安全に利用するなどの場合、よくVPNを利用して安全性対策をしています。でもそもそもVPNとは何でしょう。
VPN(Virtual Private Network)の全体的なイメージを掴めるために、まず単語を分解して見ます。
- Virtual: クライアントとVPNサーバーの間にpoint-to-point通信を提供する専用プロトコルを利用して、仮想のLANを構造する。
- Private: このpoint-to-point通信の内容を暗号化して、LANと同じ機密性を保つ。
- Network: 既存のインタネット回線で通信する
要は、インタネットの共有回線経由で、クライアントとVPNサーバーしか解読できない暗号化通信で拠点のLANに接続しているような、仮想のLAN接続を確立する方法がVirtual Private Network、つまりVPNです。
L2TP/IPsec
VPNによく使われる二つのプロトコル。それぞれ仮想トンネル、暗号化機能を提供しています。
L2TP
Virtual
point-to-point接続を提供するプロトコルはいくつかありますが(PPPoEのPPPもそれの一種),VPNにおいてよく使われるのはL2TP(Layer 2 Tunneling Protocol)というトンネリングプロトコルです。
L2TPはクライアントとサーバーの間のトンネリングだけ提供していて、通信内容には関与しないので、暗号化はトンネル内のプロトコルに委ねることになります。
IPSec
Private
IPSec(Security Architecture for Internet Protocol)は暗号化技術を用いて、IPパケットの暗号化と改竄防止機能を提供しているプロトコル。機密性を提供できないL2TP自体はトンネル内部の通信を守るためにIPSecを利用する場合がほとんどです。
CISCOルーターでのL2TP/IPSec設定
前提条件
- ルーターのグローバルIPは 219.107.1.1とします。
- 事前共有鍵は "preshared_key"
- ユーザー名が"user1", パスワードが"password1" のユーザーを作成します。
ルーター上の設定
#L2TP-IPsecサービス
vpdn enable
vpdn-group VPN_L2TP-IPsec
accept-dialin
protocol l2tp
virtual-template 1
no l2tp tunnel authentication
exit
#接続ユーザーの作成
username user1 password 0 password1
#暗号化設定
crypto isakmp policy 100
encr 3des
authentication pre-share
group 2
exit
crypto isakmp key preshared_key address 0.0.0.0
crypto isakmp keepalive 3600
crypto ipsec transform-set TRANS-SET esp-3des esp-sha-hmac
mode transport
exit
crypto dynamic-map DYNAMIC_MAP 10
set nat demux
set transform-set TRANS-SET
exit
crypto map CRYPTO_MAP 100 ipsec-isakmp dynamic DYNAMIC_MAP
#バーチャルインタフェース
interface Virtual-Template1
ip unnumbered Dialer1
ip mtu 1280
ip nat inside
ip virtual-reassembly in
peer default ip address pool VPN_POOL_ADDR
ppp encrypt mppe auto
ppp authentication ms-chap-v2
#VPNクライアントのIPアドレスプール
ip local pool VPN_POOL_ADDR 10.10.10.1 10.10.10.10
ip forward-protocol nd
no ip http server
no ip http secure-server
#Dialer1から外部ネットワークへのアクセスを許可します
#拠点内LANにアクセスだけならこの設定は不要
access-list 1 permit 10.10.10.0 0.0.0.255
クライアント側のやること
これでVPNを利用してルーターに接続する準備がでいました。
Windows10,iOS,AndroidなどのOSがVPNクライアントを内蔵していますので、ネットワーク設定のところでVPNを有効にして、必要な情報を入力すれば簡単にVPN接続を確立できます。
動的IP回線の場合、サーバーのIPが分からなくなりますので、DDNSを利用してドメインネームに現在のIPアドレスをバンドしなければなりません。
幸い、DNSの更新タスクもルーターが自動で行うようにが設定できます。
動的IPアドレスとDDNS ウェブサーバー、ゲームサーバー、或いはVPNサーバーなど、外部からの接続を想定していれば、基本的に固定なIPアドレスが必要です。 ただし、ipv4アドレスが枯渇していることもあるので、一般ユーザーに対してほとんど[…]