3秒でわかる
内部サーバーへ入るための中継専用サーバー。外部からの入口を 1 台に絞ることで、接続の記録も鍵の管理もその 1 台に集約できます。
もう少し詳しく
どういうものか
踏み台サーバー (bastion host) は、本番サーバーやデータベースに直接つながず、必ず経由させるための中継サーバーです。外から SSH で入れるのはこの 1 台だけにし、そこから内部のサーバーへ入ります。
自宅 PC ---SSH---> 踏み台 (グローバル IP あり)
|
+--SSH--> Web サーバー (内部 IP のみ)
+--SSH--> DB サーバー (内部 IP のみ)なぜ必要か
内部サーバー全部をインターネットに晒すと、その台数だけ攻撃対象が増えます。入口を 1 台に絞れば、ファイアウォールの設定も、ログの確認も、鍵の管理も、そこだけ厳しくすれば済みます。
もうひとつは記録です。誰がいつ何のサーバーに入ったかが 1 か所に集まるので、後から追えます。全員が好きな経路で本番に入れる状態だと、事故が起きたときに経緯を再現できません。
具体例
毎回 2 回ログインするのは面倒なので、SSH の設定で 1 コマンドにまとめます。
Host bastion
HostName 203.0.113.10
User ops
Host web01
HostName 10.0.1.21
User deploy
ProxyJump bastionこの設定を ~/.ssh/config に置くと、ssh web01 だけで踏み台を経由して内部に入れます。ファイル転送も scp がそのまま通ります。
つまずきやすいところ
秘密鍵を踏み台にコピーして置く運用は避けます。踏み台が破られた時点で、内部の全サーバーの鍵が漏れます。ProxyJump や agent forwarding を使い、鍵は手元の PC に置いたままにします。
パスワード認証を有効にしたままにするのも危険です。グローバルに晒されたサーバーには、公開直後から総当たりのログイン試行が来ます。公開鍵認証のみにし、root での直接ログインを止めます。
接続元 IP を絞らずに 22 番を全開にしている構成も多いです。オフィスや VPN の IP に限定できるなら、そこまでやります。
似た用語との違い
近年は、踏み台を常時起動せず、必要なときだけ経路を作るマネージドな仕組みに置き換える構成も増えています。