如何在一台充当路由器的机器上pipe理你的Linux iptablesconfiguration?

我有几台Linux机器作为我的networking的路由器/防火墙,我有一个运行所有iptables命令来设置我的规则的脚本。 在我看来,这似乎是一个非常愚蠢的做法。

你怎么做到这一点? 有configuration文件的程序有点容易pipe理吗? 它有一个GUI或Web界面?

我使用firehol结合我开发的Web界面来pipe理configuration文件。

我真的很喜欢firehol,它提供了一个简单的语法,然后直接使用iptables。

  • 您可以使用firehol debug命令精确地生成iptables命令
  • 如果您的configuration中有错误,并启动防火墙,firehol会检测到错误并恢复到之前的状态。
  • Firehol有一个“try”命令,你可以用它来远程启动防火墙,如果你的修改终止了你的连接,firehol将恢复到以前的状态,如果你没有连接,那么它会要求你确认修改。
  • Firehol拥有大量预先定义的服务,因此您不必确切地记得您需要在哪些端口上打开某些难以理解的协议。

我已经使用了防火墙生成器 ,我非常喜欢它 – 这是一个GUI程序,专门用于pipe理防火墙configuration,主要是远程主机,可能是服务器,路由器等等。 界面看起来有点吓人,但以我的经验来看,花费数小时左右的时间才能算出来。 (显然,他们刚刚发布了第三版,因为我上次检查,所以很可能GUI变得更加直观)

对于RedHat和相关的操作系统(也可能是其他的操作系统),你可以使用脚本来创build防火墙,然后service iptables ...来处理它。 这就是我所做的。 当我更改我的iptablesconfiguration时,我使用了一个脚本。 然后我把它保存

 service iptables save 

在这一点上,机器现在总是会提出新的规则。 您可以转储您当前规则的简要版本

 service iptables status 

我们使用了shorewall – “iptables变得容易”。 GUI可通过Webmin 1.060及更高版本获得

Shoreline防火墙通常被称为“Shorewall”,是configurationNetfilter的高级工具。 使用一组configuration文件中的条目来描述防火墙/网关的要求。 Shorewall读取这些configuration文件,并在iptables,iptables-restore,ip和tc实用程序的帮助下,ShorewallconfigurationNetfilter和Linuxnetworking子系统以符合您的要求。 Shorewall可用于专用防火墙系统,多function网关/路由器/服务器或独立的GNU / Linux系统。

我看不出你的方法有什么问题,假设每台机器都有不同的规则。

我通常设置防火墙规则的方法是通过在命令行上input它们,然后运行iptables-save > /etc/iptables_rules ,然后将以下内容插入到/etc/network/if-pre-up.d/iptables所以当networking接口启动时,规则会自动导入。

 #!/bin/bash /sbin/iptables-restore < /etc/iptables_rules 

除了将规则分成几个子文件 (private,dmz,vpn)和设置variables文件以使规则更具可读性之外,我完全按照您所描述的内容进行操作。

您可以使用pfSense代替您的路由器,它具有许多function :

  • 火墙
  • networking地址转换(NAT)
  • 冗余
  • 负载平衡报告和监测
  • RRD图

    pfSense中的RRD图维护以下的历史信息。

    • CPU利用率
    • 总吞吐量
    • 防火墙状态
    • 所有接口的单独吞吐量
    • 所有接口的每秒数据包速率
    • WAN接口网关ping响应时间
    • stream量整形器启用stream量整形的系统上排队
  • VPN
    • IPsec的
    • PPTP
    • OpenVPN的
  • dynamicDNS

    通过:

    • DynDNS的
    • DHS
    • DyNS
    • easyDNS
    • 无IP
    • ODS.org
    • ZoneEdit
  • 圈养门户
  • DHCP服务器和中继

它有一个很好的,易于使用的基于Web的configuration,只需看屏幕截图 。

最重要的是,你可以用商品硬件自己构build它,它是开源的 。