管理コンソールの公開を回避するためのSSHトンネリング

管理コンソールの公開を回避するためのSSHトンネリング

私は、Apache 上の Tomcat 上で実行される Cold Fusion サーバー エンジンである Lucee Server を実行しています。

さまざまな方法で強化することを検討していますが、ここで説明されている SSH トンネリングのアプローチについて疑問に思っています。https://docs.lucee.org/guides/deploying-lucee-server-apps/lockdown-guide.html#restricted-access-plus-ssh-tunnelling

問題は、この SSH トンネリングのやり方の説明が正確でも完全でもないと思うことです。私は SSH のドキュメントや Stack Exchange の質問 (https://superuser.com/q/588591/504387https://superuser.com/q/237977/504387) ですが、そのガイドに記載されているとおりに、または他の方法でも SSH トンネリングを動作させることができません。


現在の設定では、lucee が server.example.com で実行され、ポート 8888 でリッスンしています。同じサーバーで実行されている Apache はポート 443 でリッスンしており、すべてのリクエストをポート 8888 の 127.0.0.1 にプロキシするように設定されています (つまり、lucee に転送します)。ただし、上記のドキュメントで説明されているように、/lucee へのリクエストは拒否するように設定されています。

つまり、Lucee 管理コンソールにはポート 443 経由ではなく、ポート 8888 でのみ直接アクセスできます。ファイアウォール ルール (iptables) は、ポート 8888 での着信トラフィックを会社の内部ネットワークからのみ許可するように設定されているため、Lucee コンソールにはアクセスできますが、外部からはアクセスできません。

これ5月問題ないと思いますが、トンネリングのアプローチを説明したとおりに機能させることができるかどうかを確認しようとしていました。トンネリングが機能する場合は、iptables の許可ルールを削除して、ポート 8888 を完全にブロックするか (ループバックを除く)、lucee を 127.0.0.1 にのみバインドするように再構成します。


SSH は server.example.com の非標準ポートにあります。3300 であると仮定します。

私がやりたいのは、ラップトップで SSH コマンドを実行して次の操作を実行することです。

  1. 既存のssh設定とキーを使用してserver.example.comに接続します(sshdはポート3300でリッスンしています)。
  2. ラップトップのローカルホストの任意のポート(例えば60001)にバインドします。
  3. server.example.com のリモート エンドから、127.0.0.1:8888 に接続して、トラフィックを lucee に渡すことができるようにします。

最終的には、私がアクセスできるようになりhttp://127.0.0.1:60001/lucee/admin/server.cfm私のラップトップ上で、server.example.com で実行され、そのサーバーの 127.0.0.1 にバインドされたポート 8888 をリッスンしている lucee によって受信されます。

これどうやってするの?

答え1

Lucee サーバーはlocalhostポート で TLS を提供しないため、のみにバインドする必要があります8888。管理パスに安全にアクセスするためのオプションは 2 つあります。

SSHトンネル

からssh(1):

-L [ bind_address:]port:host:hostport

ローカル (クライアント) ホスト上の指定されたものを、リモート側のport指定されたポートに転送することを指定します。host

質問のパラメータが入力されました:

ssh -L 60001:127.0.0.1:8888 [email protected] -p 3300

適切なアクセス制御を備えたApacheプロキシ

ポートのプロキシは443TLS で暗号化されているため、必ずしも SSH プロキシは必要ありませんが、Apache の設定で会社のネットワークからの管理パスへの接続を許可することができます。

例では Apache 2.2 構文を使用しているため、ドキュメントは少し古くなっています。

<Location /lucee>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Location>

しかし、Apache 2.4のドキュメントアクセス制御伝える:

によって提供される、、およびディレクティブは非推奨であり、将来のバージョンでは廃止される予定です。これらのディレクティブの使用は避け、これらのディレクティブの使用を推奨する古いチュートリアルも避けてくださいAllowDenyOrdermod_access_compat

/luceeLAN192.168.22.0/24とパブリック IPのみへのアクセスを制限したいとします198.51.100.22

<Location /lucee>
    <RequireAny>
        Require ip 192.168.22.0/24
        Require ip 198.51.100.22
    </RequireAny>
</Location>

関連情報