GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでSSH動的ポート転送を設定する方法

多くの企業は、Secure Shell(SSH)アクセス可能なジャンプサーバーを使用して、ビジネスクリティカルなシステムにアクセスしています。管理者は、ターゲットシステムに接続する前に、最初にSSHを使用して(場合によってはVPNを介して)ジャンプサーバーに接続します。この方法は、管理者がコマンドライン管理に固執している限り、通常はうまく機能します。管理者がコマンドライン領域から抜け出し、代わりにWebベースのインターフェイスを使用したい場合は、もう少し注意が必要です。

次のシナリオを見てみましょう。ボブはSecurecorpのシステム管理者であり、 sirius.securecorp.ioで構成されるデータベースクラスターを示すアラートを受け取りました。 およびorion.securecorp.io パフォーマンスが悪い。最初の分析では、彼は通常RHEL8Webコンソールを使用します。ファイアウォールでは、ワークステーションからこのシステムに直接接続することはできませんが、 bastion.securecorp.ioというジャンプサーバーを経由することはできます。 。

[お楽しみいただけるかもしれません:システム管理者向けの6つの重要なSSHガイド]

データベースクラスターへのSSHコマンドラインアクセスは簡単です:

[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh sirius.securecorp.io
[bob@sirius ~]$
[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh orion.securecorp.io
[bob@orion ~]$

しかし、ボブが sirius.securecorp.ioのRHEL8Webコンソールにアクセスしたい場合はどうでしょうか。 およびorion.securecorp.io ? SSHを使用してこの目標を達成するには複数の方法があり、すべて何らかのポート転送が含まれます。

免責事項 :一部の組織では、セキュリティポリシーでポート転送が許可されていません。ルールに違反しないようにするには、ITセキュリティ担当者に相談してください。

SSHポートフォワーディング

ボブはSSHを使用して、両方のシステムのTCPトンネルを開き、 sirius.securecorp.io のWebコンソールポート(9090)をポイントします。 orion.securecorp.ioのポート9091 。

[bob@workstation ~]$ ssh -L 9090:sirius.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$
[bob@workstation ~]$ ssh -L 9091:orion.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$

ボブは、ローカルワークステーションのブラウザで https:// localhost:9090を指定できるようになりました。 sirius.securecorp.ioのWebコンソールにアクセスするには 、および https:// localhost:9091 orion.securecorp.ioのWebコンソールにアクセスするには 。

このアプローチは特定の場合にうまく機能する可能性がありますが、制限があります:

  • TLS証明書の検証:ほとんどの場合、証明書の共通名がアドレスバー(localhost)のホスト名と一致しないため、ローカルブラウザーは不満であり、証明書の検証は失敗します。
  • リダイレクト:アクセスしているWebサイトが別のURLにリダイレクトすると、ポート転送はこのWebサーバーに対してのみ有効であるため、接続は失敗します。この状況は、たとえばシングルサインオン(SSO)を使用する場合に問題になる可能性があります。

ジャンプサーバーでブラウザを起動します

ボブはまた、ジャンプサーバーでFirefoxなどのブラウザを起動し、ワークステーションにローカルに表示することもできます。 SSHは、この状況で使用できるX転送と呼ばれる機能を提供します。

[bob@workstation ~]$ ssh -X bastion.securecorp.io
[bob@bastion ~]$ firefox https://sirius.securecorp.io:9090 &
[bob@bastion ~]$ firefox https://orion.securecorp.io:9090 &

この方法を使用すると、ブラウザプロセスはジャンプサーバー上で実行され、 sirius.securecorp.ioのWebコンソールへの接続が実行されます。 およびorion.securecorp.io 許可されています。ボブのワークステーションでは、ブラウザウィンドウのレンダリングのみが行われます。

このアプローチはプレーンSSHポート転送のいくつかの問題を解決しますが、制限もあります:

  • パフォーマンス:この方法は通常、グラフィック出力をネットワーク経由でジャンプサーバーからワークステーションに転送する必要があるため、パフォーマンスがかなり低くなります。これは非常に非効率的です。
  • 前提条件:Firefoxなどのブラウザがジャンプサーバーにインストールされている必要があり、Xサーバーがワークステーションで実行されている必要があります。

ダイナミックポートフォワーディングを入力

前の2つのアプローチを検討し、それらの欠点について学んだので、両方の長所をもたらす3番目のオプションがあると便利です。

  • ワークステーションのブラウザを使用できます。
  • 接続性とDNS名の解決は、ジャンプサーバーの場合と同じである必要があります。

これを実現するために、SSHは動的ポート転送と呼ばれる機能を提供します 、SOCKSプロトコルを活用します。この構成では、SSHはSOCKSプロキシとして機能し、SSH接続を介して関連するすべてのトラフィックを中継します。これを行うには、クライアント(この例ではブラウザ)がSOCKSに対応している必要があります。

ボブは、次のように動的ポート転送を使用してSSHセッションを開始できます。

[bob@workstation ~]$ ssh -D 1080 bastion.securecorp.io
[bob@bastion ~]$

その後、ボブのワークステーションのブラウザをSOCKS対応にする必要があります。 Firefoxの設定は次のように実行できます:

  • ブラウザでabout:preferencesを指定します。
  • 一般 タブをクリックし、下部を下にスクロールして、[設定... ]をクリックします ネットワーク設定 セクション。
  • 接続設定 ウィンドウで、手動プロキシ設定を選択します 、 localhostを指定します SOCKSホストの場合 、 1080 ポートとして、 SOCKS v5を選択します 。
  • 同じウィンドウで、SOCKSv5を使用する場合はプロキシDNSを選択します 。

ボブはブラウザでhttps://sirius.securecorp.io:9090を指定できるようになりました およびhttps://orion.securecorp.io:9090 RHEL8Webコンソールを使用して彼の2つのデータベースサーバーのパフォーマンスの問題を分析します。また、ブラウザが bastion.securecorp.io で実行されているかのように、他の内部リソースにアクセスすることもできます。 。

:ポート1080はSOCKSのIANA登録ポートですが、接続では他のポートを使用できます。 SSHとブラウザの設定の番号は一致している必要があります。

個人的には、プロキシ構成を絶えず切り替える必要がないように、別のブラウザプロファイルを作成すると便利だと思いました。 -Pを渡すことで、新しいプロファイルを作成できます firefoxに切り替えます コマンド、プロファイルマネージャーを起動します 。プロフィールをジャンプと呼びました 。新しいプロファイルを作成すると、空の構成が作成されます。このプロファイルでは、デフォルトのプロファイルを変更せずに、上記の構成を適用しました。

プロファイルを作成した後、次のコマンドでFirefoxを起動できます。

[bob@workstation ~]$ firefox -P Jump

もう1つの役立つヒントは、~/.ssh/configで動的ポート転送用のホスト固有の構成を作成することです。 ファイル。例:

[bob@workstation ~]$ cat ~/.ssh/config
Host bastion
  Hostname bastion.securecorp.io
  User bob
  DynamicForward 1080

[無料コース:仮想化とインフラストラクチャの移行の技術概要。 ]

まとめ

ジャンプサーバーを使用して内部システムに接続する方法はたくさんありますが、上記で概説した可能性は決して網羅的なものではありません。しかし、私の経験では、SSHは非常に強力なツールキットを提供します。これはほとんどの場合利用可能であり、多くのハードルなしですぐに使用できます。動的ポート転送はこれらのツールの1つであり、特定の状況での生産性を高めるのに役立ちました。ぜひお試しください。


Linux
  1. LinuxでSSHポートを変更する方法

  2. SSHトンネリングを設定する方法

  3. LinuxでIP転送を有効にする方法

  1. LinuxでカスタムSSH警告バナーまたはMOTDを設定する方法

  2. Lubuntu20.04LinuxでSSHポートを変更する方法

  3. AllowTcpForwarding を no に設定して ssh 転送する方法は?

  1. Linuxでプリンタを設定する方法

  2. SSHポートフォワーディングの使用方法

  3. Linuxでcronジョブを設定する方法