iptables防火墙理论(附四表五链)

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。如:思科ASA 华为防火墙 天融信防火墙 等。
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。如:iptables firewall(CentOS7独有的)等。

一:iptables包过滤的概述

1.1:netfilter

位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”

1.2:iptanbles

位与/usr/sbin/iptables,用来管理防火墙规则的工具

称为Linux防火墙的 “用户态”

-------上述2种称呼都可以表示Linux防火墙

1:防火墙关联端口----服务  端口开相应的服务就开

2:基于IP----源IP、目标IP

3:协议----TCP、UDP、ICMP

极少数会过滤MAC(局域网)

1.3:包过滤的工作层次

主要是网络层、针对IP数据包

体现在对包内的IP地址、端口等信息的处理上
在这里插入图片描述

二:iptables的四表、五链结构

  • 四表:filter、nat、managle、raw,默认是filter表。表的处理优先级:raw>managle>nat>filter
英文中文
filter过滤数据包
nat网络地址转换(端口映射、地址映射等。)
mangle用于对特定数据报的修改。
raw优先级最高,设置raw时一般是为了不再让iptables做数据报的链接跟踪处理,提高性能。
  • 五链:PREROUTING 、INPUT、FORWARD、OUTPUT、POSTROUTING
英文中文
PREROUTING数据包进入路由表之前,对数据包做路由选择前应用此链路中的规则,所有的数据包进来的时候都先由这个链处理
INPUT通过路由表后目的为本机,进来的数据报应用此规则链上的策略
FORWARD通过路由表后,目标地址不为本机,做转发数据报时应用此规则链上的策略
OUTPUT由本机产生的外出的数据包向外转发时,应用此规则链中的策略
POSTROUTING数据报做路由选择后发送后到网卡接口之前应用此链中的规则,所有的数据包出来的时候都先由这个链处理
  • 表与链之间的包含关系:
filter
nat
mangle
raw

在这里插入图片描述

三:数据包过滤的匹配流程

3.1:规则表之间的顺序

raw→mangle→nat >filter

3.2:规则链之间的顺序

入站: PREROUTING→INPUT
出站: OUTPUT→POSTROUTING
转发: PREROUTING>FORWARD→POSTROUTING

五链顺序:PREROUTING— > INPUT— – > FORWARD- - - - >OUTPUT---- >POSTROUT ING

3.3:规则链内的匹配顺序

按顺序依次检查,匹配即停止(LOG策略例外)
若找不到相匹配的规则,则按该链的默认策略处理
在这里插入图片描述
规则链之间的优先顺序(分三种情况):

第一种情况:入站数据流向

从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(比如Apache/Nginx服务器)进行响应。

第二种情况:转发数据流向

来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

第三种情况:出站数据流向

来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

第三种情况:出站数据流向

防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,

二. iptables命令常用方法

iptables [-p table] 链管理 chain
-t table : filter,nat,mangle,raw (默认为 filter)

链管理

命令作用
-F清空规则链
-N创建新的自定义规则链
-Xdrop 删除用户自定义的规则链
-PPolicy 为指定链设置默认策略;iptables -t filter -P FORWARD DROP
-E重命令自定义链

规则管理i

命令作用
-A将新规则添加到指定的链上
-I将新规则插入到指定的位置
-D删除链上的指定规则
-R替代指定链上的规则

查看:

命令作用
-L列表,列出指定链上的指定的规则

-n -v –line-numbers -x 等参数
匹配条件:
基本匹配:

命令作用
-s原地址IP
-d目的IP
-p协议{tcp
-i数据报文的流入接口
-o数据报文的流出接口
扩展匹配-m match_name
–dport PORT目标端口,可以是单个端口
–sport PORT源端口
-pudp
–icmp-type
0echo-reply
8echo-request

目标:

命令作用
-j TARGETjump至指定的TARGET
TACCEPT 接受
DROP丢弃
REJECT拒绝访问
RETURN返回调用链
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值