リバースSSHトンネルを介してクライアントのIPアドレスを自分のサーバーにキャプチャするにはどうすればよいですか?

リバースSSHトンネルを介してクライアントのIPアドレスを自分のサーバーにキャプチャするにはどうすればよいですか?

外部の世界からアクセスできるように、ホームサーバーにリバーストンネルがあります。私のホームサーバーはファイアウォールの背後にあります。

[mydomain]:8080 にアクセスすると、ポート 80 で自分のサーバー接続 (localhost で) が作成された確立された接続 (マイ ホーム コンピュータによって開始) を介して、マイ HTTP 要求がマイ ホーム コンピュータに転送されます。すべてがうまく機能しますが、現在、すべてのApacheログにリクエストがlocalhostから来ているように見えます。私のサーバーに誰が接続しているかをもっと知りたいです。

これは、リバーストンネルの作成に使用したコマンドです。

autossh -i mykeyfile -N -f -g -R \*:8080:localhost:80 myuser@mydomain

確認してみましたが/var/log/auth.log関連事項はありませんね。

答え1

  • localhost:8080代わりに、トンネルをリモートで聞くように変更してください*:80

  • Apachemydomainおよびディレクティブを使用して、80からlocalhost:8080にリバースプロキシをインストールして設定します。ProxyPassProxyPassReverse

  • RequestHeader appendX-Forwarded-For、X-Forwarded-Proto、X-Forwarded-Portディレクティブを使用して、クライアントアドレスを標準のhttpヘッダーとして追加するようにApacheに指示します。

関連情報