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服务器端口