动态iptables 防火墙
2007-03-04 12:42:32 来源:WEB开发网ipdrop:说明
如果留意最后突出显示的四行,您会看到将适当规则插入防火墙表的真正命令。可以看到,$INSERT 环境变量的定义随着运行方式是 "on" 还是 "off" 而变化。iptables 行执行时,会适当插入或删除特定规则。
现在,让我们看一下规则本身的功能,规则应该与任何类型的现有防火墙或甚至在没有防火墙的系统上正常工作;您所需要的只是 2.4 内核中的内置 iptables 支持。我们阻止来自恶意 IP(第一个以 iptables 开头的行)的进入信息包,阻止标题为恶意 IP(下一个以 iptables 开头的行)的外出信息包,然后关闭涉及这个特殊 IP(最后两个以 iptables 开头的行)的转发。一旦这些规则就位,系统就只废弃任何属于其中一个类别的信息包。
另一个简短注释:您还会注意到对 "rec_check"、"unrecord"、"record" 和 "args" 的调用。这些是在 "dynfw.sh" 中定义的 helper bash 函数。"record" 函数将被阻止的 IP 记录到 /root/.dynfw-ipdrop 文件中,而 "unrecord" 从 /root/.dynfw-ipdrop 中除去记录项。如果要重新阻止一个已被阻止的 IP,或者取消阻止当前未阻止的 IP,可以使用 "rec_check" 函数来放弃带错误消息的脚本。"args" 函数负责确保我们接收到正确数量的命令行自变量,它还负责打印有帮助的用法信息。我已经创建了包含所有这些工具的 dynfw-1.0.tar.gz;有关详细信息,请参阅本文结尾的 参考资料部分。
tcplimit
如果需要限制使用某个特定基于 TCP 的网络服务,可能是某些会在终端上产生大量 CPU 负载的服务,那么下一个动态防火墙脚本会非常有用。这个脚本称作 "tcplimit",它使用一个 TCP 端口、一个速率、一个比例和 "on" 或 "off" 作为自变量:
更多精彩
赞助商链接