VPN(Virtual Private Network)構築編


4.Linux FreeS/WANの設定
(1)Linux FreeS/WANの特徴
さて、このLinux FreeS/WANを設定する前に少し予備知識を頭に入れておきましょう。
なお、いろいろ専門用語が出てきますが、詳しい解説は別のところで行いたいと思います。

まず、Linux FreeS/WANの構成ですが、これは次の2つのものからなります。
 @ KLIPS (Kernel IP Security)
   AH (Authentication Header) やESP(Encapsulating Security Payload)の処理、カーネル内での
   パケットハンドリングを行います。
   この機能を導入するためにkernelの再構築が必要だったわけです。
   (但し、今回はAHを使わずにESPだけで構築します。)
 A Pluto
   IPsecの鍵交換を司るIKE(Internet Key Exchange)デーモンです。
   IKE(Internet Key Exchange)とは、SA(Security Association = IPsecにおけるコネクション)を
   自動生成・管理するプロトコルです。

また、以下のような実装ポリシーをとります。
・ PlutoがネゴシエートするIPsecのパラメータはあらかじめPlutoに組み込まれており、ユーザー側で
  設定できない。
  つまり、IKEで提案する暗号化や認証(完全性保障)のアルゴリズムを指定することができない。
 ・ Phase1で使用する交換タイプ(Exchange Type)はMain Modeしか使用できない。
 ・ IKEにおけるDiffie-Hellman交換のグループで、DHグループ1は使用できない。
  (セキュリティ上の理由から。)
 ・ 同様に、セキュリティ上の理由から暗号化方式でDES(Data Encryption Standard)は使用できない。
                 (出典:IPsec徹底入門、小早川知昭著、西田晴彦監修、株式会社翔泳社刊)

FreeBSDのracoon等と異なり、少し変わった実装の仕方らしいですが、他の実装の方法を知らないのでどのように変わっているのかわかりません。(~_~;)


(2)Linux FreeS/WANの設定ファイル
ここでの設定を行うに当たっては、事前に「2.kernelの再構築とLinux FreeS/WAN及びPoPToPのインストール」の作業を終了しておいてください。

ということで、Linux FreeS/WANを使えるようにするためにはkernelの再構築という少々手間のかかる処理が必要となりますが、その反面、設定ファイルは「 /etc/ipsec.conf 」のみというお手軽さです。

この ipsec.conf は2つのセクションから構成されています。
1つは「config」セクションと、もう1つは複数ある「conn」セクションです。
このうち「config setup」の内容はデフォルトのままで使えます。(下記の赤色の文字のところです。)
つまり「conn」セクションの設定がLinux FreeS/WANにおけるキーポイントとなります。

それでは、Linux FreeS/WANをインストールした状態での ipsec.conf を見てみましょう。
なお、この中の日本語で書かれたコメントは私が追記したものです。

# /etc/ipsec.conf - FreeS/WAN IPsec configuration file

# More elaborate and more varied sample configurations can be found
# in FreeS/WAN's doc/examples file, and in the HTML documentation.

# basic configuration
# 「config」セクションの始まり。
config setup
# THIS SETTING MUST BE CORRECT or almost nothing will work;
# %defaultroute is okay for most simple cases.
# IPsecで使用するインターフェースを定義します
# 「%defaultroute」で自動的に検出されます。(/var/run/ipsec.infoに検出した値が書き込まれます。
interfaces=%defaultroute
# Debug-logging controls: "none" for (almost) none, "all" for lots.
# デバッグ用のログが必要なときは「all」にします。
klipsdebug=none
plutodebug=none
# Use auto= parameters in conn descriptions to control startup actions.
# 起動時にPluto(IKEデーモン)内のデータベースにロードするコネクションを指定します。
# 「%search」を指定すると、「conn」セクションに記述されたコネクション全てをロードします。
plutoload=%search
# 起動時にネゴシエートするコネクションを指定します。
# 「%search」を指定すると、「auto=route」、「auto=start」が定義されたコネクションをrouteとし、
# 「auto=start」と定義されたコネクションとネゴシエーションを開始します。
plutostart=%search
# Close down old connection when new one using same ID shows up.
# 新しいコネクションが古いコネクションのIDと同じ値の場合、古いコネクションを切断します。
uniqueids=yes


