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へ接続できます。
動作の流れ
以下の順で通信が行われます。
- クライアントがlocalhost:3306へ接続
- SSHトンネルへ転送
- SSHサーバへ到達
- 接続先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接続管理が容易になります。
セキュリティ上のメリット
- 通信が暗号化される
- 内部サービスを公開しなくてよい
- ファイアウォール設定を減らせる
- アクセス経路を限定できる
非常に安全な接続方法です。
よくある利用例
実務でよく利用される例です。
| 用途 | ポート |
|---|---|
| MySQL | 3306 |
| PostgreSQL | 5432 |
| HTTP | 80 |
| HTTPS | 443 |
| Grafana | 3000 |
管理画面接続でよく利用されます。
ローカルフォワードとVPNの違い
よく比較される技術です。
| 項目 | ローカルフォワード | VPN |
|---|---|---|
| 対象 | 特定ポート | ネットワーク全体 |
| 設定 | 簡単 | 複雑 |
| 用途 | 一時利用 | 常時利用 |
用途に応じて使い分けます。
よくあるトラブル
ポートが使用中
エラー例です。
bind: Address already in use別ポートを利用します。
接続できない
以下を確認します。
- SSH接続
- 内部サービス起動状態
- ファイアウォール
- 転送先ホスト名
順番に切り分けましょう。
監査環境での利用
ローカルフォワードは管理用途として利用されます。
ただしアクセスログを残すことが重要です。
企業環境では踏み台サーバとの組み合わせが推奨されます。
実務で推奨される運用
- 公開鍵認証を利用する
- 踏み台サーバ経由にする
- 不要なトンネルは閉じる
- アクセスログを保存する
- 接続元制限を行う
安全な運用が可能になります。
まとめ
SSHローカルフォワードは、内部サービスへ安全に接続するための便利な機能です。
特にデータベースやWeb管理画面へのアクセスでは実務でも頻繁に利用されています。
VPNより手軽に利用できる一方で、通信はSSHによって暗号化されるため高い安全性を確保できます。
踏み台サーバや公開鍵認証と組み合わせることで、さらに安全なサーバ管理を実現できるでしょう。





