バックLANパターン[東日本/西日本リージョン3向け]#

要求事項1#

  • ネットワークは「業務用」と「管理用」に分けて、仮想サーバのメンテナンスは「管理用ネットワークからのみアクセス可」としたい。
    → 管理用ネットワークに相当する役割を、本ドキュメントでは 「バックLAN」 と呼称します。

  • 業務用サーバのインターネット側には、メンテナンス用のポートを空けたくない。
    インターネット接続パターン のような、特定のIPアドレスを制限して受信を許可する方式はNGの場合

要求事項2#

上記に加えて、

  • 仮想サーバのメンテナンスは、「特定のサーバ(例:踏み台サーバ)からのみアクセス可」としたい。

対応するデザインパターン概要#

image

  • 業務用サーバに「ポート(IPアドレス)」を追加し、複数の内部ネットワークに接続します。

    • 例:業務用サーバは、2つの内部ネットワークに接続

      • 内部ネットワークA2:業務用
      • 内部ネットワークA0:バックLAN
  • 業務用サーバのバックLAN側のみ、「ssh」や「rdp」などメンテナンス用ポートへのアクセスを許可します。

  • 作業用PCから、SSL-VPN経由で「踏み台サーバ」にアクセスした後、「業務用サーバ」にアクセスすることを想定しています。

  • 要求事項2 に対応する場合、バックLANのセキュリティグループに「踏み台サーバからのアクセスのみ許可」するよう設定することで、内部ネットワークに接続された、他の仮想サーバからのアクセスを制限することができます。

実装サンプル#

  • 注意:「名称」や「IPアドレス」などの設定値例は、本ドキュメント公開用に修正しています。
    (検証時の値とは異なります)

1. 内部ネットワークの作成#

仮想ネットワーク・仮想ルータを作成します。

  • 以下の設定値例に従い、「内部ネットワークA0」、「内部ネットワークA1」、「内部ネットワークA2」を作成します。
  • DHCPは「有効」、DNSサーバは「8.8.8.8」を設定します。
ネットワーク 仮想ネットワーク名 サブネット名 サブネット ゲートウェイIP 用途
内部ネットワークA1 netA1 subnetA1 192.168.1.0/24 192.168.1.1 SSL-VPN接続用
内部ネットワークA2 netA2 subnetA2 192.168.2.0/24 192.168.2.1 業務用
内部ネットワークA0 netA0 subnetA0 192.168.0.0/24 192.168.0.1 バックLAN用
  • 以下の設定値例に従い、「ルータA0」、「ルータA1」、「ルータA2」を作成します。

  • 作成後、インターフェースを追加し、作成したサブネットと紐づけします。

ルータ 仮想ルータ名 外部ネットワーク サブネット接続 IPアドレス 用途
ルータA1 routerA1 接続(fip-net) subnetA1 192.168.1.1 SSL-VPN接続用
ルータA2 routerA2 接続(fip-net) subnetA2 192.168.2.1 業務用
ルータA0 routerA0 subnetA0 192.168.0.1 バックLAN用

2. セキュリティグループ作成#

以下のセキュリティグループ・セキュリティグループルールを作成します。
実際の運用においては、 セキュリティグループ活用 を参考に、適切なセキュリティグループを設定してください。

(1)内部ネットワークA0(バックLAN)用#

  • セキュリティグループ
  • セキュリティグループルール
    • 送信:「TCP」「UDP」「ICMP」を全て許可
    • 受信:「内部ネットワークA0」からの、「SSH (22/tcp)」「RDP (3389/tcp)」「ICMP」を許可
    • 設定手順は初期構築ガイド セキュリティグループの作成 参照
No. ルール 方向 オープンポート ポート番号 接続先 CIDR
1 ALL TCP(1-65535) 送信 CIDR 0.0.0.0/0
2 ALL UDP(1-65535) 送信 CIDR 0.0.0.0/0
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 ALL ICMP 受信 CIDR 192.168.0.0/24
5 カスタムTCPルール 受信 ポート番号 22 CIDR 192.168.0.0/24
6 カスタムTCPルール 受信 ポート番号 3389 CIDR 192.168.0.0/24

