10
11

More than 5 years have passed since last update.

SoftLayerとVyOSでネットワークの基礎を勉強2-(L2TP/IPsecリモートアクセス編)

Posted at

1. はじめに

 SoftLayer上のVyOSにL2TP/IPsecリモートアクセスの設定をして、Windows7 / 10クライアントから接続します。
01.png

<今回使用したVyOSは1.1.6(Heliun)です。VyOSのL2TPは「最初に接続したユーザが接続状態の時、別のユーザが接続できない」といった問題があります。(一人しか接続できない。)
過去のVyattaでも同じ問題があり、まだ解決していません。
複数ユーザでL2TP/IPsecリモートアクセスを使う場合は、OpenVPNやWindows2008/2012を検討したほうが良いと思います。
ちなみに、最初のユーザ(Aさん)が接続している状態で別のユーザ(Bさん)が接続しようとすると、下記メッセージが表示されBさんは接続できませんでした。

02.png

2. L2TPについて

 L2TPはレイヤー2で動作するトンネリングプロトコルで、暗号化の機能はありませんので、レイヤー3のIPsec暗号化と合わせて使用します(L2TP/IPsec)。

L2のトンネリングプロトコルは他に、
・PPTP(Microsoft, 3Com, Lucentが開発)
・L2F (Ciscoが開発)

があり、L2TPはPPTPとL2Fを統合し、IETFで標準化( RFC2661 )されています。

3. 構成について

 SoftLayerTokyoロケーションにL2TP/IPsecサーバを設定し、インターネット経由でWindows7 / 10クライアントを接続します。
03.png

041.png
042.png

クライアントIPプール用にSoftLayerのポータルより、Private Portable IPをオーダーしました。
04.png

IPプール: 10.132.42.52~10.132.42.62
※SoftLayerがインスタンスを作成する際に使用する「Private Primary」IPアドレスを使用すると、新たにインスタンスをオーダーした際にアドレスバッティングする事がありますので、PortableIPを使用してください。

4. VyOSのL2TPリモートアクセス設定(ssh接続用)

VyOSの導入は下記情報などを参考にしてください。
QIITA「SoftLayer仮想サーバにVyOSをインストールしました」
http://qiita.com/Mitsu-Murakita/items/d793250566a8e9f3562b

VyOSの設定はSoftLayerのKVMで行います。
操作につぃては、下記情報を参考にしてください。
QIITA「SoftLayerとvyosでネットワークの基礎を勉強1-(トンネルGRE編)」
http://qiita.com/Mitsu-Murakita/items/73d497b391664273174e

4-1. VyOS初期値

