1、防火墙的介绍

 目前操作系统上一般都自带防火墙技术.对于防火墙,其实就是一种数据包的过滤器,取其精华,弃其糟粕。数据包的过滤级别由户自己设定的。一般情况下对数据包的限制是对进入本系统的数据包进行过滤。我们可以拒绝所有的包,也可以拒绝某个ip甚至是某个端口上的数据包。


2、防火墙的配置

   对于防火墙的配置主要是配置linux系统中的过滤表(filter),并对filter中设置过滤规则链。一般情况下有三条预设过滤规则链:进(INPUT)、出(OUTPUT)、转发(FORWORD).对于每一项的永久设置可以配置/etc/sysconfig/iptables 或者执行 /etc/rc.d/init.d/iptables save 后执行 service iptables restart (重启)来将配置的文件永久生效。


2.1、 查看本机防火墙的情况:启动和未启动状态

   命令: iptables -L -n

 

2.2、防火墙过滤表的建立

 防火墙有三种表,一张是filter(默认),一张nat表格, 另外一张是mangle。

 iptables -t nat | mangle

 filter的规则链有INPUT/OUTPUT/FORWARD 操作有: -j  ACCEPT / DROP.

 nat的规则链:

 POSTROUTING链在包就要离开防火墙之前改变其源地址.操作 -j SNAT DNAT MASQUERADE

 mangle的规则链:

 这个表有五个内建的链: PREROUTING,POSTROUTING, OUTPUT,INPUT和 FORWARD。

 PREROUTING在包进入防火墙之后、路由判断之前改变包,POSTROUTING是在所有路由判断之后.

 OUTPUT在确定包的目的之前更改数据包。

 INPUT在包被路由到本地之后,但在用户空间的程序看到它之前改变包

 注意,mangle表不能做任何 NAT,它只是改变数据包的TTL,TOS或MARK,而不是其源目的地址。NAT是在nat表中操作的,以下是mangle表中仅有的几种操作:-j TOS TTL MARK


2.3、预设规则的建立和清除过滤规则链:

    建立:   iptables -p  协议(INPUT | OUTPUT | FORWORT ) DROP | ACCEPT

    清除:   iptables -F  清除所有的过滤规则链

                 iptables -X   清除用户自定义的过滤规则链.




2.3、规则链的建立和删除

     建立: iptables  -A [INPUT| OUTPUT |FORWORD]在哪个里面增加规则链

     删除: iptables  -D [INPUT| OUTPUT |FORWORD]在哪个里面删除规则链

     建立规则链的常用参数 -p  协议类型  tcp

                                     -j 执行的操作  ACCEPT DROP

                                     -s 源IP/掩码

                                     -d 目的ip/掩码

                                     --sport  源端口号

                                     --dport 目的端口号 


 例如建立一条转发的规则链:

iptables -A FORWARD -s 0/0 -p tcp --dport 80 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp -d 218.18.103.114 --dport 80 -j DNAT --to 192.168.10.100:80

上面命令的意思是:
例如:
现网关的外网IP地址是218.18.103.114
内网的网段是192.168.10.0
内网中有一台WEB服务器,IP地址是:192.168.10.110
现要让别人通过外网可以直接通过访问到WEB服务器。操作方法:
在网关上执行上面两行命令,即可。
人家访问时只要在地址栏内输入:http://218.18.103.114/即可打开你内部的WEB服务器,而访问到你的网页。
其它服务器以此类推:
80是WEB服务器端口
21是FTP服务器端口
25为邮件服务器端口
22是SSH端口
27015是CS服务器端口