バックLANパターン#
本構成はFJcloud-O 東日本/西日本リージョン3向けとなります。
要求事項1#
-
ネットワークは「業務用」と「管理用」に分けて、仮想サーバのメンテナンスは「管理用ネットワークからのみアクセス可」としたい。
→ 管理用ネットワークに相当する役割を、本ドキュメントでは 「バックLAN」 と呼称します。 -
業務用サーバのインターネット側には、メンテナンス用のポートを空けたくない。
インターネット接続パターン のような、特定のIPアドレスを制限して受信を許可する方式はNGの場合
要求事項2#
上記に加えて、
- 仮想サーバのメンテナンスは、「特定のサーバ(例:踏み台サーバ)からのみアクセス可」としたい。
対応するデザインパターン概要#
-
業務用サーバに「ポート(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)用#
- セキュリティグループ
- セキュリティグループ名:BackLan_SG
- 説明:バック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接続)用#
- セキュリティグループ
- セキュリティグループ名:SSLVPN_SG
- 説明: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(業務)用#
- セキュリティグループ
- セキュリティグループ名:Business_SG
- 説明:業務用
- 作成手順は初期構築ガイド セキュリティグループの作成 参照
- セキュリティグループルール
- 送信:「TCP」「UDP」「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 |
※ 実際の運用においては、 セキュリティグループ活用 を参考に、適切なセキュリティグループを設定してください。
3. SSL-VPN接続作成#
(1) VPNサービスの作成#
- ルータA1にVPNサービスを設定します。
- 作成手順は初期構築ガイド VPNサービスの作成 参照
項目 | 設定値例 |
---|---|
仮想ルータ名 | routerA1 |
サブネット名 | subnetA1 |
VPNサービス名 | ssl-vpn-vpnservice |
説明 | (空欄) |
管理状態 | true |
※「指定した仮想ルータにファイアウォールが設定されていません。VPNサービス作成後に設定してください。」というポップアップが現れますが、ここではOKをクリックします。
(2) SSL-VPNコネクションの作成#
- SSL-VPNコネクションを作成します。
- 作成手順は初期構築ガイド 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プール」の設定は不要。
(1)サーバを再起動し、疎通確認#
注意事項#
- 本パターンは2019年3月時点のFJcloud-O 東日本/西日本リージョン3にて動作検証しています。