2024年3月30日发(作者:)

Linux防火墙的配置与管理

为了保护校园网的安全,需要使用防火墙。防火墙位于网络边界,用于保护局域网(LAN)

内网和DMZ区,免受来自因特网(WAN)的攻击。防火墙的工作实质是报文过滤。

一、项目简介

(一)含有DMZ区的防火墙概述

防火墙通常有三个接口(端口),分别是WAN、LAN和DMZ。如图表3-1所示。

LAN校园

DMZ

eth0

eth1

DMZ区服务器

eth2

WAN

图3-1 防火墙拓扑结构图

在网络中,非军事区(DMZ)是指为不信任系统提供服务的孤立网段,其目的是把敏感

的内部网络和其他提供访问服务的网络分开,阻止内网和外网直接通信,以保证内网安全。

含有DMZ的网络,包括六条访问控制策略。

1、内网可以访问外网

内网的用户可以自由地访问外网。因此防火墙需要进行源地址转换。

2、内网可以访问DMZ

内网用户使用和管理DMZ中的服务器。

3、外网不能访问内网

由于内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。

4、外网可以访问DMZ

DMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,

外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。

5、DMZ不能访问内网

很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要

数据。

6、DMZ不能访问外网

此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网,否则将不能正

常工作。

(二)Linux防火墙简介

Linux下的防火墙是iptables/netfilter。iptables是一个用来指定netfilter规则和管理内核

包过滤的工具,它为用户配置防火墙规则提供了方便。与大多数的Linux软件一样,这个包

过滤防火墙是免费的,它可代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和

网络地址转换NAT等功能。

1、netfilter的组成

netfilter主要包括三个表(table):filter、nat和mangle,分别用于实现报文过滤、网络

地址转换和报文重构。系统默认使用的是filter表,即在iptables命令配置规则时,若没有

指定要操作的表,系统默认对filter表进行操作。

每个表包含有若干条内建的链(chain),用户也可在表中创建自定义的链。在每条链中,

可定义一条或多条过滤规则(rule),即链是规则的一个列表。每条规则的定义方式一般是

“如果报文符合这样的条件,就这样处理该报文”。规则的处理遵循第一匹配优先原则,在

表达规则时就注意先后顺序。

filter表用于实现IP报文的过滤处理,该表内建有3个名为INPUT、FORWARD和OUTPUT

的链。nat表用于对源地址、目的地址或端口的替换修改,该表内有3个名为PREROUTING、

POSTROUTING和OUTPUT链。mangle表用于通过修改报文头中与传输特性相关的字段的值

来重构报文,实现高级路由的目的,该表内有PREROUTING、POSTROUTING、OUTPUT、INPUT

和FORWARD5个链。

2、netfilter报文处理流程

数据报文在filter表、nat表和mangle表中的处理,没有明确的先后次序,但处理数据

报文的链存在一定的先后次序,这些链各属于不同的表,这些表从先后次序来看,存在交替

的情况。这里只说明filter和nat表,忽略mangle表。

(1)目的地址为防火墙或代理服务器自身的报文的处理流程

局域网内用户或因特网用户访问防火墙或代理服务器,属于此种情况,此时数据报文的

处理流程如表3-1所示。

顺序号

1

2

3

4

5

表名

nat

filter

链名

PREROUTING

INPUT

操作说明

数据通过网络接口,进入防火墙或代理服务器

可在该链中对报文进行DANT操作

系统判断包是发给自己的,还是要转发的

可在该链中添加规则,对访问自己的报文进行过滤处

通过INPUT链处理后允许通过的报文到达本地服务

表3-1 目的地址为防火墙或代理服务器自身的报文的处理流程

(2)防火墙或代理服务器主动发起的访问请求报文的处理流程

防火墙或代理服务器作为一台主机,主动发起的访问请求包,其源地址为防火墙或代理

服务器自身的地址,这些数据报文的处理流程如表3-2所示。

顺序号

1

2

表名

链名

操作说明

本地服务进程产生访问请求报文

路由判断