防火墙基本设置
防火墙系统是保护系统免受侵害的最基本的一种手段。Netfilter/iptables是linux系统提供的一个非常优秀的防火墙工具。
该文档内容主要将iptables作为主机防火墙的一些基本设置。
首先,普及一下iptables的基本内容
规则链是防火墙规则/策略的集合,默认iptables包括了5种规则链
INPUT处理入站的数据包
OUTPUT处理出站的数据包
FORWARD处理转发数据包
PREROUTING在进行路由选择前处理数据包
POSTROUTING在进行路由选择后处理数据包
Redhat enterprise linux 的规则表是规则链的集合,默认的规则表有4个
raw表确定是否对该数据包进行状态跟踪
mangle表为数据包设置标记
nat表修改数据包的源,目标ip或端口
filter表确定是否放行该数据包
我们主要学到的表是filter表和nat表
Iptables命令规则
Iptables [-t 表名 ]<命令>[链名][规则号][规则][-j 目标]
Iptables中未指明表名的情况下默认使用filter表
参数
-A在指定的链的末尾添加一条或多条规则
-D从指定的链中删除一条或多条规则。可以按照规则的序号进行删除,也可以删除满足匹配条件的规则
-R在指定的链中用新的规则置换掉某一规则号的旧规则
-I在指定的规则序号前插入一条或多条规则,如果没有指定规则号,则默认1
-L列出指定链中的所有规则,如果没有指定链,则所有链中的规则都将列出来
-F删除指定链中的所有规则,如果没有指定,则所有链中的规则都将列出
-N建立一个新的用户自定义链
-X删除指定的用户自定义链
-p指定上一层协议
-s指定源ip地址或子网
-d指定目的ip或子网
-i指定数据包进入的网络接口名称
-o指定数据包出去的网络接口名称
实验需求:vmwareworkstation,rhel4
查看filter表中的规则
清空所有规则,在此查看filter表
删除用户自定义链
因为规则链中默认的处理入站数据包为ACCEPT,我们试着在客户端上访问该服务器上的web服务
现在,我们试着把默认的规则链修改为DROP,再进行访问
所以INPUT链阻止了客户端的访问
那么,有什么方法让你的客户端ip地址进行访问呢?答案是有的
添加规则
查看filter表
我们再一次在客户端测试是否可以访问web服务
答案是可以的
添加新规则
修改新添加的规则
我们可以看到上面的规则中一个是ACCEPT,一个是DROP,当客户端访问时应遵循哪一条规则呢?
因为匹配的两条规则,前面的是放行的,所以后面的规则就不起作用啦
在服务器上开启ftp服务,并且让客户端可以访问
添加规则
客户端访问
添加开启ftp20号端口的规则
又或者是先开启21端口可通过的规则链后,加入以下规则
iptables –A INPUT –p tcp –m state –state ESTABLISHED,RELAATED–j ACCEPT
转载于:https://blog.51cto.com/jimhom/1212748