RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

其实不论从nat,包过滤,ALG,稳定性,安全性,来说,用linux做一个防火墙,是一个不错的规划,当然还有价格

Iptables防火墙原理

防火墙技术分为三种

1、包过滤,在ACL中使用ip地址或端口号进行过滤

2、ALG,应用层网关,工作类是代理服务器,linux的squid和win的ISA都是出色的ALG

3、状态化包过滤,使用ACL,通过了解连接状态来确定访问行为

iptables支持包过滤和状态化包过滤

具体防火墙技术相当深奥,不是一言两语可以说清楚

我们用一个实例来分析吧,这个需要对路由和nat要有一定了解才行

实例1:

一个企业使用linux作为网管和防火墙,如果难度再大点就加个DMZ区域

这样就要3块网卡

通过了解DMZ特性

1、不可以访问内网

2、内网和外网可以访问

3、不可以访问外网

通过这三个特性配置DMZ的网段就可以了

DMZ是不允许访问内网的,避外网通过攻破DMZ,进而攻击内网

DMZ位于网络的哪个位置?内网和外网之间

在硬件设备上就是他自动帮你实现了这些功能,在linux就需要你了解原理,然后自己手动配置,达到相同的效果

如果涉及到DMZ的话,肯定还会有状态化包过滤

好像说深了点点,我们继续刚才的课题

作为网关需要设置全局的默认网关到外面那个网卡eth1

内网我们使用eth0

内网所有主机网关指向linux的eth0的IP地址,然后在服务器打开ip转发

vim /etc/sysctl.conf

他是内存正在运行的一些参数的配置文件, 禁ping那个参数可以写到这里,每次开机读取

net.ipv4.ip_forward = 0值改成1

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

更新系统内核参数

sysctl -p

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

现在我们的IP包已经可以出到广域网了,但是广域网上的路由器会丢弃我们内网的IP地址, 所以我们要做nat

好了,开始说到iptables了

要做nat就需要用到iptables的nat表

我们是从里面到外面的包,所以要修改源IP,就叫做源NAT

红帽的官方教材上讲iptables也是用的这个图

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

我们要出去,就是postrouting

现在我们来配置这条命令

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.8.0/24 -j MASQUERADE

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

我们来讲解这条命令

iptables 是命令本身

-t 是执行表,iptables有两个表,一个是filter:过滤的表

一个是nat,就是NAT表,Network Address Translator

然后-A,-A的意思就是添加一条链

这里添加的链是POSTROUTING链,就是源NAT

-o 是出去的网卡设备,我们使用的是eth1网卡

-s 是源地址,我们设置内网的192.168.8.0/24网段

-j是动作,MASQUERADE 动态源地址转换(动态IP的情况下使用)

如果我们使用的静态外网地址,就可以这样写

iptables -t nat -A POSTROUTING -o eth1  -j  SNAT --to  1.1.1.1

把出去的地址都转换成1.1.1.1

好了,现在内网用户可以通过linux网关上网了

这个时候我们为了保证内网安全,我们就需要控制进来的包了

现在我们不考虑DMZ,或者是内部有服务器的问题,这样,外部进来的包,我们默认都要丢弃

比方说,你的代理:192.168.0.1 而我的pc在另外一个网段,192.168.8.88   gw192.168.8.188

这样的话就还需要一个网卡了,通过这个网卡来路由撒

为了防止外网伪装内网IP进行攻击。

私网地址的范围如下:

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.255.255

127开头的(lookback地址)

169.254开头的(WINDOWS保留地址)

先要把10.0.0.0

172.16-31.0.0

192.168.0.0 全部禁止,这几条放在最上面

然后再考虑对外要开放的端口号,最后默认策略要是DROP

变成命令就是这样

iptables -t filter -A INPUT -s 10.0.0.0/8 -j DROP

iptables -t filter -A INPUT -s 172.16.0.0/16 -j DROP

iptables -t filter -A INPUT -s 172.17.0.0/16 -j DROP

省略

iptables -t filter -A INPUT -s 192.168.0.0/24 -j DROP

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

这样把私有网段先全部禁止了

现在外网的私有网段已经ping不通eth1网卡了

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

而内网192.168.8.0/24网段正常

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

然后我们开放一个80端口

iptables -t filter -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

允许所有IP,当然上面禁止的私有IP不行,都可以访问eth1接口IP的80端口

然后就是最后一条,默认都DROP,INPUT就是从外网进来的

iptables -t filter -P INPUT DROP

没有匹配的包全部丢弃

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

现在内网也ping不通eth1网卡IP地址

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

但是上网没问题

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

外网的就OK了,现在我们来配置内网的防火墙

那个还需要做一个PREROUTING,目标NAT

为了防止内网用户攻击外网的用户,所以需要在内网做一些策略

iptables -t filter -A INPUT -i eth1 -j DROP

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

保存iptables规则

service iptables save

service iptables restart

RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙

###############Michael分割线#################

本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/160014,如需转载请自行联系原作者

上一篇:简释iptables防火墙
下一篇:方正方御FG系列防火墙配置详解