下一页 上一页 目录

8. 附录:ipchains 和 ipfwadm 之间的差异。

其中一些更改是内核更改的结果,而另一些则是 ipchainsipfwadm 不同的结果。

  1. 许多参数已被重新映射:大写字母现在表示命令,而小写字母现在表示选项。
  2. 支持任意链,因此即使是内置链也具有完整的名称而不是标志(例如,input 而不是 -I)。
  3. -k 选项已消失:请使用 ! -y
  4. -b 选项实际上插入/附加/删除两个规则,而不是单个“双向”规则。
  5. -b 选项可以传递给 -C 以执行两次检查(每个方向一次)。
  6. -x 选项(用于 -l)已被 -v 替换。
  7. 不再支持多个源端口和目标端口。 希望能够否定端口范围将在某种程度上弥补这一点。
  8. 接口只能通过名称(而不是地址)指定。 旧的语义无论如何在 2.1 内核系列中被静默更改。
  9. 将检查分片,而不是自动允许通过。
  10. 显式记帐链已被废除。
  11. 可以测试 IP 上的任意协议。
  12. SYN 和 ACK 匹配的旧行为(以前对于非 TCP 数据包被忽略)已更改; SYN 选项对于非 TCP 特定规则无效。
  13. 计数器现在在 32 位机器上是 64 位的,而不是 32 位的。
  14. 现在支持反向选项。
  15. 现在支持 ICMP 代码。
  16. 现在支持通配符接口。
  17. TOS 操作现在经过健全性检查:旧的内核代码会默默地阻止您(非法地)操作 “必须为零” TOS 位; 如果您尝试,ipchains 现在会返回错误,以及其他非法情况。

8.1 快速参考表。

[ 主要,命令参数为大写,选项参数为小写 ]

需要注意的一点是,伪装由 -j MASQ 指定; 它与 -j ACCEPT 完全不同,并且不像 ipfwadm 那样,不被视为仅仅是副作用。

================================================================
| ipfwadm      | ipchains              | Notes
----------------------------------------------------------------
| -A [both]    | -N acct               | Create an `acct' chain
|              |& -I 1 input -j acct   | and have output and input
|              |& -I 1 output -j acct  | packets traverse it.
|              |& acct                 |
----------------------------------------------------------------
| -A in        | input                 | A rule with no target
----------------------------------------------------------------
| -A out       | output                | A rule with no target
----------------------------------------------------------------
| -F           | forward               | Use this as [chain].
----------------------------------------------------------------
| -I           | input                 | Use this as [chain].
----------------------------------------------------------------
| -O           | output                | Use this as [chain].
----------------------------------------------------------------
| -M -l        | -M -L                 |
----------------------------------------------------------------
| -M -s        | -M -S                 |
----------------------------------------------------------------
| -a policy    | -A [chain] -j POLICY  | (but see -r and -m).
----------------------------------------------------------------
| -d policy    | -D [chain] -j POLICY  | (but see -r and -m).
----------------------------------------------------------------
| -i policy    | -I 1 [chain] -j POLICY| (but see -r and -m).
----------------------------------------------------------------
| -l           | -L                    |
----------------------------------------------------------------
| -z           | -Z                    |
----------------------------------------------------------------
| -f           | -F                    |
----------------------------------------------------------------
| -p           | -P                    |
----------------------------------------------------------------
| -c           | -C                    |
----------------------------------------------------------------
| -P           | -p                    |
----------------------------------------------------------------
| -S           | -s                    | Only takes one port or 
|              |                       | range, not multiples.
----------------------------------------------------------------
| -D           | -d                    | Only takes one port or 
|              |                       | range, not multiples.
----------------------------------------------------------------
| -V           | <none>                | Use -i [name].
----------------------------------------------------------------
| -W           | -i                    |
----------------------------------------------------------------
| -b           | -b                    | Now actually makes 2 rules.
----------------------------------------------------------------
| -e           | -v                    |
----------------------------------------------------------------
| -k           | ! -y                  | Doesn't work unless 
|              |                       | -p tcp also specified.
----------------------------------------------------------------
| -m           | -j MASQ               |
----------------------------------------------------------------
| -n           | -n                    |
----------------------------------------------------------------
| -o           | -l                    |
----------------------------------------------------------------
| -r [redirpt] | -j REDIRECT [redirpt] |
----------------------------------------------------------------
| -t           | -t                    |
----------------------------------------------------------------
| -v           | -v                    |
----------------------------------------------------------------
| -x           | -x                    |
----------------------------------------------------------------
| -y           | -y                    | Doesn't work unless 
|              |                       | -p tcp also specified.
----------------------------------------------------------------

8.2 翻译后的 ipfwadm 命令示例

旧命令:ipfwadm -F -p deny

新命令:ipchains -P forward DENY

旧命令:ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0

新命令:ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0

旧命令:ipfwadm -I -a accept -V 10.1.2.1 -S 10.0.0.0/8 -D 0.0.0.0/0

新命令:ipchains -A input -j ACCEPT -i eth0 -s 10.0.0.0/8 -d 0.0.0.0/0

(请注意,没有通过地址指定接口的等效方法:请使用接口名称。 在这台机器上,10.1.2.1 对应于 eth0)。


下一页 上一页 目录