# ここから先は「conn」セクションです。(複数記述可)
# このセクションの説明は後ほど行います。

# defaults for subsequent connection descriptions
# (these defaults will soon go away)
conn %default
keyingtries=0
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%dnsondemand
rightrsasigkey=%dnsondemand

# connection description for opportunistic encryption
# (requires KEY record in your DNS reverse map; see doc/opportunism.howto)
conn me-to-anyone
left=%defaultroute
right=%opportunistic
keylife=1h
rekey=no
# for initiator only OE, uncomment and uncomment this
# after putting your key in your forward map
#leftid=@myhostname.example.com
# uncomment this next line to enable it
#auto=route

# sample VPN connection
conn sample
# Left security gateway, subnet behind it, next hop toward right.
left=10.0.0.1
leftsubnet=172.16.0.0/24
leftnexthop=10.22.33.44
# Right security gateway, subnet behind it, next hop toward left.
right=10.12.12.1
rightsubnet=192.168.0.0/24
rightnexthop=10.101.102.103
# To authorize this connection, but not actually start it, at startup,
# uncomment this.
#auto=add




(3)認証方式
さて、今回構築するVPNの「conn」セクションの設定を行う前に、IPsecを構築する上で重要なポイントである「認証方式」について少し説明しておきます。

Linux FreeS/WANでは、PlutoによるIKE(Internet Key Exchange)が行われますが、このIKEにおける主な認証(本人性確認)方式には次の3つの方式があります。
    @ Pre-Shared Key認証
    A 公開鍵暗号化認証
    B デジタル署名認証

ところで、今回Linux FreeS/WANを利用するためにkernelの再構築を行いましたが、そのとき利用したのはfreeswan-1.99-x509-0.9.19.tar.gz で、これはBのデジタル署名認証方式を使用するためのものです。

しかしながら、今回は「RSA」による公開鍵暗号を使用した認証方式を採用します。
(「RSA」とは、このアルゴリズムを考案したRon Rivest、Adi Shamir、Leonard Adlemanの3人の頭文字をとったものです。)

理由は、デジタル署名の説明まで手が回らないからです。(^_^メ)

本当のところは、Linux FreeS/WANをインストールすると、「/etc/ipsec.secrets」というファイルが作成され、その中に公開鍵と秘密鍵が自動的に生成されるので、単純にこれを利用しましょう、ということです。

全部はお見せできませんが、以下に /etc/ipsec.secrets の一部を示します。

# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication. See ipsec_pluto(8) manpage, and HTML documentation.

# RSA private key for this host, authenticating it to any other host
# which knows the public part. Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
: RSA {
    # RSA 2192 bits ns.left-server.net Fri Nov 29 21:05:06 2002
    # for signatures only, UNSAFE FOR ENCRYPTION
    #pubkey=0sAQ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・Z8/
    #IN KEY 0x4200 4 1 AQ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    # (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
    Modulus: ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
         }

この「pubkey=0sAQ・・・・・・・・・・・・・・・・・・・・Z8/」が公開鍵で、これを今回設定する「conn」セクションで使用します。
また、「ns.left-server.net」は、このLinux Serverの「ホスト名」(/etc/sysconfig/network で設定しているHOSTNAME)で、これも「conn」セクションで設定する「ID」として使用します。

この「ホスト名」と「公開鍵」の値は、# ipsec showhostkey のコマンドで確認することが出来ます。
(ipsecを起動していなくても、確認できます。)

なお、この/etc/ipsec.secres の内容は暗号化されていませんので、パーミッションも含め、その取扱いには十分注意しましょう。


(4)/etc/ipsec.conf の設定
それでは、いよいよ(ようやく) /etc/ipsec.conf の「conn」セクションの設定を説明します。
設定するに当たり、もう一度今回構築するVPNの構成を確認しておきましょう。

何度も出てくる下図のネットワークモデルにおいて、AのLinux ServerとEのLinux ServerをIPsecが機能するセキュリティゲートウェイ(Security Gateway:SG)として設定するわけです。

