博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iptables简介1
阅读量:5897 次
发布时间:2019-06-19

本文共 1114 字,大约阅读时间需要 3 分钟。

第一章:简述

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

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

img_0da4050d69447487d0227dc9082c0f0c.png
图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这五个链。

它们具体的位置如下图:

img_410a6bd4e23459740292ece052d3936e.png
图1-2

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

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

转载地址:http://cxasx.baihongyu.com/

你可能感兴趣的文章
Python 的 with 语句
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Mybatis查询返回Map类型数据
查看>>
java的深拷贝与浅拷贝
查看>>
程序员如何提高工作效率
查看>>
promise
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>
==与equal的区别
查看>>
数据批量导入Oracle数据库
查看>>
调用lumisoft组件发邮件 不需要身份验证 不需要密码
查看>>
DW 正则
查看>>
清理(委托类型实例)事件处理(实例)的函数及Lambda表达式
查看>>
抓屏原理
查看>>
Gridview控件导出Excel之后图片无法显示
查看>>
FastJson
查看>>
UVA 10564 - Paths through the Hourglass (dp)
查看>>
ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
查看>>
Eclipse 常用快捷键
查看>>
INDEX--索引页上存放那些数据
查看>>
INDEX--关于索引的琐碎
查看>>