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 防火墙.下图展示了一个带有防火墙的简单网络 ...
随机推荐
- 利用python执行shell脚本 并动态传参 及subprocess基本使用
最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 su ...
- office2013 Word 缺少校对工具,按提示下载、安装了文件还是不成功的解决方案
找到你的office安装源iso镜像加载 ——点开镜像双击setup.exe ——选择添加或删除功能 ——下一步——其他的不要动,展开office共享功能项 ——找到校对工具点出下拉项(点朝下的黑色箭 ...
- Golang微服务:Micro介绍
官方文档地址 https://micro.mu/docs/index.html Tookit API HTTP接入网关.反向代理或将HTTP转为RPC请求调用后端服务 Web 一个web应用程序,默认 ...
- 论文笔记——An online EEG-based brain-computer interface for controlling hand grasp using an adaptive probabilistic neural network(10年被引用66次)
题目:利用自适应概率网络设计一种在线脑机接口楼方法控制手部抓握 概要:这篇文章提出了一种新的脑机接口方法,控制手部,系列手部抓握动作和张开在虚拟现实环境中.这篇文章希望在现实生活中利用脑机接口技术控制 ...
- Python3.7和数据库MySQL 8.0.12 绿色解压 安装教程(一)
首先要安装MySQL 数据库才可以继续安装图形工具SQLyog 第一步:下载解压包>> MYSQL官网地址:https://dev.mysql.com/downloads/file/?id ...
- 【Effective Java读书笔记】创建和销毁对象(一):考虑使用静态工厂方法代替构造器
类可以提供一个静态方法,返回类的一个静态实例,如Boolean包装类的一个获取实例的静态方法 public static Boolean valueOf(boolean b) { return (b ...
- 你好git
在老师的推荐下,这次我第一次打开了github,作为一个菜鸟,对于这些功能还是有些新奇的,所以也摸索了很久. GIthub是一个基于git的社会代码分享社区,可以建立公开的,免费的分享代码,也可以关注 ...
- 走过的easyui的坑--datagrid的reload在IE下未刷新
至于为什么要进easyui这个坑,就不多说了. 我现在使用的是1.5这个版本,在用它做一个后台管理系统,项目做到一半,才想起记录这些坑. 1.对于datagrid在reload.load在IE下未刷新 ...
- 兄弟连学python---网络简介
网络简介 1.什么是网络 网络是辅助双方能够连接在一起的工具 使用网络的目的 为了联通多方然后进行通讯,能够让软件在不同的电脑上运行,相互传输数据 网络的发展 网络协议 什么是协议 约定俗成的,没有理 ...
- PTA——字符串逆序
PTA 7-59 字符串逆序 #include<stdio.h> #include<string.h> #define N 81 int main() { int i; cha ...