
私は最近、自宅で内部的にアクセス可能なシステムにFreeIPAをインストールしました。 LAN外部ネットワークでこのWeb UIを管理したいが、同時にこのWeb UIをパブリックインターネットに公開したくない。 SSHトンネルを介してアクセスする方法はありますか?
メモ:ssh
私は-L
次のスイッチを使用してトンネルを設定するのに慣れています。
$ ssh -L 12345:ipa.local.net:80 mysshserver
ただし、FreeIPAにアクセスするにはサーバーの物理ホスト名を使用し、ポート443および80を使用してWeb UIにアクセスできる必要があるため、このアプローチはこの場合は機能しません。
これに加えて、これを達成する他の方法はありますかssh -L
?
答え1
-L
SSHトンネルを実行することはすべての用語のために少し混乱するかもしれませんが、個々のポートの代わりにローカルにソケットを割り当てることによってポートを「動的に」割り当てることができる補足機能があります。
マニュアルページから:
-D [bind_address:]port
Specifies a local ``dynamic'' application-level port forwarding. This works by
allocating a socket to listen to port on the local side, optionally bound to the
specified bind_address. Whenever a connection is made to this port, the connection
is forwarded over the secure channel, and the application protocol is then used to
determine where to connect to from the remote machine. Currently the SOCKS4 and
SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root
can forward privileged ports. Dynamic port forwardings can also be specified in
the configuration file.
ソケットを割り当てると、DNSクエリを含むすべてのトラフィックをリモートサイトに送信できます。
使用方法
まず、次のように(インターネットのパブリックIPアドレスを介して)LANへの接続を開く必要があります。
$ ssh -D 1234 myserver
メモ:これは、パブリックインターネットIPアドレスを介してアクセスできるサーバーにSSHで接続できると仮定します。
設定が完了したら、他の端末でこのトンネルを使用するようにWebブラウザを設定する必要があります。メモ:このタイプのトンネルはソケットを提供するため、接続するにはWebブラウザにこのソケットを介してすべてのトラフィックをプロキシするように指示する必要があります。これは通常、次のように表示されます。SOCKSまたはSOCKS v5接続タイプあなたの代理店のため。
一例
この例では、CLIを介してChromiumを使用してこれを行う方法を示します。
$ ./Chromium --proxy-server="socks5://localhost:1234"
ここでは、Chromiumを起動し、以前にlocalhostポート1234で設定したSSHトンネルを指します。これにより、LANに設定されているサーバーのURLにアクセスしようとすると、そのURLに移動します。
プロキシに別のブラウザを使用する
この機能はすべての主要なブラウザで利用可能であり、SuperUserのような他のSEサイトでもかなり広く扱われています。
特定のトラフィックのみを選択的にプロキシ処理し、他のすべてのトラフィックは通常のインターネット接続を介してルーティングできるさまざまなブラウザ拡張機能を利用できます。
たとえば、ProxySwitchyを使用できます。 Chromeでは、次のことができます。