ipfw man

2009-05-13 15:04:05来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

ipfw是FreeBSD下的一个用户界面,它用来控制ipfw防火墙和流量整形。
  ipfw的配置,也叫做规则集,它是由一系列的规则组成的,这些规则的编号是从1到65535。通过ipfw的数据包可以来自协议栈的许多各个的地方(这主要依赖于数据包的来源和目的,某些数据包很可多次经过防火墙)。数据包在通过防火墙的时候,要和防火墙规则集逐条对比。如果发现匹配的规则,则执行相应规则的动作。
  在特定的规则动作和系统设置下,数据包在匹配完一个规则后,可能在某些规则之后重新进入防火墙。
  一个ipfw规则集总是包含一个默认的规则(编号为65535),这个默认规则匹配所有的数据包,不能修改或删除。根据内核配置的不同,这个默认规则或者是拒绝所以数据包通过,或者是允许所有数据包通过。
  如果规则集中存在一个或多个包含有keep-state(状态保持)或limit(限制)的规则,那么ipfw就表现为状态保持。例如:当这种规则匹配了一个数据包时,ipfw将创建一个动态规则,让后来的,同这个数据包的地址和端口参数严格一致的数据包,与这个动态规则相匹配。
  这些动态规则,都有一个有限的生存期。生存期在第一次遇到check-state、keep-state或者是limit规则时被检查。这些动态规则的典型应用,是用来保证合法的数据包在通过时开启防火墙。查看下面的“状态防火墙”和“示例”章节,获取更多关于状态保持的信息。
  包括动态规则在内的所有规则,都有几个相关的计数器:一个包计数器,一个字节计数器,一个记录计数器和一个用来提示最后匹配时间的时间戳。这些计数器都可以被ipfw命令显示和清零。
  可以用add命令来添加规则;可以用delete命令来删除单个或一组规则;可以用flush命令来删除所有的规则(set 31除外);可以用show和list命令来显示包括计数器在内的信息。最后,计数器可以被zero和resetlog命令清零。
  并且,每个规则隶属于32个不同的规则集中的一个。有一些ipfw的命令可以独立地操作这些规则集,例如:启动、禁止、交换规则集;把一个规则集中的所有规则移动到另一个规则集;删除一个规则集中的所有规则。这对于安装临时配置,或者是测试配置是非常有用的。查看“规则的规则集”一节,获取更多关于set的信息。        
  以下是ipfw命令可以利用的选项:
-a  使用 list 时,列出数据包的计数器,show命令包含这个选项。
-b  只显示动作和注释,不显示规则体。包含-c选项。
-c  进入或显示规则时,用紧凑格式输出。例如:在没有任何附加意义的情况下,不显示“ip from any to any”字符串。
-d  在list时,在显示静态规则的同时,显示动态规则。
-e  在list时,如果指定了-d选项,则显示过期的动态规则。
-f  对于有些会导致问题的命令,不要提出确认的询问。例如:flush命令。哪果一个进程没有相关的tty,这个是默认被包含的选项。(译注:没看懂这句话的意思,好像是如果不是在tty中输入的命令,比如在scripts中,默认是有-f的。)
-n  只检查命令的语法,不真正执行命令。
-N  尝试在输出中,解析地址和服务名。
-q   当新增 (add)、归零(zero)、重置日志(resetlog)或清除(flush) 时,不要显示任何回应信息(就像使用-f选项一样)。这对于在脚本里利用ipfw命令来调整防火墙规则(例如执行“sh /etc/rc.firewall”脚本)、或者是处理与一个远程登录相关的有多条ipfw命令的,是非常有用的。同时,它防止无意间,在规则中加入或删除一个列表而导致的错误。(译注:没看懂,好像下面是一个例子。)在正常的模式,默认内核配置下,一个flush命令会输出一个信息。因为所有的规则都被清除掉,这个消息又不能传送到登录的进程中,脚本后面的规则将无法执行,所以将导致远程连接中断。这时,只好回到计算机前去工作了。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:freebsd 7 release 内核编译

下一篇:sysctl.conf 优化方案