美文网首页
iptables简介1及常用命令

iptables简介1及常用命令

作者: marshalzxy | 来源:发表于2018-05-19 12:18 被阅读52次

    第一章:简述

    iptables是一个用户态工具,用于操作linux内核部分的netfilter模块(包过滤),用来完成防火墙相关的工作。linux的netfilter工作于2层(开启bridge-nf时刻)和3层(ip层),可以对ip包,二层数据链路包进行操作;而市面上还有一种防火墙是应用层防火墙,可以对应用层包进行检查(过滤)。所以linux iptables只能作为一个基础防火墙。

    作为用户态工具,iptables是firewalld和iptables(服务)的底层接口。

    图1-1

    iptables用户态工具包含了一下详细包:iptables——ip v4 包过滤

    ip6table——ip v6

    arptables——arp

    ebtables——ethnet包过滤,用于bridge

    同时iptables也可以作为linux netfilter内核模块的代称在内核里是x_tables实现,在linux3.13以后内核用nftables替代了x_tables实现。x_tables实现的包过滤,也被称为Xtables架构。

    1.1 基础概念

    在iptables里被提的最多的是“四表五链”这样一个概念。

    表(table):不同的表象征着不同的包处理的目的。例如我们有:filter、nat、mangle、raw 四个表,表示包过滤有如上所述四个目的。

    规则:是由管理员定义的包匹配规则,当包匹配发生以后,就执行规则定义的target。

    匹配(match):规则命中的条件。常规匹配、conntrack匹配,phydev匹配、addrtype匹配、state匹配等等。

    Target:就是包匹配以后执行的动作。常见的动作有:accept、drop、reject、snat、dnat、log、masqurade、log、return、queue。

    链(chain):指的是包过滤的锚点,也就是说包过滤在内核协议栈的哪些地方生效。链里保存有一系列的有先后次序决定优先级的规则。

    五链指的是:prerouting,forwarding,input,output 和postrouting这五个链。

    它们具体的位置如下图:

    图1-2

    图1-2 中input表示数据包被送给本地应用之前;output表示来自上层发送的报文。Prerouting 是在包进入协议栈以后第一个过滤点,forward是包被转发时候的过滤点,Postrouting是包被转发完毕或者包被output处理之后需要发送出去的时候的过滤点。IN表示送入到协议栈的包,OUT表示送出协议栈的包。这就是著名的“五链”。

    在图1-2中同时列出了四表在五链中的使用。

    对于接收自网络的包其iptable表链处理流程图如下(在没有brdige时刻)

    图1-3

    对于从本机发出去的数据包,流向是

    图1-4

    图1-4中的nat output用于处理防火墙自身发出的包

    2、iptables常用调试命令

    IPTables -t table-name -nL 显示某个表的所有链的信息

    IPTables -t table-name -nL -Z 显示某个表所有链信息的时刻将包计数器清零

    IPTables -t table-name -nL -v 显示某个表包计数器的情况。

    iptables -S 将iptables所有链全部打印出来,以iptables-save的格式打印

    相关文章

      网友评论

          本文标题:iptables简介1及常用命令

          本文链接:https://www.haomeiwen.com/subject/qlbodftx.html