iptables和netfilter
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的更多相关文章
- 深入理解 iptables 和 netfilter 架构
[译] 深入理解 iptables 和 netfilter 架构 Published at 2019-02-18 | Last Update 译者序 本文翻译自 2015 年的一篇英文博客 A Dee ...
- iptables介绍iptables和netfilter
随着互联网技术的方兴未艾,各种网络应用层出不穷,网络攻击.黑客入侵也成了网民畅游互联网的心头大患,互联网安全也愈加受到了人们的重视.网络防火墙,作为一种简单高效的互联网防御手段,逐渐成为了网民畅游网络 ...
- IPTables 和 Netfilter 框架
前言 防火墙是保护服务器的重要工具. Linux中最常用的基本防火墙软件是iptables.iptables通过与Linux内核网络堆栈(networking stack)中的包过滤钩子(packet ...
- iptables or netfilter
netfilter 内部有三个表:filter .nat .mangle 每个表又有不同的操作链: 1.在filter这个防火墙功能的表中有三个chain:INPUT.FORWARD.OUTPUT. ...
- 编译内核启用iptables及netfilter
在Network Packet Filtering Framework(Netfilter)一节中还有两个额外的配置节——Core Netfilter Configuration(核心Netfilte ...
- 【Linux 驱动】Netfilter/iptables (八) Netfilter的NAT机制
NAT是Network Address Translation的缩写,意即"网络地址转换". 从本质上来说,是通过改动IP数据首部中的地址,以实现将一个地址转换成还有一个地址的技术 ...
- Netfilter/iptables防火墙
http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...
- iptables/netfilter命令、实现及利用(转)
原文链接:http://blog.csdn.net/sealyao/article/details/5934268 一.Netfilter和Iptables概述 netfilter/iptables ...
- netfilter/iptables 简介
netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制.iptables 则是一个命令行工具,用来配置 netfilter 防火墙.下图展示了一个带有防火墙的简单网络 ...
随机推荐
- UpdatePanel 控件,客户端事件生命周期踩坑
<script type="text/javascript" language="javascript"> Sys.WebForms.PageReq ...
- 基于webpack的react开发环境搭建新手教程
最近学习react-webpack项目搭建,找到一篇我认为不错的博客,跟着学习了一番,写得很详细很好,本篇博客纯属记录总结,要看更详细的搭建过程及解析,请戳: 基于webpack的React项目搭建( ...
- 腾讯广告联盟 Android SDK(广点通)demo的使用方式
1. 下载示例文件. 2. 解压之后的目录: 3. 使用android studio,选择import project,导入如图所示文件夹: 4. 重点来了,由于官方demo的上传时间很久远(大概是上 ...
- Calling Circles(UVa 247)(Floyd 算法)
用Floyd算法求出传递闭包,然后用dfs求出每条连通分量.注意其中用到的几个小技巧: #include<cstdio> #include<iostream> #include ...
- ROS * 了解学习urdf的内容格式及编写
<?xml version="1.0" ?> 声明文件使用xml描述 <robot name="robot_name">定义这是一个机器 ...
- ssm项目导入activiti依赖后jsp页面el表达式报错
错误原因:Tomcat8.x与activiti6.0依赖冲突导致 解决方法: 1.修改tomcat版本 2.在pom.xml中修改 在依赖中把 <dependency> <group ...
- PYTHON之路,线程
关于多任务的理解, 代码要执行,首先得变成机器认识的东西执行,那么需要解释器.那么执行按道理,一段程序在这里就具体来说一段代码的执行吧,我们知道代码的执行是从上至下按顺序执行,那么这里有条件分支结构, ...
- SpringCloud基于消息总线的配置中心
@https://www.cnblogs.com/ityouknow/p/6931958.html Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点 ...
- DedeCms 数据库类使用实例说明 mysql.php
//dedecms的数据库操作类说明,非常实用,在二次开发中尤其重要.//引入common.inc.php文件require_once (dirname(__FILE__) . "/incl ...
- MySQL Transaction--查看未提交事务执行的SQL
未提交事务 长期未提交事务,指开启事务后,长时间未向MySQL发出SQL执行请求或事务处理(COMMIT/ROLLBACK)请求,在系统表`information_schema`.`INNODB_TR ...