メンテナンスタスクを実行するには、数人のマシンにremontelyログオンする必要がありますが、マシンがファイアウォールまたはNATの背後にある場合があります。
私がこれまで行ってきた方法は、SSHを使用してシステムにログインし、リバーストンネリングを有効にする方法についてユーザーにアドバイスすることです。たとえば、「コマンドssh -R 12345:localhost:22 [email protected]
を使用し、パスワードxyzzy
」。
これで問題なく動作しますが、安全のために、完了したらユーザーuremonte
のsshログインを無効にする必要があります。また、必要になったときに再度有効にすることを忘れないでください。不要な管理フロントエンドマシンにログインしたり、トンネルを使用しているときに正当なユーザーがいじり回そうとしたりする可能性があります。
/etc/passwd
のユーザーシェルを/bin/cat
に設定することを考えたので、ログインしている人はシェルで何もする機会がなく、それでも逆トンネルの接続は維持されます。これは問題ないようですが、システムに穴が開いていないことを確認したいと思います。
だから、問題は、これは絶対に安全ですか?このアカウントにログインしている誰かが猫の罠から抜け出す方法はありますか?
これは、シェルを変更するかなり標準的な理由です。通常、/bin/false
または/bin/cat
のような他のシェルが使用されます。
通常、/bin/cat
から脱出することはできず、cat
にセキュリティバグがある可能性は低いですが、 DoS の作成やファイアウォールルールのバイパスなど、他の方法でも機能する可能性があります。
もう1つのおそらくより深刻な問題は、sftp
にinternal-sftp
モジュールを使用している場合です。これにより、シェルとして/bin/cat
を持つユーザーは、sftp
を使用してファイルシステムにアクセスし、そのコンテンツを参照できるようになります。
特定のユースケースでは、顧客にsshアクセスを提供する代わりに、トンネルまたはVPNを使用することをお勧めします。