ユーザーが特定のDebian 10.10ホストをSSHジャンプホストとして使用するのを防ぐ方法を探しています。このホストからSSHを介して接続するのを防ぎたいと思います。
- 私は
/etc/ssh/sshd_config
。AllowTcpForwarding no
- 私は
/etc/ssh/ssh_config
。FollowAgent no
ただし、接続すると他のホストに接続できます。
最初のSSH接続で新しいSSH接続を拒否/ロック/ブロックする方法は?
HOST A --{SSH}--> Other_Host_N --{NO SSH}--X--> hyp_vmware
ベストアンサー1
中間ホストから「禁止された」宛先ホストへのSSH接続をブロックします。 Linuxのiptablesは次のとおりです。
iptables -A OUTPUT -d forbiddenhost -p tcp --dport 22 -j DROP
(または、ターゲットホストの中間ホストから着信SSH接続を削除します。)
単純にジャンプホストを使用して暗号化されたデータをソースから最終宛先に渡す一般的な方法がいくつかあるため、中間デバイスで新しいSSH接続が開始されるのを防ぐだけでは効果がありません。つまり、2つのパイプを連続して配置しないでください。
origin *---SSH---* intermediate *---SSH---* target
あるパイプの半分を別のパイプにルーティングして、中間ホストを通過するように曲げることができます。
origin intermediate target
*-]=== tunnel ===[-------SSH-------*
トンネル部分は別のSSH接続であってもよく、例えば通常のTCP接続(SSHからポート転送に設定されてもよい)であってもよい。それが何であれ、それは「オリジナル」から始まったSSH接続です。これらすべての利点は、ユーザーが暗号化されていないデータを持つ仲介ホストを信頼する必要がないことです。もちろん、欠点はSSHによるSSHケースの追加のオーバーヘッドです。 (転送されたTCP接続を介してSSHを実行すると、通常のSSH使用と比較してオーバーヘッドはほとんど発生しません。)
このようなタスクを実行するいくつかの簡単な方法は、または同様の機能をProxyCommand
使用してSSHを使用することです。たとえば、参照してください。ssh intermediatehost -W targethost:22
ssh intermediatehost nc targethost 22
sshプロキシコマンド-W、ncとexec ncの違いは何ですか?それはすべてです。
中間オブジェクトがジャンピングホストとして機能するために必要なものは次のとおりです。一部最終的な宛先ホストへのネットワーク接続を開く方法です。nc
インストールしなくても、通常のシェルアクセス権を持つユーザーは静的コピーをダウンロードしたり、短いPerlスクリプトなどを作成したりできます。 Bashを使用するだけでもリダイレクトによるネットワーク接続を開くことができます。