SSHローカルフォワードの活用方法|安全に内部サービスへ接続する仕組みを解説

SSHローカルフォワードの活用方法

SSHローカルフォワードを活用して安全に内部サービスへアクセスしよう

SSHにはサーバへログインする機能以外にも、通信を安全に転送する「ポートフォワーディング」という便利な機能があります。

その中でも最も利用されることが多いのがローカルフォワード(Local Port Forwarding)です。

ローカルフォワードを利用すると、通常は外部からアクセスできない内部サービスへ、安全なSSHトンネル経由で接続できます。

実務ではデータベース接続やWeb管理画面へのアクセス、クラウド環境の保守作業などで頻繁に利用されています。

本記事ではSSHローカルフォワードの仕組みや設定方法、実務での活用例について詳しく解説します。

ローカルフォワードとは

ローカルフォワードとは、クライアント側のポートをSSH経由でリモートサーバへ転送する機能です。

SSHトンネルを作成し、そのトンネル経由で通信を行います。

通信内容はSSHで暗号化されるため、安全に利用できます。

利用イメージ

例えば以下のような構成を考えます。


管理PC
   │
   │ SSH
   ▼
踏み台サーバ
   │
   ▼
DBサーバ(MySQL)

DBサーバはプライベートネットワーク上に存在し、直接接続できません。

そこでSSHローカルフォワードを利用します。

基本構文

ローカルフォワードの基本構文です。


ssh -L ローカルポート:接続先ホスト:接続先ポート ユーザー@サーバ

これが最も重要な書式です。

MySQL接続の例

よく利用される例です。

$ ssh -L 3306:localhost:3306 user@server

意味は以下の通りです。

  • ローカルPCの3306番
  • SSHサーバ経由
  • 接続先の3306番

結果としてローカルPCからMySQLへ接続できます。

動作の流れ

以下の順で通信が行われます。

  1. クライアントがlocalhost:3306へ接続
  2. SSHトンネルへ転送
  3. SSHサーバへ到達
  4. 接続先MySQLへ転送

利用者はローカル接続している感覚で利用できます。

Web管理画面への接続

社内向けWebシステムでも利用できます。

例です。

$ ssh -L 8080:localhost:80 user@server

その後ブラウザでアクセスします。


http://localhost:8080

内部Webサーバへ安全に接続できます。

クラウド環境での活用

AWSやAzureでは非常によく利用されます。

例えば以下のようなケースです。

  • RDS管理
  • 内部Webサーバ管理
  • 監視ツール接続
  • プライベートサブネット保守

外部公開せずに管理できます。

踏み台サーバとの組み合わせ

企業環境では踏み台サーバ経由が一般的です。


管理PC
   ↓
踏み台サーバ
   ↓
内部サーバ

SSHトンネルも同じ考え方で利用できます。

バックグラウンド実行

トンネルだけ作成したい場合です。

$ ssh -N -f -L 8080:localhost:80 user@server

オプションの意味です。

  • -N:シェルを開かない
  • -f:バックグラウンド実行

実務でよく利用されます。

接続確認方法

ポートを確認します。

$ ss -ant

または
$ netstat -ant

待受状態を確認できます。

複数ポートを転送する

複数指定も可能です。

$ ssh  -L 8080:localhost:80  -L 3306:localhost:3306  user@server

複数サービスへ接続できます。

SSH設定ファイルの活用

~/.ssh/configへ登録できます。

Host webserver
    HostName 192.168.1.10
    User admin
    LocalForward 8080 localhost:80

接続管理が容易になります。

セキュリティ上のメリット

  • 通信が暗号化される
  • 内部サービスを公開しなくてよい
  • ファイアウォール設定を減らせる
  • アクセス経路を限定できる

非常に安全な接続方法です。

よくある利用例

実務でよく利用される例です。

用途ポート
MySQL3306
PostgreSQL5432
HTTP80
HTTPS443
Grafana3000

管理画面接続でよく利用されます。

ローカルフォワードとVPNの違い

よく比較される技術です。

項目ローカルフォワードVPN
対象特定ポートネットワーク全体
設定簡単複雑
用途一時利用常時利用

用途に応じて使い分けます。

よくあるトラブル

ポートが使用中

エラー例です。

bind: Address already in use

別ポートを利用します。

接続できない

以下を確認します。

  • SSH接続
  • 内部サービス起動状態
  • ファイアウォール
  • 転送先ホスト名

順番に切り分けましょう。

監査環境での利用

ローカルフォワードは管理用途として利用されます。

ただしアクセスログを残すことが重要です。

企業環境では踏み台サーバとの組み合わせが推奨されます。

実務で推奨される運用

  • 公開鍵認証を利用する
  • 踏み台サーバ経由にする
  • 不要なトンネルは閉じる
  • アクセスログを保存する
  • 接続元制限を行う

安全な運用が可能になります。

まとめ

SSHローカルフォワードは、内部サービスへ安全に接続するための便利な機能です。

特にデータベースやWeb管理画面へのアクセスでは実務でも頻繁に利用されています。

VPNより手軽に利用できる一方で、通信はSSHによって暗号化されるため高い安全性を確保できます。

踏み台サーバや公開鍵認証と組み合わせることで、さらに安全なサーバ管理を実現できるでしょう。