ところで、IPsecでVPNを構築する場合、最初にSA(Security Association = IPsecのコネクション)を確立しようとする側を「イニシエータ」といい、これを受ける側を「レスポンダ」と呼びます。

よくあるIPsec構築の説明図では、図の左側にあるセキュリティゲートウェイ(AのLinux Server)をイニシエータとし、図の右側にあるセキュリティゲートウェイ(EのLinux Server)をレスポンダとします。



ここでも、基本的にはAのLinux Serverをイニシエータとし、EのLinux Serverをレスポンダとしますが、EのLinux Serverをイニシエータに、AのLinux Serverをレスポンダにもできるよう設定することにしましょう。

そうすることにより、双方が必要なときにIPscを使ったVPNを構築することが出来るようになるわけです。
それが本当に必要かどうか、は横に置いておきますが。。。(~_~;)

それでは、AのLinux Serverをイニシエータ、EのLinux Serverをレスポンダとする「conn」セクション名を「left-to-right」とし、EのLinux Serverをイニシエータ、AのLinux Serverをレスポンダとする「conn」セクション名を「right-to-left」とします。

AのLinux Serverの設定
こちら側の/etc/ipsec.conf では「left-to-right」の「conn」セクションを設定します。
日本語の部分は説明のために書いたもので、実際には設定しないでください。
また、特に注意していただきたいのは、セクション名「conn left-to-right」で改行し、その後に「left=123.45.67.8」等の項目を記述するに当たっては、行頭から記述までの間は「スペース」ではなく必ず 「TAB」キーを使ってインデントしてください。
「スペース」でインデントすると、(ーー;)。。。となります。

conn left-to-right
            left=123.45.67.8
            leftsubnet=192.168.1.0/24
            leftid=@ns.left-server.net
            leftrsasigkey=0sAQO・・・・・・・・・・・・・・z8/
            leftnexthop=%defaultroute
            right=123.45.67.9
            rightsubnet=192.168.2.0/24
            rightid=@ns.right-server.net
            rightrsasigkey=0sAQN・・・・・・・・・・・・・・・・
            rightnexthop=%defaultroute
            auto=add
 セクション名
 AのIPアドレス
 AのLAN側のサブネット
 Aのホスト名(@を忘れないように)
 Aの/etc/ipsec.secretsのpubkeyの値
 自動的に設定させます
 EのIPアドレス
 EのLAN側のサブネット
 Eのホスト名(これも@を忘れないでください)
 Eの/etc/ipsec.secretsのpubkeyの値
 自動的に設定させます
 IPsecの起動形態の指定(注*

注*)IPsecの起動形態について
    この「auto」で指定できるIPecの主な起動形態は次のとおりです。
    ・ add   ・・・ Plutoが持つ内部データベースにコネクションの設定を読み込み、ネゴシエーションが
              発生すれば接続を受ける。主にレスポンダ側で使用する。
    ・ start ・・・ システムが起動されると同時にSAを生成する。
    ・ route ・・・ セキュリティポリシーに該当するパケットが発生すると直ちにSAを生成する。

・EのLinux Serverの設定
一般的なIPsec構築の説明では、図の右側にあるEのLinux ServerにもAのLinux Serverで設定した /etc/ipsec.conf をそのままコピーして使用するということになっているようです。
実際、Linux FreeS/WANの「How to configuration FreeS/WAN」でも、そのように書かれています。

しかし、今回は一捻り加えて、冒頭で述べたようにEのLinux Serverをレスポンダにもイニシエータにも使えるように設定することにします。

EのLinux Serverの/etc/ipsec.conf で設定する「conn」セクションを「right-to-left」とします。
ここでも、セクション名「conn left-to-right」で改行し、その後に「left=192.168.1.12」等の項目を記述するに当たっては、行頭から記述までの間は「スペース」ではなく必ず 「TAB」キーを使ってインデントすることを忘れないでください。

