dcsimg

使用ipchains进行Linux防火墙

您可以使用Linux内核的ipchains实用程序来设置经济高效的防火墙,它可以根据需要简单或复杂。

 By 文森特·丹恩
第页  |  返回第1页

几乎每个人都知道Linux是出色的防火墙。无论将它与服务网页或FTP站点一起使用,还是作为内部LAN的独立前端使用,Linux都提供了构建防火墙以满足特定需求所必需的工具。

ipchains内置在Linux内核中,ipchains是拒绝,接受和路由系统中的数据包所需的基本防火墙实用程序。由于此实用程序和操作系统固有的低成本,Linux为LAN或Internet连接的公司提供了一种经济高效的防火墙选择。

防火墙类别

Linux内核为防火墙流量指定了三类过滤器。不同的规则适用于每种类型的流量,从而产生了一种用途极为广泛的防火墙。这些基本类别如下:

  • 输入防火墙-在接受所有输入流量之前,将根据输入防火墙规则对其进行测试。

  • 输出防火墙-在发送之前,将根据输出防火墙规则测试所有传出流量。

  • 转发防火墙-在转发之前,将根据转发防火墙规则测试通过Linux系统转发的所有流量。

    您还可以指定自己的规则(也称为 链条),这是对三个基本防火墙规则的扩展。

    防火墙政策

    这三个规则类别(以及您定义的任何其他规则)都具有默认策略。这些默认策略控制系统对到达防火墙的任何特定数据包的反应方式。您可以将标准策略用于任何给定的规则,也可以跳到另一个用户定义的规则以进行进一步处理。标准策略是:

  • 接受-让数据包通过防火墙。

  • 拒绝-丢弃数据包,并向数据包的发送者返回Internet控制消息协议(ICMP)“主机不可达”错误消息。

  • 拒绝-静默丢弃数据包,而不会将错误消息返回给发送方。

  • 马士基-伪装数据包,使它看起来像是源自本地系统。当Linux用作路由器时,此策略特别有用。

  • 重新定向-将数据包发送到本地系统上已定义的端口,而不考虑数据包的目的地。

  • 返回-此策略仅在用户定义的规则中有效。它只是返回到调用链。如果在三个内核链类别之一中使用它,则意味着退出链并使用该链的默认策略。

    构建规则链

    ipchains实用程序以非常简单且非常灵活的方式构造规则链。对于任何链,您都可以指定多个必须匹配的选项才能处理链。这些选项包括:

  • 协议类型 (TCP,UDP,ICMP或ALL)
  • 报文源地址 (格式为 地址[/ mask] [端口[:端口]])
  • 报文目的地址 (与源地址格式相同)
  • 目的端口号 (格式为 端口[:端口]])
  • ICMP报文类型 (ICMP消息类型很多,您可以将规则与特定的规则进行匹配)
  • 接口 规则应适用的对象(例如lo或eth0)

    还可以使用其他选项来指定不同类型的传输控制协议(TCP)数据包的优先级。例如,给FTP数据包提供比Internet中继聊天(IRC)数据包更高的优先级;提供某些链的日志记录;并设置更详细的选项,详细说明数据包类型,大小等。

    由于ipchains的多功能性和可用选项的数量,根据您的需求,构建防火墙可能非常简单,也可能非常复杂。一个简单的防火墙可以包含四个或五个ipchains命令。复杂的防火墙可以由数百个ipchains命令组成,这些命令可以锁定所有内容并根据需要打开特定的端口和服务。

    由于构建良好的防火墙的复杂性,我强烈建议访问Linux防火墙设计工具包,网址为: www.linux-firewall-tools.com/linux/firewall。它提供了一个干净而全面的Web接口,您可以使用它在线设计防火墙,而不必知道如何使用ipchains。它还输出可以保存和使用的防火墙脚本。

    样本防火墙脚本

    一个非常简单的防火墙脚本可能看起来像这样:
    ipchains -A input -i eth0 -s 192.168.0.0/16 -j 拒绝
    ipchains -A input -d 192.168.1.5 25 -j 接受
    ipchains -A input -d 192.168.1.5.110 -j 接受
    ipchains -A input -d 192.168.0.0/16 -syn -j 拒绝

    该脚本只是将规则附加到输入规则链中。第一条规则说,任何冒充来自我们内部网络(192.168)的源地址到达外部接口的数据包都应该被丢弃,因为有人试图欺骗我们。接下来的两个规则说,任何发送到192.168.1.5的流量(我们的邮件服务器,提供SMTP(端口25)和POP3(端口110)服务)都应被接受。最终规则拒绝所有其他具有SYN位置1的入站TCP连接(这意味着它们正在尝试启动连接)。

    结论

    如您所见,无论是将ipchains用作Linux服务器的防火墙还是内部LAN的防火墙/路由器,ipchains都为Linux系统提供了强大的过滤功能。正确配置的防火墙可以为您的公司提供保护,这是非常宝贵的。 Linux提供了任何想设置防火墙的人都需要的灵活性和力量-只有Linux解决方案才具有成本效益。 //

    文森特·丹恩 是一位来自加拿大埃德蒙顿的自雇Linux顾问和自由作家。自1997年中以来,他一直仅使用Linux。 Vincent坚定地相信Linux“革命”背后的哲学,并试图从他的著作中尽可能多地为Linux事业做出贡献。 Freezer Burn网站 为Linux Mandrake项目构建自定义RPM。

  • 本文最初于2000年5月19日发布
    通过网络更新新闻获取最新消息