如何用老式奔腾机和Linux构建防火墙(组图)(3)
时间:2018-05-08 20:49 来源:网络整理 作者:墨客科技 点击:次
如果您用了防火墙,就可以使用公共因特网上无效的某段网址,或者用NAT。这样,主干网的主要路由器将视那些来自私人地址的包为非法而予以丢弃。这些段址已经定义并在文献 RFC 1918列举出来(参看表1)。这样的段址共有三套,但对于绝大多数公司来说,192.168.0.0就足够了。在下面的例子中我们也将采用这套段址。 表 1: 分配给私有网络的 IP 地址 起始地址 结束地址 CIDR 段址前缀 地址数目 10.0.0.0 10.255.255.255 10.0.0.0/8 ~ 16,000,000 172.16.0.0 172.31.255.255 172.16.0.0/12 ~ 4,000,000 192.168.0.0 192.168.255.255 192.168.0.0/16 ~ 65,000 您的内部网的全部机器都应该用这些给定地址范围来标识。比如 192.168.1.22防火墙的内部接口应占用第一个地址192.168.0.1。以 .0.0、.0、.255 和.255.255结尾的是系统保留地址,所以不要把他们分配给任何机器。在起始地址和结束地址范围之内的其他 IP地址可按个人喜好分配. 下面的例子包括四个台式机和四个服务器。名为 stranger 的台式机禁止进入防火墙保护的内部网络,而familiar则可以。名为Freedom的服务器位于公司内部网络,但不受防火墙保护,这对向公开的网站来说是常见的。分配给这些机器的网络地址是随便给定的,但是它们被划分成不同的网络地址集合(192.168.x.x分配给防火墙内部网, 216.19.15.x 分配给防火墙外部但仍处于公司内部的网络,198.102.x.x指的是公共因特网址)。 ipchains -N 创建一个新链 ipchains -X 删除已有链 ipchains -L 列出链中的所有规则 ipchains -F 删除链中的所有规则,但仍保留该链 ipchains -Z 删除与链相关的统计数据 ipchains -P 设置链的全部策略(接受 ACCEPT, 否决 DENY, 拒绝 REJECT, 屏蔽 MASQ,改向REDIRECT, 返回 RETURN 等) ipchains -M -L 列出所有使用屏蔽的链 ipchains -M -S 对所有使用屏蔽的链,根据协议不同而分配若干超时限制 表 3: 定义过滤规则的命令 命令 陈述 ipchains -A 将规则添加到链中 ipchains -D 根据规则在链中的位置,删除该规则 ipchains -R 根据规则在链中的位置,用新规则取代它 ipchains -I 将新规则插入到链中的指定位置 ipchains -C 使用链中的规则来过滤 protocol-info 中的内容,从而测试该链 表3中的过滤规则命令需要指定源和目的地址、协议类型和相关的端口号、其他IP协议的标志、以及所施行于它们的规则。这些规则条目可以逐一列出,以便或含糊或准确的描述被过滤掉的包的类型。 源地址 (-s) 和目的地址(-d)具有相同的格式。您可以具体指定单个主机地址或某网络的一组主机地址。前一种情况,只需要插入主机地址;后一种情况则需要指定网络地址和网络地址掩码或比特掩码。比特掩码和网络掩码的作用是一样的,不同于网络掩码给定四组十进制数,它从网络掩码的左端开始计入比特数。例如,网络掩码255.255.255.0等效于比特掩码 24,255.255.224.0 等效于19。不方便的是,您不能指定任意范围的网络地址,比如从 192.168.1.1到 192.168.1.133――因为您无法用合适的网络掩码来表示它们。这个软件不得不这么工作,因为想要使它有效地过滤任意一段网络地址实在是太困难了。 规则 陈述 -d 192.168.1.24 -j ACCEPT 接受所有发送到 192.16.1.24 (Jane) 的包 -d 192.168.0.0/255.255.224.0 -j DENY 拒绝所有试图到达 192.168.1.0到192.168.31.255 范围中某个地址的数据包,这就意味着 Bob, Fred 和 Jane的主机都被保护起来,而Olivia 则没有。 -d 192.168.0.0/19 -j DENY 和上一命令相同,只是用比特掩码来表示范围的结束地址。 上面的例子展示了目的地址的细节(用 -d ),但和源地址的用法是相同的(只是代之以-s)。下一个策略组件是协议类型。ipchains 支持三种常用的传输协议类型:TCP、UDP和ICMP。其他协议仍处于试用阶段,这里略过不谈。 -p TCP -s 192.168.1.24 -j ACCEPT 接受所有来自 Jane (192.168.1.24)的包 -p TCP -d 192.168.0.0/19 -j DENY 否决所有到达 Bob, Fred 和 Jane 的TCP包 -p TCP -d 192.168.1.24 80 -j ACCEPT 接受到达 Jane 机器80端口的所有 TCP 包 -p TCP -d 192.168.1.24 www -j ACCEPT 和上一命令类似,但用 www 来表示缺省的Web服务器端口。在 /etc/services 文件中定义了此端口。 -p TCP -d 192.168.1.24 0:1024 -j DENY 否决所有要到Jane的0到1024范围中任何一个端口的 TCP 包。 -p TCP -d 192.168.1.24 www -j ACCEPT 接收要到 Jane 机器上www端口(缺省情况下即80端口)的所有 TCP 包。 (责任编辑:admin) |