iptables/netfiles基本使用

一、iptables简介:
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。

首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。如下图所示。
iptables/netfiles基本使用
二、iptables的表与链关系
1、iptables由4表5链组成具体如下
四表:
filter: mangle: nat: raw:关闭在nat表中启用的连接追踪机制

五链: PREROUTING: INTPUT: FORWRAD:OUTPUT:POSTROUTING
2、表与链的关系
filter:Filter表示iptables的默认表,如果没有自定义表,默认使用filter表,它具有以下三种内建链:功能:主要实现过滤功能
INPUT:处理来自外部与本机进程的报文
OUTPUT :处理本机产生的报文
FOWARD:将数据通过本机转发至本机其他网卡或其他网络的数据
mangele:具有所有内置链,功能:拆解报文,按需修改
PREROUTING:
INTPUT
FORWRAD
OUTPUT
POSTROUTING
nat:实现网络地址转换功能
PEROUTING,处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址通常用于DNAT(destination NAT)。
OUTPUT.处理本机产生的报文
POSROUTING:处理马上离开本机之前的报文,会转换数据包中的源Ip地址通常用户SNAT

raw:关闭在nat表中启用的连接追踪机制
PREOUTING,
OUTPUT
三、iptables规则
1、组成和标准
根据规则的匹配条件尝试匹配报文,对匹配成功的报文根据规则定义的处理动作
Rules包括一个条件和一个目标(target)
如果满足条件,就执行目标(target)中的规则或者特定值。
如果不满足条件,就判断下一条Rules。
2、基本处理动作:
ACCEPT :允许防火墙接收数据包
DROP :防火墙丢弃包
QUEUE : 防火墙将数据包移交到用户空间
RETURN :防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。
3、主要参数:
iptables/netfiles基本使用
4、匹配条件
匹配条件主要有基本匹配和扩展匹配
1、基本匹配
[!] -s, :源地址匹配
[!] -d, :目标地址匹配
[!] -p {tcp|udp|icmp}:限制协议:
禁止所有主机ping本机

iptables/netfiles基本使用 // 禁止所有主机ping测本机,源和目标不指定即为所有IP
查看所有规则的具体信息

iptables/netfiles基本使用
扩展匹配可以分两大类:
隐式扩展:可以不用使用-m选项,前面是使用-p匹配任何协议
显示扩展:必须有-m选项专门加载相应的模块
隐式扩展匹配条件
[!]--sport:源端口
[!]--dport:目标端口
[!]--tcp-fiags mask comp:检查报文中mask指明的tcp标志,而这些标志位comp必须唯1
mask:sys,fin,ack,rst
禁止指定主机访问本机的SSH服务
iptables/netfiles基本使用
iptables/netfiles基本使用
显示扩展匹配条件:
multiport:多端口匹配

   iprange:指明一段连续的ip地址范围做为源地址或目标地址匹配
                          [!]--src-range from[-to]:源地址范围
                          [!]--dst-range from[-to]:目标地址范围

指定特有的主机可以访问本机的80和22端口:
iptables/netfiles基本使用
time:根据收到报文的时间/日期与指定的时间/日期范围进行匹配
--datestart YYY:MM-DD THH:mm ss 起始日期时间
--datestop YYY:MM-DD THH:mm ss 结束日期时间
--timestart hh:mm[:ss]:起始时间
--timestart hh:mm[:ss]:结束时间
--monthdays day [,day..]:匹配一个月中的哪些天
--weekdays day [,day..]:匹配一个周中的哪些天

connlimit:根据客户端主机并作出并发连接限制,即每客户端同时发起连接数限制
--connlimlt-upto n :连接数量小于等于n则匹配
--connlimlt-above n : 连接数量大于n则匹配;
拒绝周一到周五所有主机禁止访问本机的web服务
iptables/netfiles基本使用

拒绝连接超过2次的主机再次访问
iptables/netfiles基本使用
state:用于对报文的状态做连接追踪(可以优化防火墙规则,但超过记录的最大值所有连接就会超时,不适合访问量大的服务器开启,比如负载均衡服务器等)
--state state
INVALID:无法识别的连接
ESTABLISHED:连接追踪模板当中存在记录的连接
NEW:连接追踪模板当中不存的连接请求 (新的请求)
RELATED:连接追踪模板当中存在相关联的连接
UNTRACKED:未追踪的连接
允许其他主机访问80端口

iptables/netfiles基本使用
5、NAT地址转换
NAT只要有两个动作,且NAT表一般只应用在PERROUTING,POSTROUTING链上面
SNAT:源地址转换
DNAT:目标地址转换
将192168.153网段的IP地址进行转换以及进行80端口进行映射

iptables/netfiles基本使用
6、如何存储防火墙策略
iptables 规则是写入内核中,一单重启就会失效因此需要对规则进行保持
保存规则: iptables-save>/PATH/TO/SOME_RULE_FILE
加载规则: iptables-restore < /PATH/FROM/SOME_RULE_FILE
也可以开机自动加载
进入 /etc/rc.d/rc.local 中写入加载命令即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章