目次
直接インターネットやSSHの通信ができない場合、SSHのLinuxサーバを踏み台で経由して、その先のサーバに行けるようにします。
ローカルポートフォワード | 最終的な行きた先が1つ 通信をSSHサーバから別の宛先へ転送 例 PCからブラウザーで、踏み台サーバを経由してWebアクセス PCからリモートデスクトップで、踏み台サーバを経由して別のサーバにアクセス |
リモートポートフォワード | 通常使わない方式。 サーバ側からPC側へ通信を引き込むことが出来ます。 |
ダイナミックポートフォワード | 最終的な行きた先が特定多数 SSHクライアントがSocksプロキシとなり、ローカルのSocksプロキシ経由することで、すべてSSHサーバから転送します。 |
リバースダイナミックポートフォワード | 最終的な行きた先が特定多数 サーバでSocksプロキシーを作り、サーバ側からクライアントにSSHする。 |
最終的な行き先が1つ
+----------------+ +---------------+ +---------------+ | Host1 | |Host2 | | Host3 | | Client |---> | Linux Fumidai | ---> | Server | | | | | | | | localhost:444 | | 192.168.0.5 | | 192.168.0.10 | | | | | | Port 443 | +----------------+ +---------------+ +---------------+
ローカルのポート: 444 リモート側ホスト: 192.168.0.10 ポート 443
WindowsやMacなどのOSの場合、Teratermなどの代わりに、SSHポートフォワードツールを使う方法もあります。
詳細は、SSHポートフォワードソフトで、SSHサーバを踏み台にその先に通信に書きましたので、参考にしてください。
Host1 $ ssh -L 444:192.168.0.10:443 192.168.0.5 # 192.168.0.5のユーザとパスワード または Host1 $ ssh -fN -L 444:192.168.0.10:443 192.168.0.5 -f : バックグラウンドで実行 -N : 何も実行しない ※ 終了するためには、PSでプロセスを確認してkillする。(ps -ef |grep ssh)
Host1 $ curl http://localhost:444/ <- Host3 Port443にアクセス
+----------------+ +---------------+ +---------------+ | Host1 | |Host2 | | Host3 | | Client |---> | Linux Fumidai | ---> | Windows Server| | | | | | | | localhost:3388 | | 192.168.0.5 | | 192.168.0.10 | | | | | | Port 3389 | +----------------+ +---------------+ +---------------+
ローカルのポート: 3388 リモート側ホスト: 192.168.0.10 ポート 3389
WindowsやMacなどのOSの場合、Teratermなどの代わりに、SSHポートフォワードツールを使う方法もあります。
詳細は、SSHポートフォワードソフトで、SSHサーバを踏み台にその先に通信に書きましたので、参考にしてください。
最終的な行き先が不特定多数
+----------------+ +-------------+ | Host1 |---> |Host2 | ---> インターネット | 192.168.100.2 | | 192.168.0.5 | | Port 8080 | | | | Linux | | Linux | +----------------+ +-------------+
Host1 $ ssh -D 8080 192.168.0.5 または (バックグラウンドで実行) Host1 $ ssh -fN -D 8080 192.168.0.5
ブラウザーのプロキシー設定 IP 127.0.0.1 Port 8080 Version SOCKS 5
+----------------+ +-------------+ | Host1 |---> |Host2 | ---> インターネット | 192.168.100.2 | | 192.168.0.5 | | Port 8080 | | Port 1080 | | Linux | | Linux | +----------------+ +-------------+
Host2 $ ssh -D 1080 localhost <- SOCKS プロキシを立てる Host2 $ ssh -R 8080:localhost:1080 192.168.100.2 ← Host1の8080が、Host2の1080に転送される
Host1 ブラウザーのプロキシー設定 IP 127.0.0.1 Port 8080 Version SOCKS 5
+----------------+ +-------------+ | Host1 |---> |Host2 | ---> yumレポジトリ | 192.168.100.2 | | 192.168.0.5 | | Port 8080 | | | | Linux | | Linux | +----------------+ +-------------+
Host1 $ ssh -D 8080 192.168.0.5 または (バックグラウンドで接続) Host1 $ ssh -fN -D 8080 192.168.0.5
■socks5(名前解決がクライアント側) Host1 # ALL_PROXY=socks5://localhost:8080 または Host1 # http_proxy=socks5://127.0.0.1:8080 ■socks5h(名前解決がサーバ側) Host1 # ALL_PROXY=socks5h://localhost:8080 または Host1 # http_proxy=socks5h://127.0.0.1:8080
Host1 # yum list Host1 # yum search httpd
+----------------+ +-------------+ | Host1 |---> |Host2 | ---> yumレポジトリ | 192.168.100.2 | | 192.168.0.5 | | Port 8080 | | Port 1080 | | Linux | | Linux | +----------------+ +-------------+
Host2 # ssh -D 1080 localhost <- SOCKS プロキシを立てる Host2 # ssh -R 8080:localhost:1080 192.168.100.2 ← Host1の8080が、Host2の1080に転送される
■socks5(名前解決がクライアント側) Host1 # ALL_PROXY=socks5://localhost:8080 または Host1 # http_proxy=socks5://127.0.0.1:8080 ■socks5h(名前解決がサーバ側) Host1 # ALL_PROXY=socks5h://localhost:8080 または Host1 # http_proxy=socks5h://127.0.0.1:8080
Host1 # yum list Host1 # yum search httpd
/etc/ssh/sshd_config
以下の設定がないこと。 AllowTcpForwarding no AllowTcpForwarding local
一般向けサイト
ITエンジニア向けサイト
英語サイト
Portfolio
Copyright (c) 2024 インフラエンジニアのPC環境 All Rights Reserved.