仅当客户端连接到特定子域时才允许访问 xinetd 服务

仅当客户端连接到特定子域时才允许访问 xinetd 服务

这个问题与运行 CentOS 5.4 的专用服务器有关。如果需要,我可以以 root 身份连接以执行更复杂的配置任务。

我写这篇文章是因为我已经设置了 svnserve 来使用 xinetd 处理请求。它运行良好,我很高兴提交和签出,没有任何问题。

该服务器还托管其他一些域,我可以通过其中任何一个域连接到 svnserve,因为它们都共享同一个 IP。存储库已使用 svnserve 的身份验证措施进行保护,因此这不是什么大问题,但是:

当客户端通过 sub.mydomain.com 访问 svnserve 时,是否可以仅允许连接?我已经仔细阅读了 xinetd 和 TCP_wrappers 的文档以寻找解决方案,但仍然一无所获。

(我知道一个选择是使用 DAV svn 而不是 svnserve,但我已经按照几个教程来运行它,但每次都失败了。使用 svnserve 的解决方案会更好,因为它对我来说实际上运行得很好。)

谢谢您的帮助!

答案1

Xinetd 调用服务器(在您的例子中是 svnserve),但不访问它们管理的数据。因此,xinetd 可以过滤传入地址(only_from),但不能过滤请求的域,因为请求的域不会向 xinetd 公布,而是传递给服务器。

按照建议,您可能希望为此服务使用专用 IP 地址,以便您可以将服务仅绑定到此地址(使用参数bind)。

答案2

您如何知道他们请求了什么域名?您可以使用 DAV 来做到这一点,因为它可以在 apache(或其他 Web 服务器)下运行。Web 服务器具有虚拟主机的概念。Svnserve 没有。您必须使用 DAV 才能获得此功能。

答案3

您可以获取一个额外的 IP 地址,仅用于该子域名。

相关内容