conn right-to-left
            left=192.168.1.12
            leftsubnet=192.168.2.0/24
            leftid=@ns.right-server.net
            leftrsasigkey=0sAQN・・・・・・・・・・・・・・・・・
            leftnexthop=%defaultroute
            right=123.45.67.8
            rightsubnet=192.168.1.0/24
            rightid=@ns.left-server.net
            rightrsasigkey=0sAQO・・・・・・・・・・・・・z8/
            rightnexthop=%defaultroute
            auto=add
 セクション名
 EのIPアドレス
 EのLAN側のサブネット
 Eのホスト名
 Eの/etc/ipsec.secretsのpubkeyの値
 自動的に設定させます
 AのIPアドレス
 AのLAN側のサブネット
 Aのホスト名
 Aの/etc/ipsec.secretsのpubkeyの値
 自動的に設定させます
 IPsecの起動形態(前述の「注*」を参照)

以上でLinux FreeS/WANの設定は終わりです。
設定自体は、その内容がわかれば非常に簡単だと思います。
もっと詳しく知りたい方は、 # man ipsec.conf で御覧ください。


(5)IPsecの起動
それでは、セキュリティゲートウェイとなるAのLinux ServerとEのLinux Serverにおいて、それぞれ次のコマンドでIPsecを起動させましょう。
# etc/init.d/ipsec start

AのLinux ServerでIPsecを起動した場合を例にとり、どのような動きがあるがを見てみましょう。