vyos初期値
interfaces{
    ethernet eth0{
        hw-id 06:54:db:17:0e:60
    }
    ethernet eth1{
        hw-id 06:6d:4a:3d:82:8e
    }
system{
    config-managemant{
        commit-revision 20
    }
    console{
        device ttys0{
            speed 9600
        }
    }
    login{
        user vyos{
            authentication{
                encrypted-password S1S5FsQse2v$VQLh5eeEp4ZzGmCG/PRBA1
                plaintext-password ""
            }
            level admin
        }
    }
    ntp{
        server 0.pool.ntp.org{
        }
        server 1.pool.ntp.org{
        }
        server 2.pool.ntp.org{
        }
    }
    package{
        repository community{
            components main
            distribution heliunm
            url http://packages.vyos.net/vyos
        }
    }
    syslog{
        global{
            facility protocols{
                level debug
            }
        }
    }
}

4-2. SSHで接続できるように設定

KVMでは操作しづらいので、SSH接続できるように設定を行います。
KVMでの操作です。

IP(interface)の設定

ここでは、eth0がプライベートeth1がパブリックです。

IP(interfaces)の設定
# set interfaces ethernet eth0 address 10.132.52.225/26 ⏎
# set interfaces ethernet eth1 address 161.202.91.39/28 ⏎
# commit ⏎
# save ⏎

下記3行は再起動後、自動的に追加されますが、ここでは明示的に設定します。
  ・duplex auto
  ・smp_affinity auto
  ・speed auto

IP(interfaces)の設定続き
# set interfaces ethernet eth0 duplex auto ⏎
# set interfaces ethernet eth1 duplex auto ⏎
# set interfaces ethernet eth0 smp_affinity auto ⏎
# set interfaces ethernet eth1 smp_affinity auto ⏎
# set interfaces ethernet eth0 speed auto ⏎
# set interfaces ethernet eth1 speed auto ⏎
# commit ⏎
# save ⏎

ssh(service)の設定

クライアントPCからssh接続できるようにします。

ssh(service)の設定
# set service ssh port 22 ⏎
# commit ⏎
# save ⏎

Gatewayアドレス(system)の設定

パブリックのゲートウェイアドレスを設定。

Gatewayアドレス(system)の設定
# set system gateway-address 161.202.91.33 ⏎
# commit ⏎
# save ⏎

DNS(system)の設定

SoftLayerのDNS、
・10.0.80.11
・10.0.80.12 を設定します。

DNS(system)の設定
# set system name-server 10.0.80.11 ⏎
# set system name-server 10.0.80.12 ⏎
# commit ⏎
# save ⏎

ドメイン名(system)の設定

ここではドメイン名を「softlayer.com」にしました。

ドメイン名(system)の設定
# set system domain-name softlayer.com ⏎
# commit ⏎
# save ⏎

ホスト名(system)の設定

ここではホスト名を「VyOS-TOK」にしました。

ホスト名(system)の設定
# set system host-name VyOS-L2TP ⏎
# commit ⏎
# save ⏎

タイムゾーン(system)の設定

ここではタイムゾーンを「Asia/Tokyo」にしました。

ホスト名(system)の設定
# set system time-zone Asia/Tokyo ⏎
# commit ⏎
# save ⏎

NTP(system)の設定

初期値で
    ntp{
      server 0.pool.ntp.org{
      }
      server 1.pool.ntp.org{
      }
      server 2.pool.ntp.org{
      }
    }
が設定されていますので、これを削除して
ntp.nict.jpを設定しました。

初期値NTPの削除
# delete system ntp ⏎
# commit ⏎
# save ⏎
NTP(system)の設定
# set system ntp server ntp.nict.jp⏎
# commit ⏎
# save ⏎

これでクライアントPCからssh接続できるようになりました。

これ以降はTeraTermで接続して、L2TP/IPsec設定を続けます。
05.png

5. VyOSのL2TP/IPsecリモートアクセス設定

TeraTermでの操作です。
※説明しやすいように行番号[xx]をつけてますが、実際に登録する際は行番号を入力しないでください。

L2TP/IPsecリモートアクセス設定値について
[01] set vpn ipsec ipsec-interfaces interface eth1
[02] set vpn ipsec nat-traversal enable
[03] set vpn ipsec nat-networks allowed-network 0.0.0.0/0
[04] set vpn l2tp remote-access outside-address 161.202.91.39
[05] set vpn l2tp remote-access client-ip-pool start 10.132.42.52
[06] set vpn l2tp remote-access client-ip-pool stop 10.132.42.62
[07] set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
[08] set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret password
[09] set vpn l2tp remote-access authentication mode local
[10] set vpn l2tp remote-access authentication local-users username user01 password user01
[11] set vpn l2tp remote-access authentication local-users username user02 password user02
[12] set vpn l2tp remote-access authentication local-users username user03 password user03

【説明】
[01] ipsecのインターフェースをパブリックIPのeth1に設定。
[02] NATトラバーサルを設定
[03] ここでは、リモートからのアクセスをすべて(0.0.0.0)にしました。
[04] パブリック(eth1)のアドレス。
[05]-[06] クライアントIP用のIPプールの範囲を設定。
  Privete PortableIPのIPアドレスを使用します。
 ここでは10.132.42.52~10.132.42.62を設定しました。
[07] 認証に事前共有鍵方式を使用します。
[08] ここでは、事前共有鍵を"password"としました。
[09] クライアントPCの認証をローカル登録で使用します。
[10]-[12] ユーザID、パスワードの設定(ローカル登録)。
  ここでは、3ユーザーを作成しました。
    ・ユーザーID:user01 / パスワード:user01
    ・ユーザーID:user02 / パスワード:user02
    ・ユーザーID:user03 / パスワード:user03

vyosL2TPリモートアクセス設定
 interfaces {
     ethernet eth0 {
         address 10.132.52.225/26
         duplex auto
         hw-id 06:54:db:17:0e:60
         smp_affinity auto
         speed auto
     }
     ethernet eth1 {
         address 161.202.91.39/28
         duplex auto
         hw-id 06:6d:4a:3d:82:8e
         smp_affinity auto
         speed auto
     }
     loopback lo {
     }
 }
 service {
     ssh {
         port 22
     }
 }
 system {
     config-management {
         commit-revisions 20
     }
     console {
         device hvc0 {
             speed 9600
         }
         device ttyS0 {
             speed 9600
         }
     }
     domain-name softlayer.com
     gateway-address 161.202.91.33
     host-name VyOS-L2TP
     login {
         user vyos {
             authentication {
                 encrypted-password $1$e3p8PPXh$kGXa8tOvqpnGkbJApLO4A/
                 plaintext-password ""
             }
             level admin
         }
     }
     name-server 10.0.80.11
     name-server 10.0.80.12
     ntp {
         server ntp.nict.jp {
         }
     }
     package {
         auto-sync 1
         repository community {
             components main
             distribution helium
             password ""
             url http://packages.vyos.net/vyos
             username ""
         }
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
     }
     time-zone Asia/Tokyo
 }
 vpn {
     ipsec {
         ipsec-interfaces {
             interface eth1
         }
         nat-networks {
             allowed-network 0.0.0.0/0 {
             }
         }
         nat-traversal enable
     }
     l2tp {
         remote-access {
             authentication {
                 local-users {
                     username user01 {
                         password user01
                     }
                     username user02 {
                         password user02
                     }
                     username user03 {
                         password user03
                     }
                 }
                 mode local
             }
             client-ip-pool {
                 start 10.132.42.52
                 stop 10.132.42.62
             }
             ipsec-settings {
                 authentication {
                     mode pre-shared-secret
                     pre-shared-secret password
                 }
             }
             outside-address 161.202.91.39
         }
     }
 }

6. クライアントPC側の設定

01.png
クライアントPC側の設定において、Windows7と10ではディフォルト値が違いますので、注意して下さい。
Windows7では接続できるが、Windows10では接続できないといった事が発生します。

Windows10での接続エラー
06.png

<Windows7/10デフォルト値の違い>
接続のプロパティのセキュリティタグ
(Windows7)
・データの暗号化:「暗号化が必要(サーバーが拒否する場合は切断します)」
・認証:「次のプロトコルを許可する」チェック済
(Windows10)
・データの暗号化:「暗号化は省略可能(暗号化なしでも接続します)」
・認証:チェックなし
07.png

接続エラーを起こさないためには、Windows10の設定を変更します。
・データの暗号化:「暗号化が必要(サーバーが拒否する場合は切断します)」
・認証:「次のプロトコルを許可する」チェック済

6-1. クライアントPC側の設定(Windows7)

<ネットワーク共有センター>
08.png
「新しい接続またはネットワークのセットアップ」

09.png

「職場に接続します」

10.png
「いいえ、新しい接続を作成します(C)」

11.png
「インターネット接続(VPN)を使用します(I)」

12.png
"インターネットアドレス":VyOS構成のパブリックインターフェース(eth1)
"接続先の名称":
「今な接続しない。」チェックを外す
⇒「次へ」

13.png
"ユーザ名"、”パスワード”:VyOS構成で指定した設定値を入れる
⇒「接続」

14.png
「閉じる」

<ネットワーク接続>
15.png
「プロパティ」

16.png
”VPNの種類”:「IPsecを利用したレイヤー2トンネリングプロトコル(L2TP/IPsec」選択
⇒「詳細」

17.png
「認証に事前共有キーを使う(P)」選択
"キー":VyOS構成で指定した設定値を入れる


18.png
「リモートネットワークでデフォルトゲートウェイを使う(U)」チェックをはずす

6-2. クライアントPC側の設定(Windows10)

<ネットワーク共有センター>
19.png
「新しい接続またはネットワークのセットアップ」

20.png
「職場に接続します」⇒「次へ」

21.png
「いいえ、新しい接続を作成します(C)」⇒「次へ」

22.png
「インターネット接続(VPN)を使用します」

23.png
"インターネットアドレス":VyOS構成のパブリックインターフェース(eth1)
"接続先の名称":
⇒「作成」

<ネットワーク接続>
24.png
選択し、プロパティ表示

<セキュリティタグ>
25.png
”VPNの種類”:「IPsecを利用したレイヤー2トンネリングプロトコル(L2TP/IPsec」選択
⇒「詳細設定」

26.png
「認証に事前共有キーを使う(P)」選択
"キー":VyOS構成で指定した設定値を入れる
⇒「OK」

27.png
”データの暗号化”:「暗号化が必要(サーバーが拒否する場合は切断します)」選択
「次のプロトコルを許可する」選択
⇒「OK」

7. VyOSのL2TP/IPsecリモートアクセス接続確認

Teratermで接続したVyOSで確認します。

Windows10クライアントPCからL2TP接続
29.png
状況が接続済みになり、接続完了。
30.png

VyOSコマンドの "show vpn remote-access"で確認します。
31.png

8. おわりに

今回の設定のだけでは、セキュリティ上かなり脆弱な状態ですので、フィルター(ファイアーウォール)の設定で補強して下さい。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11