以编程方式修改 Debian 防火墙规则

以编程方式修改 Debian 防火墙规则

我目前正在安装 Debian 的 Rackspace 云服务器上进行部署。

我有一个应用程序使用远程协调器与我的所有服务器通信以启动各种服务并通常跟踪服务器。

我需要保护我的生产环境,并且我正在使用某些没有内置安全性的服务(Couchbase/Membase 和 ElasticSearch),因此我需要在所有服务器上实施防火墙。可以修改协调器以提供服务器要实施的防火墙规则,但我不知道如何以编程方式修改 Debian 中的防火墙设置。我希望能够指定端口,以便将其锁定得更严密一些。

如果有人对如何实现这一点有任何建议,或者发现我做错了什么,请告诉我。

答案1

我认为这通常是通过使用 iptables-restore 工具来实现的,该工具只是从文件中加载 iptables 规则。然后协调器只需部署规则文件的新版本(通常/etc/iptables.rules)并调用 iptables-restore 来加载它。

不要忘记在启动时加载防火墙,方法是创建一个 if-pre-up.d 脚本,如下所述http://wiki.debian.org/iptables

答案2

一般来说,您应该首先将服务配置为仅监听本地主机 (lo) 接口,而不监听任何公共路由接口 (eth0)。不过,设置防火墙规则仍然是一个好主意。

在某些情况下,您希望能够允许配置的服务在公共路由接口(例如 eth0)上进行侦听,但仅允许来自特定机器(例如远程协调器)的连接。您可以通过 IP 地址以编程方式执行此操作,但当您在某处启动新实例时,这可能会很不方便。

您无需处理维护基于 IP 的防火墙规则的麻烦,而是可以使用以下方法控制防火墙规则fwknop:单包授权和端口敲击。默认丢弃数据包过滤开销低,工作非常简单,没有较小端口敲击系统的复杂性。要为 Debian 安装它:

sudo apt-get install fwknop-server fwknop-client

答案3

考虑在服务器上运行 Shorewall-lite,并从运行的中央服务器控制防火墙配置岸墙. 两者均可作为标准发行版中的 Debian 软件包使用。

Shorewall 配置可以设置为使用通用文件进行共享配置。这将有助于在服务器之间获得一致的配置。

相关内容