【发布时间】:2017-12-16 12:34:35
【问题描述】:
我有一个有 2 个域名的服务器(比如说 domain1.com 和 domain2.com)。
我可以通过ssh user@domain1.com 和ssh user@domain2.com SSH 进入服务器。我希望能够只允许 ssh user@domain1.com 并禁用对 domain2.com 的 SSH 访问。
这可能吗?
【问题讨论】:
我有一个有 2 个域名的服务器(比如说 domain1.com 和 domain2.com)。
我可以通过ssh user@domain1.com 和ssh user@domain2.com SSH 进入服务器。我希望能够只允许 ssh user@domain1.com 并禁用对 domain2.com 的 SSH 访问。
这可能吗?
【问题讨论】:
似乎不可能只允许 SSH 连接到特定域名。域名由 DNS 解析,SSH 服务器无法知道您使用的是哪个域。另请参阅this 对同一问题的回答。
您可能会尝试做的一件事是配置防火墙(例如iptable)以断开与端口 22 上 domain2.com 的连接。
here 讨论了一个类似的问题,他们试图阻止 iptables 中的域,以便访问者无法使用它访问 http 服务器。
根据您的情况调整 iptables 规则(并假设您的 ssh 服务器在端口 22 上运行)我会试试这个:
iptables -I INPUT -p tcp --dport 22 -m string --string "Host: domain2.com" --algo bm -j DROP
更新:
正如 Dusan Bajic 所说,上述规则仅适用于 http 流量,因为它利用了 http header fields。这不适用于 ssh 流量。
【讨论】: