1.iptables和netfilter说明

  [1]netfilter/iptables组成Linux平台下的包过滤防火墙,iptables是用户空间的管理工具,netfilter是内核空间的包处理框架。

2.数据包处理流程

  

  这个还是很简单的,首先数据包进入PREROUTING链,之后根据路由决策进入INPUT(本机)还是FORWARD(转发),进入INPUT后会继续进入OUTPUT链,最后都走到POSTROUTING链。

  另外,如果加入各种规则之后,则数据包进入某个链之后,还要顺序执行链上的规则,如果匹配某个规则,则根据匹配的规则来处理数据包(例如ACCEPT、DROP或者REJECT),如果都不匹配则使用默认的策略处理数据包。

3.表、链、规则

  理论上,只要在链上添加规则就可以了,这样每个链上就有一个规则链表,只要数据包到链上之后,顺序检查这些规则就可以了。实现中又根据规则的功能的不同,又分为了四张表,即raw、mangle、nat、filter(优先级raw > mangle > nat > filter)。最终,数据包依次进入链中进行处理,然后根据每个链上的表的优先级,依次执行每个链上的表(里面的规则)。关于表链的关系,其实这个很简单,实际使用时以表作为入口,就是根据规则的功能添加规则到特定的表中,然后再把这个规则放到链上,另外就是一个表上的规则只存在固定的几个链上,例如raw表的规则只能在PREROUTING和OUTPUT链。

  filter表   :负责包过滤功能

  nat表  :负责地址转换

  mangle表:修改数据包的TOS、TTL,和为数据包设置标记,用来实现Qos调整以及策略路由功能

  raw表  :主要用来关闭连接跟踪,即配置参数时使用-j NOTRACK

4.iptables工具用法

-t table          指定表名,默认为"filter"表

-A chain          向链上追加规则
-D chain 从链上删除规则
-L [chain] 列出链上的规则,这个打印的是规则列表,即把规则参数放到一个表格中
-S [chain] 打印链上的规则,这个打印的是规则的命令行参数,例如-A INPUT -s 127.0.0.1/ -d 127.0.0.1/ -j ACCEPT
-F [chain] 清除链上的规则
-P chain target 设置指定链的策略,也就是默认策略 -v verbose mode,用作输出命令,表示详细输出
-p proto 规则指定的协议,proto可以为tcp、udp、icmp、all。
-s address[/mask] 源地址[掩码]。
-d address[/mask] 目的地址[掩码]。
-i input name 匹配报文入接口
-o output name
-j target 规则匹配后跳转到的目标,也就是动作,因为在内核函数中,匹配某个条件后,使用goto的方式跳转到下一个流程,所以是jump target。
target可以为ACCEPT、DROP、REJECT、SNAT、DNAT、REDIRECT、NOTRACK、LOG 扩展匹配项:
--src-range from[-to] 匹配源IP的范围
--dst-range from[-to] 匹配目的IP的范围
--mark value[/mask] 匹配标记,而不是打标记,和匹配IP地址一样有掩码。 这些只是常用的选项,基本每条规则都要用到,主要的目的是实际用。

例子:

  [1]iptables -P INPUT DROP              //设置链的策略

  [2]iptables -A INPUT -i eth0 -s 10.0.1.1 -j DROP     //阻止某个IP地址

  [3]iptables -t mangle -A PREROUTING !-d 10.0.1.1 -p tcp -j TPROXY --on-port 10000 --on-ip 0.0.0.0 --tproxy-mark 0x1/0x1  //对非目的地址10.0.1.1,并且标记匹配0x1/0x1的报文,透明代理到0.0.0.0:10000地址

  

iptables和netfilter的更多相关文章

  1. 深入理解 iptables 和 netfilter 架构

    [译] 深入理解 iptables 和 netfilter 架构 Published at 2019-02-18 | Last Update 译者序 本文翻译自 2015 年的一篇英文博客 A Dee ...

  2. iptables介绍iptables和netfilter

    随着互联网技术的方兴未艾,各种网络应用层出不穷,网络攻击.黑客入侵也成了网民畅游互联网的心头大患,互联网安全也愈加受到了人们的重视.网络防火墙,作为一种简单高效的互联网防御手段,逐渐成为了网民畅游网络 ...

  3. IPTables 和 Netfilter 框架

    前言 防火墙是保护服务器的重要工具. Linux中最常用的基本防火墙软件是iptables.iptables通过与Linux内核网络堆栈(networking stack)中的包过滤钩子(packet ...

  4. iptables or netfilter

    netfilter 内部有三个表:filter .nat .mangle 每个表又有不同的操作链: 1.在filter这个防火墙功能的表中有三个chain:INPUT.FORWARD.OUTPUT. ...

  5. 编译内核启用iptables及netfilter

    在Network Packet Filtering Framework(Netfilter)一节中还有两个额外的配置节——Core Netfilter Configuration(核心Netfilte ...

  6. 【Linux 驱动】Netfilter/iptables (八) Netfilter的NAT机制

    NAT是Network Address Translation的缩写,意即"网络地址转换". 从本质上来说,是通过改动IP数据首部中的地址,以实现将一个地址转换成还有一个地址的技术 ...

  7. Netfilter/iptables防火墙

    http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...

  8. iptables/netfilter命令、实现及利用(转)

    原文链接:http://blog.csdn.net/sealyao/article/details/5934268 一.Netfilter和Iptables概述 netfilter/iptables ...

  9. netfilter/iptables 简介

    netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制.iptables 则是一个命令行工具,用来配置 netfilter 防火墙.下图展示了一个带有防火墙的简单网络 ...

随机推荐

  1. UpdatePanel 控件,客户端事件生命周期踩坑

    <script type="text/javascript" language="javascript"> Sys.WebForms.PageReq ...

  2. 基于webpack的react开发环境搭建新手教程

    最近学习react-webpack项目搭建,找到一篇我认为不错的博客,跟着学习了一番,写得很详细很好,本篇博客纯属记录总结,要看更详细的搭建过程及解析,请戳: 基于webpack的React项目搭建( ...

  3. 腾讯广告联盟 Android SDK(广点通)demo的使用方式

    1. 下载示例文件. 2. 解压之后的目录: 3. 使用android studio,选择import project,导入如图所示文件夹: 4. 重点来了,由于官方demo的上传时间很久远(大概是上 ...

  4. Calling Circles(UVa 247)(Floyd 算法)

    用Floyd算法求出传递闭包,然后用dfs求出每条连通分量.注意其中用到的几个小技巧: #include<cstdio> #include<iostream> #include ...

  5. ROS * 了解学习urdf的内容格式及编写

    <?xml version="1.0" ?> 声明文件使用xml描述 <robot name="robot_name">定义这是一个机器 ...

  6. ssm项目导入activiti依赖后jsp页面el表达式报错

    错误原因:Tomcat8.x与activiti6.0依赖冲突导致 解决方法: 1.修改tomcat版本 2.在pom.xml中修改 在依赖中把 <dependency> <group ...

  7. PYTHON之路,线程

    关于多任务的理解, 代码要执行,首先得变成机器认识的东西执行,那么需要解释器.那么执行按道理,一段程序在这里就具体来说一段代码的执行吧,我们知道代码的执行是从上至下按顺序执行,那么这里有条件分支结构, ...

  8. SpringCloud基于消息总线的配置中心

    @https://www.cnblogs.com/ityouknow/p/6931958.html Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点 ...

  9. DedeCms 数据库类使用实例说明 mysql.php

    //dedecms的数据库操作类说明,非常实用,在二次开发中尤其重要.//引入common.inc.php文件require_once (dirname(__FILE__) . "/incl ...

  10. MySQL Transaction--查看未提交事务执行的SQL

    未提交事务 长期未提交事务,指开启事务后,长时间未向MySQL发出SQL执行请求或事务处理(COMMIT/ROLLBACK)请求,在系统表`information_schema`.`INNODB_TR ...