(2)内部ネットワークA1(SSL-VPN接続)用#

  • セキュリティグループ
  • セキュリティグループルール
    • 送信:「TCP」「UDP」「ICMP」を全て許可
    • 受信:「SSL-VPNクライアントプール」からの、「SSH (22/tcp)」「RDP (3389/tcp)」を許可
    • 設定手順は初期構築ガイド セキュリティグループの作成 参照
No. ルール 方向 オープンポート ポート 接続先 CIDR
1 ALL TCP(1-65535) 送信 CIDR 0.0.0.0/0
2 ALL UDP(1-65535) 送信 CIDR 0.0.0.0/0
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 カスタムTCPルール 受信 ポート番号 22 CIDR 192.168.246.0/24
5 カスタムTCPルール 受信 ポート番号 3389 CIDR 192.168.246.0/24

(3)内部ネットワークA2(業務)用#

No. ルール 方向 オープンポート ポート 接続先 CIDR
1 ALL TCP(1-65535) 送信 CIDR 0.0.0.0/0
2 ALL UDP(1-65535) 送信 CIDR 0.0.0.0/0
3 ALL ICMP 送信 CIDR 0.0.0.0/0

※ 実際の運用においては、 セキュリティグループ活用 を参考に、適切なセキュリティグループを設定してください。

3. SSL-VPN接続作成#

(1) VPNサービスの作成#

  • ルータA1にVPNサービスを設定します。
項目 設定値例
仮想ルータ名 routerA1
サブネット名 subnetA1
VPNサービス名 ssl-vpn-vpnservice
説明 (空欄)
管理状態 true

※「指定した仮想ルータにファイアウォールが設定されていません。VPNサービス作成後に設定してください。」というポップアップが現れますが、ここではOKをクリックします。

(2) SSL-VPNコネクションの作成#

項目 設定値例
SSL-VPN接続名 ssl-vpn-conn
管理状態 true
証明書 FJCS証明書(デフォルト)
グローバルIP 自動割当
クライアントIPプール 192.168.246.0/24

4. 仮想サーバ作成#

(1)仮想サーバの作成#

仮想サーバを作成します。

  • サーバグループは「設定なし」、デバイスサイズは最小ディスク容量を設定する
  • CentOSサーバのキーペアは任意のキーペアを選択する
  • Windows Serverのパスワードは「手動」を選択し、任意のパスワードを設定する
仮想サーバ 仮想サーバ名 仮想サーバタイプ OSイメージ 選択済み仮想ネットワーク セキュリティグループ
踏み台サーバ1 Fumi_Cent P3-1 CentOS 7.6 netA1 SSL-VPN_SG
踏み台サーバ2 Fumi_Win M3-1 [Hourly] Windows server 2019 netA1 SSL-VPN_SG
業務用サーバ1 Biz_Cent P3-1 CentOS 7.6 netA2 Business_SG
業務用サーバ2 Biz_Win M3-1 [Hourly] Windows server 2019 netA2 Business_SG

5. バックLAN接続#

仮想サーバを作成後、「バックLAN」に接続します。

(1)各サーバに対して、以下の処理を実施#

  • 各サーバに割当てられたプライベートIPアドレスを変更
    • IaaSポータル画面の場合:仮想サーバ一覧 → 「仮想サーバ名」のリンク → 既存のポートの「アクション」 → 「編集」を選択
仮想サーバ 仮想サーバ名 ポート名 IPアドレス 用途
踏み台サーバ1 Fumi_Cent Fumi_CentA1 192.168.1.11 SSL-VPN用
踏み台サーバ2 Fumi_Win Fumi_WinA1 192.168.1.12 SSL-VPN用
業務用サーバ1 Biz_Cent Biz_CentA2 192.168.2.21 業務用
業務用サーバ2 Biz_Win Biz_WinA2 192.168.2.22 業務用
  • 各サーバを「内部ネットワークA0」に接続
    • IaaSポータル画面の場合:上記の続き、「ポート」の「+」をクリック
