web-dev-qa-db-ja.com

sshデーモンはどのポートをアウトバウンドで使用しますか?

私は要塞のsshサーバーを作っています。 ipテーブルで次のルールを使用すると、サーバーに問題なく接続できます。

インバウンドルール

  • クライアントのIPからのポート22のトラフィックを許可する
  • 他のすべてのトラフィックをブロックする

アウトバウンドルール

  • クライアントのIPへのすべてのトラフィックを許可する
  • 他のすべてのトラフィックをブロックする

私の理解では、有効なクライアントが呼び出すと、サーバーはランダムに送信ポートを選択してSSH接続を完了します。

  1. このポートを選択するために、システムはどの範囲の整数から選択しますか?
  2. 使用するポートの範囲をシステムに通知できますか?
4
StudentsTea

あなたの理解は間違っています:-)。クライアントは「tcp-highポート」を選択して、サーバーのターゲットポート22へのトラフィックを開始します。サーバーは、クライアントが開始したソースポートに応答します。

たとえば、クライアントは、サーバーの宛先ポート22に接続するための送信元ポートとしてポート12345を選択します。サーバーは、ポート22からクライアントにポート12345でトラフィックを送信しようとします。

Tcp-highポートの範囲は、> 1024〜65535です。

したがって、クライアントへのRELATEDおよびESTABLISHEDトラフィックを許可する必要があります。例えば:

IPTABLES -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

上記のルールが「残りをすべてブロックする」ルールの前にあることを確認してください。

9
Lambert