有没有办法可以找到 SSH 流量的来源?
我们有两台服务器 A 和 B。A 在私有网络上。B 有 2 个网卡,一个是私有的,一个是公共的。
A 可以通过 SSH 连接到 B,B 也可以通过 SSH 连接到 A,问题是,客户端从外部世界 X 连接到 B,然后通过 SSH 连接到 A。如果 SSH 流量不是来自已知主机,有没有办法让 A 阻止它?
我想要:本地 -> A
A -> B
A -> B -> 本地
本地 -> B
本地 -> B -> A
本地 -> A -> B
B->本地
B -> A -> 本地
公共 -> B
但不公开 -> B -> A
答案1
为什么不直接使用 iptables 或 /etc/hosts.{allow,deny} 来允许服务器 A 上的地址,然后在服务器 B 上只允许服务器 A?为什么不直接将允许的 IP 列入白名单并拒绝所有其余 IP?我发现另一件有用的事情是将 SSH 放在非默认端口上。
另外,您可以查看 /var/log/secure 来查看原始 IP。
答案2
如果用户能够从“外部”通过 SSH 连接到服务器 B,然后设法通过 SSH 连接到 A,则服务器 A 上的日志将显示源 IP 为服务器 B,而不是用户的远程 IP。因此,您无法判断 SSH 会话是来自内部用户还是外部用户。
您需要锁定对服务器 B 的外部访问,以便只有特定的 IP 地址才能连接(例如使用 iptables iptables -I INPUT -p tcp -s YourIP --dport 22 -j ACCEPT
)和使用强密码或 SSH 密钥提高服务器的安全性。