仮想サーバ 仮想サーバ名 ポート名 ネットワーク名 サブネット名 IPアドレス 用途
踏み台サーバ1 Fumi_Cent Fumi_CentA0 netA0 subnetA0 192.168.0.11 バックLAN用
踏み台サーバ2 Fumi_Win Fumi_WinA0 netA0 subnetA0 192.168.0.12 バックLAN用
業務用サーバ1 Biz_Cent Biz_CentA0 netA0 subnetA0 192.168.0.21 バックLAN用
業務用サーバ2 Biz_Win Biz_WinA0 netA0 subnetA0 192.168.0.22 バックLAN用
  • 追加したポートのセキュリティグループを変更
    • IaaSポータル画面の場合:上記の続き、追加されたポートの「アクション」 → 「セキュリティグループ設定」をクリック
    • 初期設定値「default」を解除、「BackLan_SG」を選択
    • 「仮想サーバ詳細画面」をリロードして、設定内容が反映されていることを確認
仮想サーバ 仮想サーバ名 ポート名 IPアドレス セキュリティグループ 用途
踏み台サーバ1 Fumi_Cent Fumi_CentA1 192.168.1.11 SSLVPN_SG SSL-VPN用
Fumi_CentA0 192.168.0.11 BackLan_SG バックLAN用
踏み台サーバ2 Fumi_Win Fumi_WinA1 192.168.1.12 SSLVPN_SG SSL-VPN用
Fumi_WinA0 192.168.0.12 BackLan_SG バックLAN用
業務用サーバ1 Biz_Cent Biz_CentA2 192.168.2.21 BackLan_SG 業務用
Biz_CentA0 192.168.0.21 BackLan_SG バックLAN用
業務用サーバ2 Biz_Win Biz_WinA2 192.168.2.21 BackLan_SG 業務用
Biz_WinA0 192.168.0.22 BackLan_SG バックLAN用

(2)全てのサーバが、「バックLAN」に接続されていることを確認#

  • IaaSポータル画面の場合:仮想ネットワーク一覧 → 「netA0」のリンク → 「ポート」を確認
  • 作成したポートがすべて存在すること、状態が「ACTIVE」であること、管理状態が「Up」であることを確認する

(3)全てのサーバを再起動#

設定変更を反映させるために仮想サーバを再起動します。

  • IaaSポータル画面の場合:仮想サーバ一覧 → 仮想サーバのアクション → 既存のポートの「アクション」 → 「再起動(ハード)」を選択

5.CentOS踏み台サーバの設定変更#

CentOS「踏み台サーバ」のルーティング設定を変更します。

(1)「踏み台サーバ」にログイン#

  • 作業用PCからSSL-VPN接続

  • TeraTermを使用して、踏み台サーバにログイン

(2)踏み台サーバから、他のサーバへSSHするための準備#

  • キーペアファイルを、自PCから踏み台サーバへ転送

    • TeraTermの[ファイル]→[ssh scp...]を選択
    • from:「送信するキーペアファイル」を選択、to:踏み台サーバの任意フォルダ(例:/home/k5user)を指定
  • キーペアファイルのアクセス権限を「600」に指定

    $ chmod 600 ./test-keypair.pem
    $ ls -l
    total 4
    -rw-------. 1 k5user k5user 1679 Sep 13  2018 test-keypair.pem
    

