以下是对将在下面的防火墙示例中使用的一些规则的解释。 这仅作为参考,防火墙脚本都有很好的注释,并且非常容易修改。 在防火墙脚本文件中,大多数值都使用了常量。 最基本的常量是
这是到 Internet 的外部网络接口的名称。 在示例中,它被定义为 eth0。
这是到 LAN 的内部网络接口的名称(如果有)。 在示例中,它被定义为 eth1。
这是环回接口的名称。 在示例中,它被定义为 lo。
这是您的外部接口的 IP 地址。 它要么是在 InterNIC 注册的静态 IP 地址,要么是从您的 ISP 动态分配的地址(通常通过 DHCP)。
这是您的 LAN 网络地址(如果有) - 您的 LAN 上的计算机使用的整个 IP 地址范围。 这些地址可以是静态分配的,或者您可以运行本地 DHCP 服务器来分配它们。 在这些示例中,范围是 192.168.1.0/24,属于 C 类私有地址范围的一部分。
Anywhere 是 ipchains 用来匹配任何(非广播)地址的地址标签。 这两个程序都提供 any/0 作为此地址的标签,即 0.0.0.0/0。
这是来自您的网络或 ISP 的主 DNS 服务器的 IP 地址。
这是来自您的网络或 ISP 的辅助 DNS 服务器的 IP 地址。
这是您的 ISP & NOC 地址范围。 您在此处指定的值供防火墙用来允许 ICMP ping 请求和 traceroute。 如果您不指定 IP 地址范围,那么您将无法从您的内部网络 ping 通 Internet。
环回地址范围是127.0.0.0/8. 接口本身的地址为127.0.0.1在/etc/hosts.
特权端口,0 到 1023,通常被整体引用。
非特权端口,1024 到 65535,通常被整体引用。 它们是动态分配给连接客户端的地址。
: 从 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 |