まず、無事にIPsecを起動することができれば /var/log/messagesに次のようにログが記録されます。
(丸付き数字は説明用に付加したものです。以下同様。)
@ Feb 15 22:11:42 ns 2月 15 22:11:42 ipsec_setup: Starting FreeS/WAN IPsec 1.99...
A Feb 15 22:11:44 ns 2月 15 22:11:44 ipsec_setup: Using /lib/modules/2.4.19-VPN/
kernel/net/ipsec/ipsec.o
B Feb 15 22:11:44 ns kernel: klips_info:ipsec_init: KLIPS startup, FreeS/WAN IPSec version: 1.99
C Feb 15 22:11:44 ns ipsec_setup: KLIPS debug `none'
D Feb 15 22:11:44 ns /etc/hotplug/net.agent: invoke ifup ipsec0
E Feb 15 22:11:44 ns /etc/hotplug/net.agent: invoke ifup ipsec2
F Feb 15 22:11:44 ns /etc/hotplug/net.agent: invoke ifup ipsec3
G Feb 15 22:11:44 ns /etc/hotplug/net.agent: invoke ifup ipsec1
H Feb 15 22:11:45 ns ipsec_setup: KLIPS ipsec0 on ppp0 123.45.67.8/255.255.255.255 pointopoint 61.118.81.1
I Feb 15 22:11:45 ns ipsec_setup: ...FreeS/WAN IPsec started

このH行目で、ppp0のインターフェース上に ipsec0 というIPsec用の仮想インターフェースが構築されていることがわかりますね。
なお、この行の最後のアドレスはISP側のIPアドレスです。

このことは、# ifconfig のコマンドを実行しても次のように表示されるので確認することができます。
ipsec0   Link encap:Point-to-Point Protocol
           inet addr:123.45.67.8 Mask:255.255.255.255
           UP RUNNING NOARP MTU:16260 Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:10
           RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)


同時に、/var/log/secure には次のようにログが記録されます。
@ Feb 15 22:11:45 ns ipsec__plutorun: Starting Pluto subsystem...
A Feb 15 22:11:45 ns pluto[13519]: Starting Pluto (FreeS/WAN Version 1.99)
B Feb 15 22:11:45 ns pluto[13519]: including X.509 patch (Version 0.9.19)
C Feb 15 22:11:45 ns pluto[13519]: including Traffic Selectors patch (Version 1.1)
D Feb 15 22:11:45 ns pluto[13519]: Changing to directory '/etc/ipsec.d/cacerts'
E Feb 15 22:11:45 ns pluto[13519]: Warning: empty directory
F Feb 15 22:11:45 ns pluto[13519]: Changing to directory '/etc/ipsec.d/crls'
G Feb 15 22:11:45 ns pluto[13519]: Warning: empty directory
H Feb 15 22:11:45 ns pluto[13519]: could not open my default X.509 cert file '/etc/x509cert.der'
I Feb 15 22:11:45 ns pluto[13519]: OpenPGP certificate file '/etc/pgpcert.pgp' not found
J Feb 15 22:11:45 ns pluto[13519]: added connection description "left-to-right"
K Feb 15 22:11:46 ns pluto[13519]: listening for IKE messages
L Feb 15 22:11:46 ns pluto[13519]: adding interface ipsec0/ppp0 123.45.67.8
M Feb 15 22:11:46 ns pluto[13519]: loading secrets from "/etc/ipsec.secrets"

この/var/log/secure でD行目からI行目でWarningが出ていますが、これはFreeS/WANをX.509(デジタル認証方式)を使用するバージョンで構築したにもかかわらず、それに関する設定がなされていないために発生したものです。
ここのところでは、とりあえず無視しておきましょう。(^_^メ)


それでは、今回構築したIPsecに関する情報を確認しましょう。
# ipsec auto --status 」というコマンドを使用すると次のように表示されます。
@ 000 interface ipsec0/ppp0 123.45.67.8
A 000
B 000 "left-to-right": 192.168.1.0/24===123.45.67.8[@ns.left-server.net]---
   61.118.81.1...61.118.81.1---123.45.67.9[@ns.right-server.net]===192.168.2.0/24
C 000 "left-to-right": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%;
keyingtries: 0
D 000 "left-to-right": policy: RSASIG+ENCRYPT+TUNNEL+PFS; interface: ppp0; unrouted
E 000 "left-to-right": newest ISAKMP SA: #0; newest IPsec SA: #0; eroute owner: #0
G 000

構築したIPsecに関する重要なポイントがわかりますね。
簡単に説明しておきます。
@行目:IPアドレス「123.45.67.8」のppp0上にipsec0というIPsec用のインターフェースを作成。
B行目:「left-to-right」というコネクションの経路。どのように繋がるのかがわかりますね。
C行目:「lefto-to-right」コネクションにおけるパラメータ。
     ・ IKE(ISAKMP SA)の有効期間=3600秒(1時間)
     ・ IPsec SAの有効期間=28800秒(8時間)
     ・ リキーの余裕時間=540秒(9分)
      (リキー:IPsec SAの有効期間が切れる前に新しいIPsec SAを作成することです。)
     ・ rekey_fuzzは設定されたリキーの余裕時間(rekey_margin)を変動させ、リキーするタイミングを
      コネクション毎にずらします。(複数のコネクションを設定する場合に重要です。)
     ・ keyingtries:0=接続に失敗したときのリトライ回数で、「0」は繋がるまでリトライします。
D行目:「left-to-right」コネクションのセキュリティポリシー。
     ・ 認証方式=RSA
     ・ セキュリティプロトコル=ESP(Encapsulating Security Payload)
     ・ カプセル化モード=トンネルモード
      (特定のホスト間でIPsecを利用する場合には、トランスポートモードを使用します。)
     ・ PFS=有効
      (PFS=Perfect Forward Secrecy、IPsec SA確立時にもDiffie-Hellman交換を行いIPsec SA
          に使用する秘密鍵を生成すること。)

以上の内容がEのLinux Serverでも確認できると思います。


(6)IPsecの接続
さて、今の状態はそれぞれのセキュリティゲートウェイでIPsecによるVPNを構築する準備が出来た状態です。
それでは、いよいよ実際にIPsecによるVPNを構築しましょう。
今回はAのLinux Serverをイニシエータとして接続することにしますので、AのLinux Serverから
# ipsec auto --up left-to-right
とします。
(ちなみに、EのLinux Serverをイニシエータとし、AのLinux ServerをレスポンダとしてVPNを構築する場合には、EのLinux Serverにおいて # ipse auto --up right-to-left とします。)

すると、/var/log/messages に次のようなログが記録されます。
@ Feb 15 22:12:19 ns pluto[14479]: "left-to-right" #1: initiating Main Mode
A Feb 15 22:12:19 ns pluto[14479]: "left-to-right" #1: Peer ID is ID_FQDN: '@ns.right-server.net'
B Feb 15 22:12:19 ns pluto[14479]: "left-to-right" #1: ISAKMP SA established
C Feb 15 22:12:19 ns pluto[14479]: "left-to-right" #2: initiating Quick Mode
  RSASIG+ENCRYPT+TUNNEL+PFS
D Feb 15 22:12:20 ns pluto[14479]: "left-to-right" #2: sent QI2, IPsec SA established

このログから、次のようなことがわかります。
・ Phase 1では「ns.right-server.net」とメインモードでISAKMP SAを確立し、(@行目〜B行目)
・ Phase 2では「RSASIG+ENCRYPT+TUNNEL+PFS」というセキュリティポリシーのもと、クイックモードで
  IPsec SA確立した。(C行目・D行目)
(注)IPsecでは、制御用チャネルであるISAKMP SAの確立をIKEの「Phase 1」と呼び、実際にパケットを
   暗号化して転送するためのIPsec SAの確立を「Phase 2」と呼びます。

それでは、構築したVPN間でどのようにパケットが流れるかをtcpdumpを使って確認してみましょう。
AのLinux Server上で
# tcpdump -i ppp0 > /var/log/ppp0.log
として通過するパケットを記録します。

そして、@のPC1(192.168.1.11)からFのPC2(192.168.2.22)にPINGを実行します。
# ping -n 1 192.168.2.22
(余談:PC1はWindowsマシンなので引数はnです。)

そして、この /var/log/ppp0.log を見ると、
22:13:09.978851 123.45.67.8 > 123.45.67.9: ESP(spi=0xe3d623f2,seq=0x79)
22:13:10.064050 123.45.67.9 > 123.45.67.8: ESP(spi=0x1d6b6572,seq=0x6e)
というように、インターネット間でESP(Encapsulating Security Payload)のプロトコルを使いパケットが送受信されていることがわかります。
(SPI:Security Parameters Index、終点とセキュリティプロトコルが同じSAを多重化するための識別子)

これをAのLinux Server上のipsec0に流れるパケットを見ると、
22:13:09.857576 192.168.1.11 > 192.168.2.22: icmp: echo request
22:13:10.943149 192.168.2.22 > 192.168.1.11: icmp: echo reply
というように、ローカルエリア内で通常のPINGのパケットがやり取りされていることがわかります。


ところで、AのLinux ServerからFのPC2(192.168.2.22)にPINGするとどうなるでしょうか。

結論は、パケットロスという結果になります。
これは、IPsecによりAのLinux ServerとEのLinux Server間でトンネルモードによるVPNを構築しているためです。
セキュリティゲートウェイであるAのLinux Serverは、@のPC1が投げてきたパケットについてはIPsec化しますが、AのLinux Server自身が作成したパケットについてはIPsec化しないためです。

PINGの他にも、VPNを実感する方法があります。
@のPC1のエクスプローラーのアドレスバーに「\\192.168.2.22」と入力してみてください。
すると、FのPC2上にある共有フォルダが表示され、ファイルのやり取りができます。(^_^)v
(当然、事前にFのPC2で共有フォルダを作成しておかなければなりません。)

なお、IPsecによるVPNを切断するには
# /etc/init.d/ipsec stop
とします。


(7)注意点
最後に、今回構築したVPNで注意しなければならない点を書いておかなければなりません。
それは、@のPC1とAのLinux Serverのサブネットが、DのLinux ServerとEのLinux Serverのサブネットと同じである(どちらも192.168.1.0/24)という点です。

VPNを構築していない状態では、FのPC2にとって「192.168.1.11」というIPアドレスはDのLinux Serverを指しますが、VPNを構築した状態では「192.168.1.11」というIPアドレスは@のPC1を指すことになります。

ですから、IPsecによる拠点間VPN構築時には、双方のLAN側のサブネットが重ならないよう設計しなければなりません。

この点については、ほとんどのIPsecの解説で書かれていますが、今回はあえてこういう使い方もあるということでダブらせてみました。

お役に立てたでしょうか。(~_~;)


back HOME vpn_index