厳密なファイアウォールの背後にあるLDAPサーバー(ldapserver
)と、そのLDAPを使用して認証する必要があるファイアウォールの外側のサーバー(appserver
)で実行されているWebアプリケーションをセットアップしています-切断します。
中間のように3番目のサーバー(tunnelserver
)を正常に使用し、appserver
で次のコマンドを実行してldapserver
とtunnelserver
の間にSSHトンネルを設定しました。 _:
ssh username@appserver -R 28420:ldapserver:389
唯一の問題は、時々パイプが壊れてSSHトンネルが失われることです。
解決策は autossh のようですが、私の限られたSSH知識はトンネルを機能させることがほとんどできず、autossh
のオプションを正しく再指定するには不十分のようです。
任意のヒント?
パラメータは基本的に同じです(autossh
はそれらをssh
に直接渡します)。 autossh
をバックグラウンドにしたくない場合は、-f
を削除してください。おそらく、-N
オプションでサーバー上でシェルを実行しないようにする必要があります。 -M
オプションの空きポートを選択します(上記のポートも空きである必要があります)。 Debian/Ubuntuでは、パッケージに空きポートを自動的に選択するラッパースクリプトが含まれているため、これを省略できます。
autossh -M 20000 -f -N -R 28420:ldapserver:389 username@appserver
2013年に、リバーストンネルにautosshを使用すると、リモート側のsshdが終了していないことに気付きました。
スクリプトを使用してこれを回避し、トンネルを開始/停止/再起動しました(トンネルを開始するためにcrontabの@rebootに含めました)。ここでは、ssh forceコマンドを使用してリモートエンドを強制終了します。つまり、トンネルを停止(または再起動)するときです。