ipchains 的规则链
以下介绍 ipchains 的基本用法
ipchains 中的指令,皆需要区分大小写.
ipchains 把封包过滤规则分成四个类别,每一个类别可以是许多过滤规则的集合,称之为 "规则链"(chains),而封包过滤的过程,每个封包会进入其所属的链中,进行比对的动作,若某一条规则符合,就执行该规则所指定的目标动作(TARGET),如 DENY/REJECT/ACCEPT/MASQ/REDIRECT/RETURN;若不然,则继续下一条.
若所有的规则都不符合,则由预设政策(policy),来决定该封包的命运.
四种规则链,如下:
· input
· output
· forward
· 使用者自订
前三者,是内订就有的链.其特性,在课堂上说明之.
ipchains 使用时的样板
在设定 ipchains 的封包过滤规则时,有几个样板的动作,若先熟悉它们,往后就可自行套用,依此类推,很快地,您就可以进入这个天地之中.
观察目前的设定
在做设定时,通常我们会用指令来观察一下现况,作法如下:
ipchains -L -n
上述 -n 是指 不要进行 IP 反解的动作, 只显示数字 IP 即可, 以加快指令的速度.
定义变数
以下 $FW_IP 代表防火墙的第一片网卡的 IP,我们以下列来定义之.
FW_IP="163.26.197.8"
清除所有的规则
一开始要先清除所有的规则,重新开始,以免旧有的规则影响新的设定.作法如下:
ipchains -F
选定预设的政策
接着,要选定各个不同的规则链,预设的政策为何.作法如下:
预设全部丢弃
ipchains -P input DENYipchains -P output DENYipchains -P forward DENY
或者,预设全部接受
ipchains -P input ACCEPTipchains -P output ACCEPTipchains -P forward ACCEPT
各个规则链的预设政策可独立自主的设定,不必受其它链的影响.
以下练习,若目标为 DENY,则 policy 请设为 ACCEPT;若目标为 ACCEPT,则 policy 请设为 DENY,如此方可看出效果.
开放某一介面
开放 loopback 介面.作法如下:
ipchains -A input -i lo -j ACCEPTipchains -A output -i lo -j ACCEPT
loopback 是 127.0.0.0/8,为 local 测试用途,因此开放.
ipchains -A input -i eth1 -j ACCEPTipchains -A output -i eth1 -j ACCEPTipchains -A forward -i eth1 -j ACCEPT
丢弃不合理的封包
有些封包是不合理的,比如:它的来源,明明是私有IP,却在连接外部的网卡上,有进出的情况,如此明显是有人假造的,可能是有心者的入侵攻击,因此予以丢弃.作法如下:
ipchains -A input -i eth0 -s 172.16.0.0/12 -j DENY(来自私有B Class IP,却欲进入 eth0)ipchains -A output -i eth0 -d 172.16.0.0/12 -j DENY(欲输出,目的地竟是私有 B Class IP)