10.4. 防火墙脚本文件中使用的规则

以下是对将在下面的防火墙示例中使用的一些规则的解释。 这仅作为参考,防火墙脚本都有很好的注释,并且非常容易修改。 在防火墙脚本文件中,大多数值都使用了常量。 最基本的常量是

EXTERNAL_INTERFACE

这是到 Internet 的外部网络接口的名称。 在示例中,它被定义为 eth0。

LOCAL_INTERFACE_1

这是到 LAN 的内部网络接口的名称(如果有)。 在示例中,它被定义为 eth1。

LOOPBACK_INTERFACE

这是环回接口的名称。 在示例中,它被定义为 lo。

IPADDR

这是您的外部接口的 IP 地址。 它要么是在 InterNIC 注册的静态 IP 地址,要么是从您的 ISP 动态分配的地址(通常通过 DHCP)。

LOCALNET_1

这是您的 LAN 网络地址(如果有) - 您的 LAN 上的计算机使用的整个 IP 地址范围。 这些地址可以是静态分配的,或者您可以运行本地 DHCP 服务器来分配它们。 在这些示例中,范围是 192.168.1.0/24,属于 C 类私有地址范围的一部分。

ANYWHERE

Anywhere 是 ipchains 用来匹配任何(非广播)地址的地址标签。 这两个程序都提供 any/0 作为此地址的标签,即 0.0.0.0/0。

NAMESERVER_1

这是来自您的网络或 ISP 的主 DNS 服务器的 IP 地址。

NAMESERVER_2

这是来自您的网络或 ISP 的辅助 DNS 服务器的 IP 地址。

MY_ISP

这是您的 ISP & NOC 地址范围。 您在此处指定的值供防火墙用来允许 ICMP ping 请求和 traceroute。 如果您不指定 IP 地址范围,那么您将无法从您的内部网络 ping 通 Internet。

LOOPBACK

环回地址范围是127.0.0.0/8. 接口本身的地址为127.0.0.1/etc/hosts.

PRIVPORTS

特权端口,0 到 1023,通常被整体引用。

UNPRIVPORTS

非特权端口,1024 到 65535,通常被整体引用。 它们是动态分配给连接客户端的地址。

请注意,防火墙具有默认策略以及一组针对特定消息类型采取的操作。 这意味着,如果给定的数据包未被任何其他规则选中,则将应用默认策略规则。

Tip: ISP 动态分配 IP 的用户可以在其防火墙声明中包含以下两行。 这两行将确定 ppp0 IP 地址和远程 ppp 服务器的网络。
          
          IPADDR=`/sbin/ifconfig | grep -A 4 ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://`
          MY_ISP=`/sbin/ifconfig | grep -A 4 ppp0 | awk '/P-t-P/ { print $3 } ' | sed -e s/P-t-P:// | cut -d '.' -f 1-3`.0/24
          
          

您需要启用本地流量,因为本书中所有示例防火墙规则脚本文件的默认策略是拒绝所有内容,因此必须取消设置其中一些规则。 本地网络服务不通过外部网络接口。 它们通过一个特殊的、私有的接口,称为环回接口。 在允许环回流量之前,您的任何本地网络程序都将无法工作。

          
          # Unlimited traffic on the loopback interface.
          ipchains -A input  -i $LOOPBACK_INTERFACE -j ACCEPT
          ipchains -A output -i $LOOPBACK_INTERFACE -j ACCEPT