ssh 守护进程将使用哪些端口出站?

Stu*_*Tea 4 ssh ip iptables tcp

我正在制作一个堡垒 ssh 服务器。当我在其 ip 表中使用以下规则时,我能够很好地连接到服务器:

入境规则

  • 允许来自客户端 IP 的端口 22 上的流量
  • 阻止所有其他流量

出站规则

  • 允许所有流量到我客户的 IP
  • 阻止所有其他流量

我的理解是服务器在有效客户端调用时随机选择一个出站端口来完成ssh连接。

  1. 系统从哪个整数范围中选择这个端口?
  2. 我可以告诉我的系统使用哪个范围的端口吗?

Lam*_*ert 9

你的理解是错误的:-)。客户端将选择一个“tcp-high 端口”来向服务器的目标端口 22 发起流量。服务器将响应客户端发起的源端口。

例如,客户端选择端口 12345 作为源端口以连接到服务器的目标端口 22。服务器将尝试将流量从其端口 22 发送到端口 12345 上的客户端。

tcp-high 端口范围从 > 1024 到 65535。

因此,您应该允许向您的客户端发送 RELATED 和 ESTABLISHED 流量。例如:

IPTABLES -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

确保上述规则出现在“阻止所有其他规则”之前。