FreeBSD handbook中文版 10 安全(21) 码已经变得很陈旧了。 10.7.4 配置IPFW IPFW 的配置可以通过使用ipfw 工具来完成。这个命令的语法看起来很复杂,但一旦 你理解个它的结构就会变得很简单。 当前,这个工具可以使用四种不同的命令:addition/deletion, listing, flushing 和clearing。 Addition/deletion 被用来建构控制数据包如何被接受,拒绝,和日志的控制规则。Listing 被 用来检查你规则设置的内容和数据包记数器。Flushing 被用来删除所有记录链的记录。 Clearing 被用来对一个或多个记数记录进行清零。 10.7.4.1 改变IPFW 的规则 这种形式的命令语法是: ipfw [-N] command [index] action [log] protocol addresses [options] 第33 页FreeBSD 使用手册 当使用这种形式的命令时,会有一个正确的标记: -N 在输出中解决地址和服务的名称。 给出的命令可以被缩短到最短的独特形式。正确的命令是这样的: add 添加一个记录到firewall/accounting 规则列表 delete 从firewall/accounting 规则列表中删除一个记录 先前使用的IPFW 可以分离firewall 和accounting 记录。现在的版本提供了与每个防 火墙记录数据包accounting。 如果提供一个索引值,它会被放置在数据链中的一个指定点的记录。否则,记录会被放 置在超过上次数据链记录的索引值100 的数据链的结尾(这不包括默认的策略,一般是 65535,deny)。 如果内核编译进IPFIREWALL_VERBOSE,日志选项会把匹配规则输出到系统控制台。 正确的指令是: reject 阻止数据包,然后发送一个ICMP 主机或无法到达数据包端口给数据源。 allow 通过数据包。(别名:pass and accept) deny 阻止数据包。数据源没有得到ICMP 消息的通报。 count 升级数据包记数器,但不允许/阻止以这个规则为基础的数据包。会继续对下一个数据 链记录进行搜索。 第34 页FreeBSD 使用手册 每个动作会通过加上一个简短明确的前缀来验证。 可能被指定的协议是: all 匹配所有的IP 数据包 icmp 匹配ICMP 数据包 tcp 匹配TCP 数据包 udp 匹配UDP 数据包 地址的规则: from address/mask [ port] to address/mask [ port] [via interface] 你可以只指定与支持端口的协议相关联的端口(UDP 和TCP)。 所通过的路径是可选择的,可以指定一个本地IP 接口的IP 地址或域名,或是一个只与 来自这个接口的数据包匹配的接口名(如:ed0).接口单位数目可以用一个可选择的通配符 来表示。例如,ppp*将匹配所有内核PPP 接口。 指定一个address/mask的语法: address 或 address/ mask-bits 或 address: mask-pattern 第35 页FreeBSD 使用手册