バックLANパターン#
本構成はFJcloud-O 東日本/西日本リージョン3向けとなります。
要求事項#
業務システムをセキュアに運用するために、以下に対応します。
-
ネットワークは「業務用」と「管理用」に分け、仮想サーバのメンテナンスは、「管理用ネットワークからのみアクセス可」としたい。
→ 管理用ネットワークに相当する役割を、本ドキュメントでは 「バックLAN」 と呼称します。 -
業務用サーバのインターネット側には、メンテナンス用のポートを空けたくない。
→インターネット接続パターン のような、特定のIPアドレスを制限して受信を許可する方式が取れない場合に対応します。 -
仮想サーバのメンテナンスは、特定のサーバ(踏み台サーバ)からのみアクセスできるようにしたい。
対応するデザインパターン概要#
-
業務用サーバに「ポート(IPアドレス)」を追加し、複数の内部ネットワークに接続します。
-
業務用サーバは、2つの内部ネットワークに接続
- 内部ネットワークA2:業務用
- 内部ネットワークA0:バックLAN
-
-
業務用サーバのバックLAN側のみ、「ssh」や「rdp」などメンテナンス用ポートへのアクセスを許可します。
-
作業用PCから、SSL-VPN経由で踏み台サーバにアクセスした後、業務用サーバにアクセスすることを想定しています。
-
業務用サーバーのバックLAN側セキュリティグループに「踏み台サーバからのアクセスのみ許可」するよう設定することで、他の仮想サーバからのアクセスを制限できます。
-
業務用サーバおよび踏み台サーバは、それぞれ、WindowsおよびRed Hat Enterprise Linux(以下、RHELと記載)で構築する手順を記載します。
実装サンプル#
- 注意:「名称」や「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) 仮想サーバの作成#
仮想サーバを作成します。
- サーバグループは「設定なし」、デバイスサイズは最小ディスク容量を設定する
- RHELサーバのキーペアは任意のキーペアを選択する
- 作成手順は初期構築ガイド 仮想サーバーを作成 参照
- Windows Serverのパスワードは「手動」を選択し、任意のパスワードを設定する
- 作成手順は初期構築ガイド 仮想サーバーを作成 参照
仮想サーバ | 仮想サーバ名 | 仮想サーバタイプ | OSイメージ | 選択済み仮想ネットワーク | セキュリティグループ |
---|---|---|---|---|---|
踏み台サーバ1 | Fumi_RHEL | P3-1 | [Hourly] Red Hat Enterprise Linux 8.x 64bit (English) | netA1 | SSL-VPN_SG |
踏み台サーバ2 | Fumi_Win | M3-1 | [Hourly] Windows server 2019 | netA1 | SSL-VPN_SG |
業務用サーバ1 | Biz_RHEL | P3-1 | [Hourly] Red Hat Enterprise Linux 8.x 64bit (English) | netA2 | Business_SG |
業務用サーバ2 | Biz_Win | M3-1 | [Hourly] Windows server 2019 | netA2 | Business_SG |
5. バックLAN接続#
仮想サーバを作成後、「バックLAN」に接続します。
(1) 各サーバに対して、以下の処理を実施#
- 各サーバに割当てられたプライベートIPアドレスを変更
- IaaSポータル画面の場合:仮想サーバ一覧 → 「仮想サーバ名」のリンク → 既存のポートの「アクション」 → 「編集」を選択
仮想サーバ | 仮想サーバ名 | ポート名 | IPアドレス | 用途 |
---|---|---|---|---|
踏み台サーバ1 | Fumi_RHEL | Fumi_RHELA1 | 192.168.1.11 | SSL-VPN用 |
踏み台サーバ2 | Fumi_Win | Fumi_WinA1 | 192.168.1.12 | SSL-VPN用 |
業務用サーバ1 | Biz_RHEL | Biz_RHELA2 | 192.168.2.21 | 業務用 |
業務用サーバ2 | Biz_Win | Biz_WinA2 | 192.168.2.22 | 業務用 |
- 各サーバを「内部ネットワークA0」に接続
- IaaSポータル画面の場合:上記の続き、「ポート」の「+」をクリック
仮想サーバ | 仮想サーバ名 | ポート名 | ネットワーク名 | サブネット名 | IPアドレス | 用途 |
---|---|---|---|---|---|---|
踏み台サーバ1 | Fumi_RHEL | Fumi_RHELA0 | netA0 | subnetA0 | 192.168.0.11 | バックLAN用 |
踏み台サーバ2 | Fumi_Win | Fumi_WinA0 | netA0 | subnetA0 | 192.168.0.12 | バックLAN用 |
業務用サーバ1 | Biz_RHEL | Biz_RHELA0 | 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_RHEL | Fumi_RHELA1 | 192.168.1.11 | SSLVPN_SG | SSL-VPN用 |
Fumi_RHELA0 | 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_RHEL | Biz_RHELA2 | 192.168.2.21 | Business_SG | 業務用 |
Biz_RHELA0 | 192.168.0.21 | BackLan_SG | バックLAN用 | ||
業務用サーバ2 | Biz_Win | Biz_WinA2 | 192.168.2.22 | Business_SG | 業務用 |
Biz_WinA0 | 192.168.0.22 | BackLan_SG | バックLAN用 |
(2) 全てのサーバが、「バックLAN」に接続されていることを確認#
- IaaSポータル画面の場合:仮想ネットワーク一覧 → 「netA0」のリンク → 「ポート」を確認
- 作成したポートがすべて存在すること、状態が「ACTIVE」であること、管理状態が「Up」であることを確認する
(3) 全てのサーバを再起動#
設定変更を反映させるために仮想サーバを再起動します。
- IaaSポータル画面の場合:仮想サーバ一覧 → 仮想サーバのアクション → 既存のポートの「アクション」 → 「再起動(ハード)」を選択
6. RHEL踏み台サーバの設定変更#
RHEL踏み台サーバのルーティング設定を変更します。
(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) ルーティング設定を変更#
(A) デバイスeth1をデフォルトルートから削除#
- rootユーザに変更し、「バックLANポート」追加後のルーティング情報を確認
ルーティング情報を確認の上、デバイスeth1でデフォルトルートを使用しないように設定 - IPアドレス192.168.0.11および192.168.1.11はデバイスeth0、eth1それぞれに割り当てられたIPアドレス
-
以下の作業で
default via 192.168.0.1 dev eth1 proto dhcp src 192.168.0.11 metric 101
の行が削除されるように、デバイスeth1をデフォルトルートから削除$ sudo su - # ip route default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.11 metric 100 default via 192.168.0.1 dev eth1 proto dhcp src 192.168.0.11 metric 101 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.11 metric 101 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11 metric 100
-
デバイス
eth1
のconnectionに対するUUIDを確認# nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 7d239b8f-3dfd-3fa7-b789-f629d2cac9ee ethernet eth0 Wired connection 2 6d6fab52-b583-3ea6-95ba-1a35ce467b6e ethernet eth1 System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet -- System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet --
-
デバイスeth1のconnectionに対するUUIDを指定し、デバイスをデフォルトゲートウェイとして使用しないようする設定(
ipv4.never-default
)が無効になっていることを確認
# nmcli connection show 6d6fab52-b583-3ea6-95ba-1a35ce467b6e | grep "ipv4.never-default" ipv4.never-default: no
-
デバイスeth1をデフォルトゲートウェイとして使用しないように設定
-
ipv4.never-default
の設定パラメーターをyes
に修正
nmcli connection modify 6d6fab52-b583-3ea6-95ba-1a35ce467b6e ipv4.never-default yes
-
設定の変更内容を確認
# nmcli connection show 6d6fab52-b583-3ea6-95ba-1a35ce467b6e | grep "ipv4.never-default" ipv4.never-default: yes
-
設定変更を反映
# nmcli connection up 6d6fab52-b583-3ea6-95ba-1a35ce467b6e Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
-
ルーティングを再度確認し、デバイスeth1がデフォルトルートとして使用されていないことを確認
# ip route default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.11 metric 100 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.11 metric 101 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11 metric 100
(B) デバイスeth0にスタティックルーティングを設定#
将来のルーティング変更(例:デフォルトルートをバックLAN側に切替)でSSL-VPN接続できなくなるリスクを回避するため、デバイスeth0にスタティックルーティングを設定します。
-
デバイスeth0のconnectionに対するUUIDを確認
# nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 7d239b8f-3dfd-3fa7-b789-f629d2cac9ee ethernet eth0 Wired connection 2 6d6fab52-b583-3ea6-95ba-1a35ce467b6e ethernet eth1 System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet -- System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet --
-
デバイスeth0のconnectionに対するUUIDを指定し、デバイスeth0に対しスタティックルーティングを設定する
nmcli connection modify 7d239b8f-3dfd-3fa7-b789-f629d2cac9ee +ipv4.routes "192.168.246.0/24 192.168.1.1"
-
設定の変更内容を確認
# nmcli connection show 7d239b8f-3dfd-3fa7-b789-f629d2cac9ee | grep "ipv4.routes" ipv4.routes: { ip = 192.168.246.0/24, nh = 192.168.1.1 }
-
設定変更を反映
# nmcli connection up 7d239b8f-3dfd-3fa7-b789-f629d2cac9ee Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
(4) サーバを再起動#
(5) 踏み台サーバにログイン、rootユーザに変更しルーティング情報を確認#
-
「default via~」の設定は、eth0のみであること
-
ルーティングの優先度:metricの少ない番号が優先される
-
スタティックルーティングが追加されていること
# ip route show default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.11 metric 100 192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.11 metric 101 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11 metric 100 192.168.1.1 dev eth0 proto static scope link 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
7. RHEL業務用サーバの設定変更#
RHEL業務用サーバのルーティング設定を変更します。
手順は 6. RHEL踏み台サーバの設定変更 と同じです。
(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) サーバを再起動し、疎通確認#
8. 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画面などを表示
- 表示できない場合は「メトリックの設定値」や「セキュリティグループルール」を再確認
9. Windows業務サーバの設定変更#
Windows業務用サーバのルーティング設定を変更します。
手順は 8. Windows踏み台サーバの設定変更 と同じです。
ただし、「SSL-VPNクライアントIPプール」の設定は不要。
(1) サーバを再起動し、疎通確認#
注意事項#
- 本パターンは2024年6月時点のFJcloud-O 東日本/西日本リージョン3にて動作検証しています。