(3)ルーティング設定を変更#

  • rootユーザに変更し、「バックLANポート」追加後のルーティング情報を確認

    $ sudo su -
    # ip route show
    default via 192.168.1.1 dev eth0 proto dhcp metric 100
    default via 192.168.0.1 dev eth1 proto dhcp metric 101
    192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.x metric 101
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.x metric 100
    

  • 追加ポート:eth1の「ネットワークインタフェース設定ファイル」を作成
    eth1の設定ファイル「ifcfg-eth1」が存在しないことを確認

    # cd /etc/sysconfig/network-scripts/
    # ls -l |grep ifcfg
    -rw-r--r--. 1 root root   126 Apr  3  2017 ifcfg-eth0
    -rw-r--r--. 1 root root   254 Aug 24  2018 ifcfg-lo
    

  • eth0の設定ファイルをコピー+修正

    # cp -Rp ifcfg-eth0 ifcfg-eth1
    # vi ifcfg-eth1
    

  • ifcfg-eth1の修正方法
    「バックLAN用ポート」はデフォルトルートにしない

    DEVICE="eth1"   :[eth0]を[eth1]に変更
    DEFROUTE="no"  :末尾に追加
    PEERDNS="no"   :末尾に追加
    

  • ifcfg-eth1の修正後

    # cat ifcfg-eth1
    DEVICE="eth1"
    BOOTPROTO="dhcp"
    ONBOOT="yes"
    TYPE="Ethernet"
    USERCTL="yes"
    PEERDNS="yes"
    IPV6INIT="no"
    PERSISTENT_DHCLIENT="1"
    DEFROUTE="no"
    PEERDNS="no"
    

  • 「SSL-VPNクライアントIPプール」のスタティックルーティングを追加
    将来のルーティング変更(例:デフォルトルートをバックLAN側に切替)に伴い、SSL-VPN接続できなくなるリスクを回避するため、設定しておく

  • 「route-eth0」ファイルを新規作成

    # vi route-eth0
    # cat route-eth0
      192.168.246.0/24 via 192.168.1.1 dev eth0
    

(4)サーバを再起動#

(5)踏み台サーバにログイン、rootユーザに変更しルーティング情報を確認#

  • 「default via~」の設定は、eth0のみであること

  • ルーティングの優先度:metricの少ない番号が優先される

  • スタティックルーティングが追加されていること

    # ip route show
    default via 192.168.1.1 dev eth0 proto dhcp metric 100
    192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.x metric 101
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.x metric 100
    192.168.246.0/24 via 192.168.1.1 dev eth0  proto static metric 100
    

(6)ping確認#

  • セキュリティグループは、検証完了後に適切な値を設定すること

(7)他サーバへのSSH接続確認#

  • 踏み台サーバから、業務用サーバにログイン → ログアウト
    $ ssh -i ./test-keypair.pem k5user@192.168.0.x
    $ exit
    

(8)インターネットへの接続確認#

  • 例:外部のDNSサーバにアクセス
    $ host -a www.google.com
    Trying "www.google.com"
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1336
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;www.google.com.                        IN      ANY
    
    ;; ANSWER SECTION:
    www.google.com.         299     IN      A       172.217.161.36
    www.google.com.         299     IN      AAAA    2404:6800:4004:80a::2004
    
    Received 76 bytes from 8.8.8.8#53 in 42 ms
    

6. CentOS業務用サーバの設定変更#

CentOS「業務用サーバ」のルーティング設定を変更します。
手順は 5. CentOS踏み台サーバの設定変更 と同じです。

(1)「踏み台サーバ」から「業務用サーバ」にログイン、rootユーザに変更#

$ ssh -i ./test-keypair.pem k5user@192.168.0.x
$ sudo su -

(2)ルーティング設定を変更#

「SSL-VPNクライアントIPプール」のスタティックルーティング追加は不要です。

  • 修正後のルーティング情報
    # ip route show
    default via 192.168.3.1 dev eth0 proto dhcp metric 100
    192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.x metric 101
    192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.x metric 100
    

(3)サーバを再起動し、疎通確認#

7. Windows「踏み台サーバ」の設定変更#

Windows「踏み台サーバ」のルーティング設定を変更します。

