Bastion Host 運用
PLURA
Bastion Hostとは?
Bastion Hostは、PublicネットワークからPrivateネットワークへのアクセスを提供する目的のサーバーです。
通常、**Amazon VPC (Virtual Private Cloud)**のPublicサブネットに配置されたAmazon EC2インスタンスで実行されます。
- Linuxインスタンスは、Publicサブネットに接続されたBastion Hostを通じてPrivateサブネット内のリソースにアクセスできます。
- Bastion HostはSSHトラフィックを許可し、セキュリティグループによって制御されます。
以下の図は、Bastion Hostを介した接続を説明しています:
Bastion Host運用
A. EC2の設定
1. インスタンス
-
Bastion Host
- IP: Public IPを割り当てる
- サブネット: Publicサブネット1に配置
-
WebServer Instance1
- IP: Public IPは割り当てない
- サブネット: Privateサブネット1に配置
2. セキュリティグループの設定
-
Bastion Host
- タイプ: SSH
- ソース: My IP (Bastion Hostに接続するHost PCのグローバルIPを指定)
-
WebServer Instance1
- タイプ: SSH
- ソース: Bastion HostのPublicサブネットに割り当てられたIPアドレスを指定
B. VPCの設定
1. VPC
- CIDR:
172.31.0.0/16
2. サブネット
- プライベートサブネット:
172.31.16.0/20
- パブリックサブネット:
172.31.0.0/20
3. ルートテーブル
-
プライベートルートテーブル
- ローカルネットワーク帯域のみをルーティング
-
パブリックルートテーブル
- ローカル帯域外のトラフィックはインターネットゲートウェイにルーティングし、外部通信を可能にする
4. ネットワークACLの設定
-
プライベートサブネットACL
- Bastion HostからのSSH接続のみを許可
-
パブリックサブネットACL
- すべてのソースからSSHリクエストを許可(必要に応じてセキュリティグループで詳細制御)
C. SSH接続
-
Bastion Hostへの接続
- Public IPを使用
-
pem
ファイルのアップロード- Bastion HostからPrivateサブネット内のインスタンスに接続するには.pemファイルが必要
-
PrivateサブネットへのSSH接続
$ ssh -i "plura.pem" ec2-user@172.31.20.117
Bastion Host運用の目的
Publicサーバー1台で1日に約11,000件のログイン失敗が検出された事例です。
Publicサーバーは1日に数万〜数十万件のアカウント乗っ取り攻撃を受ける可能性があります。
- ファイアウォールで管理してもすべてのIPを制御することは難しく、セキュリティの脆弱性につながります。
- Bastion Host運用により、Privateインスタンスのアクセスログを一元的に収集して管理が容易になります。
重要: Bastion HostはLinuxインスタンスへの唯一のSSHトラフィックソースです。
PLURAでは、公開鍵ログイン成功時にPrivateインスタンスへのアクセスIPアドレスや作成日をフィルタリングして検出します。