如何使用 Knockd 使您的服务器不可见

当您拥有可公开访问的服务器时,黑客可以轻松扫描您的 IP 地址并检查您服务器上的开放端口(尤其是用于 SSH 的端口 22)。 向黑客隐藏服务器的一种方法是敲门。 Knockd 是一个端口敲门服务器。 它监听以太网或其他可用接口上的所有流量,等待特殊的端口命中序列。 telnet 或 Putty 等客户端通过向服务器上的端口发送 TCP 或数据包来启动端口命中。

在本文中,我们将了解如何使用 knockd 隐藏在 Linux 服务器上运行的服务。

在 Linux 服务器上安装 Knockd

Knockd 在大多数发行版的存储库中都可用。 在基于 Debian/Ubuntu/Ubuntu 的服务器上,您可以使用 apt-get 命令安装 knockd。

为了 Fedora、CentOS 或 REHL 用户,您可以使用 yum 命令:

安装和配置 iptables

如果您的服务器上没有安装 Iptables,请立即安装。

包裹 iptables-persistent 接管保存的 iptables 的自动加载。

接下来,您需要通过 iptables 允许已建立的连接以及当前会话。 使用以下命令来完成此任务:

接下来,您需要阻止到 SSH 端口 22 的所有传入连接。

现在让我们通过以下命令保存防火墙规则:

您可以通过计算机连接到服务器来检查您是否确实阻止了端口 22。

配置敲门

现在是时候配置 knockd 默认设置了。 它位于“/etc/knockd.conf”。 为此,请使用以下命令更改为 knockd 配置文件:

出于说明目的,我使用的是 Leafpad 编辑器。 在您的服务器上,您可以使用 nano 或 Vi。

屏幕截图显示了 knockd 配置文件。

  • 选项:您可以在此字段中找到 Knockd 的配置选项。 正如您在上面的屏幕截图中所见,它使用 syslog 进行日志记录。
  • 开放SSH:该字段由sequence、sequence timeout、command和tcp flags组成。
  • 顺序:它显示了可以被客户端用作模式来启动操作的端口序列。
  • 序列超时:它显示分配给客户端完成所需端口敲击序列的总时间。
  • 命令: 这是一旦客户端的敲击序列与序列字段中的模式匹配时将执行的命令。
  • TCP_FLAGS:这是必须在客户端发出的敲门声上设置的标志。 如果标志不正确但敲击模式不正确,则不会触发该动作。

笔记: Knockd 配置文件中 OpenSSH 部分中的 iptables 命令使用 -A 将此规则附加到 INPUT 链末尾的选项。 这会导致所有剩余的连接断开。

为防止出现这种情况,请将其替换为以下内容:

此命令可确保将新规则添加到 INPUT 链的顶部以接受 ssh 连接。

启用并启动 Knockd 服务

使用以下过程在“/etc/default/knock”中启用 knockd 服务。

如屏幕截图所示,将值从 0 更改为 1。

敲门会议

敲门会议-1

之后,保存并 close 文件“/etc/default/knockd”。

接下来,您可以使用以下命令之一启动 knockd 服务:

或者

是时候敲敲你的 Linux 服务器了

现在是时候测试你的 Linux SSH 服务器了。 要在指定的 IP 地址打开端口 22,请在您的计算机上使用以下命令。 (您需要安装 knockd 在你的电脑上,也是)

您需要将“my-server-ip”替换为您服务器的 IP 地址。

您现在可以使用以下命令连接到端口 22 SSH:

通过端口 22 完成您想做的任何事情后,您可以 close 它使用以下命令:

结论

使用 knockd,您可以确信您的 SSH 服务器是安全的,不会受到具有复杂扫描程序的攻击者的攻击。 此外,您完全负责您的 SSH 服务器。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