(1)リモートデスクトップまたはリモートコンソールを使用して、Windows「踏み台サーバ」にログイン#

(2)「イーサネットアダプターの番号」を確認#

  • 「スタートメニュー」 → 「Windowsシステムツール」 → 「コマンドプロンプト」
  • 以下のコマンドを実行します。
    C:\Users\k5user>ipconfig
    
    Windows IP 構成
    イーサネット アダプター イーサネット:
       ()
       デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
    
    イーサネット アダプター イーサネット 3:
       ()
       デフォルト ゲートウェイ . . . . . . .: 192.168.0.1
    

上記出力例の場合、インターネットアダプターは以下となります。

  • SSL-VPN接続用:ゲートウェイ(192.168.1.1) → 「イーサネット:」
  • バックLAN用 :ゲートウェイ(192.168.0.1) → 「イーサネット 3:」

(3)Windows「踏み台サーバ」のルーティング設定を変更#

  • 「コントロール パネル」 → 「ネットワークとインターネット」 → 「ネットワークと共有センター」 → 「アダプターの設定の変更」
  • 各イーサネットアダプターに、メトリック番号を設定する

    • 「イーサネットアダプター」を右クリック → 「プロパティ」 → 「インターネット プロトコル バージョン4(TCP/IPv4)」を選択 → 「プロパティ」 → 「詳細設定」
    • 「自動メトリック」のチェックを外す
    • 「インターフェイス メトリック」に値を設定
      • 「SSL-VPN接続用」の数値 < 「バックLAN用」の数値 となるよう設定
      • 例)SSL-VPN接続用のインターフェイス メトリック値:2、バックLAN用のインターフェイス メトリック値:5
  • 「SSL-VPNクライアントIPプール」のスタティックルーティングを追加
    将来のルーティング変更(例:デフォルトルートをバックLAN側に切替)に伴い、SSL-VPN接続できなくなるリスクを回避するため、設定しておく

    • コマンドプロンプトを「管理者として実行」で起動する
    • ルーティング追加
      コマンドに「-p」を指定し、再起動後も削除されないようにする
      C:\Users\k5user>route -p add 192.168.246.0 mask 255.255.255.0 192.168.1.1 metric 16
      

(4)サーバを再起動#

(5)踏み台サーバにログイン、ルーティング情報を確認#

  • ルーティングの優先度:メトリックの少ない番号が優先される

  • 固定ルート(スタティックルーティング)が追加されていること

    C:\Users\k5user>route print -4
    ()
    アクティブ ルート:
    ネットワーク宛先    ネットマスク    ゲートウェイ   インターフェイス メトリック
    	0.0.0.0         0.0.0.0         192.168.1.1      192.168.1.12     2
    	0.0.0.0         0.0.0.0         192.168.0.1      192.168.0.12     5
    ()
      192.168.246.0    255.255.255.0    192.168.1.1      192.168.1.12     17
    ()
    固定ルート:
    ネットワーク アドレス  ネットマスク  ゲートウェイ アドレス  メトリック
       192.168.246.0    255.255.255.0      192.168.1.1           16
    

(6)業務サーバへのリモートデスクトップ接続確認#

  • 踏み台サーバから、リモートデスクトップ接続にて業務用サーバ(192.168.0.22)にログインする
  • バックLAN用のネットワークのIPアドレスに接続する

(7)インターネットへの接続確認#

  • ブラウザでGoogle画面などを表示
  • 表示できない場合は「メトリックの設定値」や「セキュリティグループルール」を再確認

8. Windows業務サーバの設定変更#

Windows「業務用サーバ」のルーティング設定を変更します。
手順は 7. Windows踏み台サーバの設定変更 と同じです。
ただし、「SSL-VPNクライアントIPプール」の設定は不要。

(3)サーバを再起動し、疎通確認#

注意事項#

  • 本パターンは2019年3月時点のFJcloud-O 東日本/西日本リージョン3にて動作検証しています。