使用 Shorewall 防火墙保护 Riak

使用 Shorewall 防火墙保护 Riak

我想为一个 Web 项目建立一个 Riak 集群。

但是,我希望保护此集群,以便只有我的 Web 服务器可以访问 Riak 集群。基本上,我将拥有一个或多个 Web 服务器和 4 个 Riak 服务器(在一个集群中)。

我想使用 Shorewall 或其他防火墙应用程序来保护 Web 服务器和 Riak 集群之间的通信,以便除了我自己的服务器之外,没有其他服务器可以访问集群。由于 Riak 在服务器端是完全开放的,因此在我将服务器投入生产之前,这一点至关重要。

我认为我必须:

  1. 在每个 Riak 服务器上安装 Shorewall
  2. 首先锁定所有端口
  3. 在所有 Riak 服务器上打开端口 4369(epmd)和端口 8099(切换监听器)+我的 app.config 文件中定义的端口范围
  4. 在所有 Riak 服务器上打开端口 8098 和 8097(用于客户端)
  5. 单独限制一台 Riak 服务器对集群中其他 Riak 服务器的 IP 地址 + 我的 Web 服务器的 IP 地址的访问。对集群中的其他 Riak 服务器重复上述操作

我可以安装 Shorewall,但我不知道如何配置 Shorewall 来执行上述操作。如果能得到帮助,我将非常感激。

答案1

如果您打算将 Shorewall 用作只有一个接口的机器上的防火墙,那么在我看来,这有点大材小用。不过,无论如何,我还是喜欢使用 Shorewall 来完成这项任务。以下是简短的介绍,可能有助于您入门。

因此,我在此假设单接口仅 IPv4 配置。shorewall 的 IPv4 和 IPv6 版本是独立但相似的软件包。

$ sudo apt-get install shorewall

安装后,一切仍处于禁用状态。首先,让我们复制一个单一接口配置的示例。

$ sudo cp /usr/share/doc/shorewall/examples/one-interface/* /etc/shorewall

那我们来一个一个的配置这些文件吧。

提示:*.annotated.gz如果您愿意,可以使用这些文件在您的配置文件中添加更多注释。

  • zones- 保留默认设置。配置区域是强制性的,但由于它是单个接口,因此除了防火墙本身之外,它仅包含一个区域(fwnet:。
  • interfaces- 在那里配置您的单个接口。默认配置可能很好,我只会删除它,dhcp因为我的服务器上没有运行 DHCP。
  • policy- 定义区域间流量的策略。由于您的区域数只有一个,因此这也很容易。默认情况下,所有入站流量均被禁止,所有出站流量均被允许。如果您愿意,请保留该默认设置。
  • rules- 您可以在此处配置已定义策略的例外情况。允许来自整个外部 IPv4 世界的入站 TCP 端口 1234 的一个简单示例如下:

    ACCEPT       net           $FW        tcp       1234
    

    考虑使用一些可以帮助您的配置文件更具可读性的宏,例如您可能想要设置的这个宏:

    SSH(ACCEPT)  net:1.2.3.4   $FW
    

    允许从 IP 地址进行 SSH 访问1.2.3.4

  • shorewall.confgunzip- 通过ping 发送的文件获取它shorewall.conf.gz。检查IP_FORWARDING=Off您是否不进行任何转发,并考虑设置DISABLE_IPV6=Yes如果您不打算在机器上配置 IPv6。最后,设置STARTUP_ENABLED=Yes

/etc/default/shorewall在设置中也启用它在启动时startup=1

现在通过运行检查当前配置

$ shorewall check

每次更改某个文件后,请在实际重新启动 Shorewall 之前执行此操作。它可以防止在出现语法错误时停机,因为它会抱怨语法错误。

如果一切顺利,您可以尝试实际启动:

$ sudo service shorewall start

请随意检查结果iptables

$ sudo iptables -L -n -v

相关内容