参考文档

朱双印个人日志

netfilter/iptables架构

位置 钩子函数/规则链 说明
数据包刚刚进入网络层的位置 PREROUTING 在这里处理目标地址转换
经过路由判断,数据包从内核流入本机用户空间的位置 INPUT 在这里处理INPUT包过滤
数据包从本机用户空间进程发出的位置,后接路由判断出口的网络接口 OUTPUT 在这里处理OUTPUT包过滤
经过路由判断,数据包不进入本机用户空间,只是进行转发的位置 FORWARD 在这里处理FORWARD包过滤
数据包将通过网络接口出去的位置 POSTROUTING 在这里处理源地址转换

为了方便管理钩子函数(黄色模块链),iptables按照钩子函数实现的功能,将其分别存储于4张表中(蓝色模块),类似于编程中指向链表的指针数组,链表存在优先级顺序

功能 涉及链
Filter 数据包的过滤 INPUT、OUTPUT、FORWARD
NAT 网络地址的转换 PREROUTING(DNAT)、POSTROUTING(SNAT)
Mangle 修改数据包的原始数据,一般用于防火墙标记 PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
Raw 配置免除 PREROUTING、OUTPUT

iptables命令语法

# iptables [-t table] command [chain] [rules] [-j target]

规则查询

### 查询filter表规则
# iptables -t filter -L
### 查询filter表INPUT链规则
# iptables -t filter -L INPUT
### 查询filter表INPUT链详细规则
# iptables -t filter -vL INPUT
### 查询filter表INPUT链详细规则,并显示规则编号
# iptables -t filter --line-number -vL INPUT
### 查询filter表INPUT链规则以及默认规则
# iptables -t filter -nL INPUT ### 说明
pkts: 对应规则匹配到的报文个数
bytes: 对应规则匹配到的报文包的大小总和
target: 匹配到对应规则时的动作
prot: 表示规则对应的协议
opt: 表示规则对应的选项
in: 表示需要进行规则匹配的数据包流入的网卡
out: 表示需要进行规则匹配的数据包流出的网卡
source: 表示规则对应的源地址(IP/网段)
destination: 表示规则对应的目标地址(IP/网段)
policy:表示当前链的默认策略

iptable学习的更多相关文章

  1. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  2. LInux iptables学习

    作者原文 : http://blog.chinaunix.net/uid-9950859-id-98277.html       要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多 ...

  3. CentOS学习笔记--Tomcat安装

    Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...

  4. Web后端 JAVA学习之路

    1.Java分类 Java按应用来分,可以分为J2ME(手机版),J2SE(标准版),J2EE(企业版)三部分. ・J2ME:已经被安卓开发取代. ・J2SE:Java的核心类,其中包括桌面应用,但一 ...

  5. MTK 使用iptable 命令来完成网络路由(android WIFI/4G分享网络)

    很多时候,总有些奇怪的需求,这时候是发挥我们的聪明才智的时候!! 有客户的需求是: 公网 WIFI 4G/其他网络 以太网1 以太网2 内部设备 描述下需求:现今有一个控制设备,里面有WIFI,物联网 ...

  6. 大数据下基于Tensorflow框架的深度学习示例教程

    近几年,信息时代的快速发展产生了海量数据,诞生了无数前沿的大数据技术与应用.在当今大数据时代的产业界,商业决策日益基于数据的分析作出.当数据膨胀到一定规模时,基于机器学习对海量复杂数据的分析更能产生较 ...

  7. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  8. Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

    Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些 ...

  9. 学习RadonDB源码(一)

    1. 可能是开始也可能是结束 RadonDB是国内知名云服务提供商青云开源的一款产品,下面是一段来自官方的介绍: QingCloud RadonDB 是基于 MySQL 研发的新一代分布式关系型数据库 ...

随机推荐

  1. 如何获取 Greenplum 中用户最后登录时间和登录频率

    这几天搞系统迁移,老板突然想知道给客户开的那么多用户当中,哪些还在用,哪些已经不用了.我们的数据库是 Greenplum,而且还是一直没有升级的老版本,Google 了一下没有发现特别好的查看用户登录 ...

  2. 【模板】P3806点分治1

    [模板]P3806 [模板]点分治1 很好的一道模板题,很无脑经典. 讲讲淀粉质吧,很营养,实际上,点分治是树上的分治算法.根据树的特性,树上两点的路径只有一下两种情况: 路径经过根\((*)\) 路 ...

  3. python 创建一个实例:步骤二 添加行为方法,编写方法

    添加方法 class Person(): def __init__(self,name,job=None,pay=0): self.name= name self.job = job self.pay ...

  4. Zookeeper 伪分布式部署

    Zookeeper 可以通过配置不同的配置文件启动 部署环境:CentOS 6.7 Zookeeper 路径: /opt/htools/zookeeper-3.4.6 操作步骤: 1 复制三份zoo. ...

  5. memcache-session-manager(flexjson)

    MSM项目FlexJson序列化参考文档. 序号(步骤) 需求描述 jar包列表: spymemcached-2.11.1.jar memcached-session-manager-tc8-1.8. ...

  6. Machine Learning No.2: Linear Regression with Multiple Variables

    1. notation: n = number of features x(i) = input (features) of ith training example  = value of feat ...

  7. layer 插件 在子页面关闭自身的方法

    先取到该子页面在父级页面中的name 值 var  index= parent.layer.getFrameIndex(Window.name); 然后用该方法关闭 parent.layer.clos ...

  8. codeforces 660C C. Hard Process(二分)

    题目链接: C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standar ...

  9. 网络编程学习笔记-linux常用的网络命令

    网络参数设置命令 所有时刻如果你想要做好自己的网络参数设置,包括IP参数.路由参数和无线网络等,就得要了解下面这些相关的命令才行.其中Route及ip这两条命令是比较重要的.当然,比较早期的用法,我们 ...

  10. Multiple webcams on ZoneMinder

    Monitoring a 3D Printer I have tidied my new workshop and I am starting to play with 3d-printing aga ...