xiyoukeke 2012-02-20
一、比较安全的防火墙设计:真正的非军事区域
真正的非军事区域是比较安全可靠的防火墙设计,这种设计的内部和外部都有防火墙,在这两者之间可以放任何因特网可访问的设备。
因特网流量仅能访问非军事区域内的服务器,并且只能访问非军事区内的服务器正在监听的端口。这种情况下,即使web服务器被攻破了,黑客也只能困在两个防火墙之间。
二、选择防火墙
硬件防火墙的好处是不言而喻的了,可惜高高在上的价格还是让人不好接受。这里介绍软件防火墙:
netfilter:Linux上的不二选择,很多情况下已经被嵌入到各个Linux系统中了。大家容易误解iptable是Linux上的防火墙,其实iptable是配置netfilter的。
通常默认已经安装了,如果没有安装,则用傻瓜的yum或apt-get来安装就ok了
三、Linux防火墙基础知识
netfilter主页:http://www.netfilter.org/
iptables既用表也用链,表是处理的块,对包的不同操作就是在表中进行的,不同的表处理不同的链,链是规则的集合。有4个内建的表:网络地址转换表,轧表、过滤表和原始表,每个表处理不同的链。
下面列出的是过滤表:
Filtertable这是用iptables命令修改规则时需要的默认表,防火墙的大部分的实现都是在这里实现的。
目标是当一个包符合一个给定的规则时应该采取的行动。 目标是用 j <target> 文法进行说明
四、配置(环境CentOS5.3)
1、防火墙必须工作在一个安装好的系统上,所以系统必须要升级强化。
考虑到服务器原有的文件中可能会有有危险性的文件,所以如果该系统只是用做防火墙,推荐全盘格式化后,安装全新的最小化的系统,并升级加固。
2、查看防火墙是否安装。使用命令chkconfig--list,将列出所有的服务及其开启时的运行等级:
chkconfig--list|grepiptables
iptables0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
说明iptable会在等级2~5运行。你也可以使用命令chkconfig--level2345iptableson命令设置该服务默认启动。
3、删除规则和链
很多Linux发行版默认netfilter服务是开启的,但规则是空的。可以用iptables-L命令查看当前状态,如果是下面这样,就是空的:
ChainINPUT(policyACCEPT)
targetprotoptsourcedestination
ChainFORWARD(policyACCEPT)
targetprotoptsourcedestination
ChainOUTPUT(policyACCEPT)
targetprotoptsourcedestination
ChainRH-Firewall-1-INPUT(0references)
targetprotoptsourcedestination
大家注意到我的记录的组后两行是之前没提到的,这个是发行版中创建的非默认的链,可以用命令iptables-XRH-Firewall-1-INPUT删除该自定义链。
4、注意
在下面的配置中一定要非常小心,在开始其他所有工作之前,首先创建一个规则,容许管理员接入。这是因为一旦将所有的规则都配置为DROP,SSH连接也会被禁止,这样连修改的机会也没了。
5、其他常识
我用的是CentOS,防火墙被安装为服务,系统自动提供了一个iptables的管理脚本/etc/init.d/iptables。这里面提供了几个选项:start、stop、restart、condrestart、status、panic、save。
要注意如果使用命令serviceiptablesstop、serviceiptablesstart、serviceiptablesrestart这几个命令会消除当前活跃的规则集,并从配置文件中重新载入。所以需要使用serviceiptablessave命令保存当前活跃的规则集.
默认的配置文件路径:/etc/sysconfig/iptables
6、 配置对链或规则本身进行操作的iptable命令使用大写字母表示: -A附加、-D删除规则、-I插入、-R替换、-L列表、-F充溢、-N新建、-X删除链 |
-s源地址、-p协议、-d目的地址、-j跳、-i入界面、-o出界面