web-dev-qa-db-ja.com

TCP転送に関するセキュリティ上の懸念

これまで私はTCPを設定していましたが、sshでのフォワーディングは常にブラインドノーネットで検索するだけですが、許可すると、実際のセキュリティの脅威を見つけるのに苦労します。

しかし、私が見つけた1つのことは、マンページにTCPユーザーがシェルアクセスがない場合の転送をオフにすることだけが役立つことです。 http:// joeyh。ただし、name/blog/entry/ssh_port_forwarding / は、シェルアクセスがないことはそれほど重要ではないが、authorized_keysにはno-port-forwardingがあることを示しています。

したがって、TCP SSHでの転送を許可した場合のセキュリティの脅威は何ですか。また、AllowTCPForwarding Noをsshd_configに追加するときにその懸念を取り除くか、またはhaveシェルアクセスを制限するか、no-port-forwardingオプションを追加しますか?

16
user857990

ターゲットサーバーに関する限り、SSHトンネルを使用する場合、そのクライアントはSSHサーバーであり、SSHトンネルに接続している実際のクライアントではありません。

たとえば、10.1.1.1でSSHクライアントを実行し、10.2.2.2でSSHサーバーに接続し、10.3.3.3へのトンネルを確立している場合、クライアント(おそらく10.4.4.4または他の場所から)が10.1.1.1側のトンネルに接続すると、アクセスが取得されます10.3.3.3または10.2.2.2.ではなく、10.1.1.1から来たかのように10.4.4.4に変換します。

これにより、そのような接続は、SSHサーバーを実行しているマシンからの接続を許可するはずのターゲットサーバーに関するファイアウォールルールをバイパスできますが、それ以上は許可されません。

たとえば、SSHサーバーが2つのネットワーク間のゲートウェイであり、たとえば、パブリックIPアドレスと1つのプライベートIPアドレスがある場合、これは問題になります。内部LAN内の特定のサービスへのアクセスのみを許可するファイアウォールルールは、そのSSHサーバーからの接続をキャッチしません(そのマシンに対して特別なケースが作成されない限り)。

リモート接続はさらに遠くから来るかもしれません。 SSHクライアント側では、一部のSSHクライアントが、少なくともリモートマシンからの接続を防ぐために、リスニングソケットを特定のIPアドレス(例:localhost)にバインドできます。ただし、これらの設定を適切に使用するクライアントに依存します。

ユーザーがこの種の接続を許可されている場合、またはネットワークで使用しているファイアウォール(および関連する)ルールがSSHサーバーのIPアドレスを処理して、これを考慮に入れている場合、これは問題になりません。そうは言っても、トンネルがどこに確立されているかをチェックしたい場合もあるでしょう。そうでなければ、他のサードパーティのサーバーとトラブルを起こす可能性もあります。

これが必要ない場合は、この機能を無効にすることをお勧めします。

13
Bruno

TCP転送により、ユーザーはSSHを使用してVPNをセットアップし、VPNを使用してネットワークにトンネルすることができます。これにより、攻撃者はファイアウォールなどのネットワークセキュリティ対策を回避できる可能性があります。 SSHトンネリングは非常に便利なツールですが、セキュリティ上のリスクもあるので、明示的に必要でない限り無効にする必要があります。

6
GdD