knockd 可以在 vmware 主机或客户机上运行吗?

knockd 可以在 vmware 主机或客户机上运行吗?

我正在尝试将端口敲击添加到我的家庭网络设置中,以便我可以向外界隐藏一些服务(ssh 是最重要的)。我遇到了 knockd,它似乎是一个完美的解决方案,但它对我来说根本不起作用。

我的计划是在家庭网络防火墙内的服务器机器上运行 knockd 实例。我将从路由器/防火墙转发端口敲击序列所需的所有端口。例如,我将转发端口 100、200、300、400 以及端口 22 到服务器(显然,这些不是我将使用的实际端口,因为我已在此处公布它们)。然后,我将阻止内部服务器上的端口 22,并设置 knockd 规则,以便在发送正确的端口敲击序列时将其打开一小段时间(在此示例中为 100 - 200 - 300 - 400)。对于我的初始设置和测试,我只是尝试让端口敲击在防火墙网络设置内工作。我已经在服务器上运行了 knockd,并且我正在从网络内的另一台机器上敲击 - 端口转发不应该使我的测试设置复杂化。

这根本行不通。我发送了敲击序列,但找不到任何证据表明 knockd 已检测到它。knockd 的日志中没有任何内容(即使打开调试信息后也是如此),stdout 中也没有任何内容。我尝试让事情变得简单,只需让 knockd 在获得正确的序列时将文件写入 /tmp 即可——也就是说,我甚至还没有在服务器上使用 iptables 做任何复杂的事情——但我没有成功。

我尝试按照食谱网站的建议用几种方式来实现敲击。4 个 telnet 命令用于发送序列,通过“nc -z HOST PORT PORT PORT”敲击,甚至是敲击命令行客户端本身。

我使用的服务器恰好也在运行 vmware server 2.0.2。由于 knockd 在网络堆栈的第 2 级进行监听(据我所知),我想知道 vmware 为支持桥接网络所做的工作与 knockd 所做的工作之间是否存在冲突。

我尝试在上述服务器上运行的虚拟机中进行类似的设置,但仍然没有任何效果。这让我再次怀疑 vmware 是否在低网络级别上处理事情以支持客户机。

所以我想知道是否有人知道更多细节。像 knockd 这样的技术可以在 vmware 环境中使用吗?我是否必须设置一个单独的真实服务器才能在我的家庭网络中支持这种 ssh 隐身功能?

答案1

我曾经使用过 knockd - 并且看不出它不能与 vmware 服务器一起运行或在虚拟机上运行的任何原因 - 除了可能与您的 iptables 设置存在冲突之外。您不需要为此设置单独的框。

但是,如果您有单独的盒子可以使用,那么可能值得临时设置一个专用服务器,只是为了让设置工作 - 使用最少的变量。然后将您测试过的配置文件传输到真正的盒子。

答案2

尽管我并不反对这种“端口敲击”技术,但我还是建议:

  • 在非标准端口上运行 sshd
  • 不允许通过 sshd 进行 root 登录
  • 不要在防火墙中为不想向外界公开的服务打开端口,而是使用 SSH 的端口转发功能安全、私密地连接到这些服务。

这比端口敲击方便得多,而且在我看来,也更安全一些。

相关内容