美文网首页
Iptables 详解

Iptables 详解

作者: android_赵乐玮 | 来源:发表于2019-01-19 20:23 被阅读0次

一、Iptables说明

1.0 概述

netfilter/iptables :

IP信息包过滤系统,实际上是由两个组件netfilter和iptables组成

netfilter/iptables 关系:

netfilter组件也称内核空间,是内核的一部分,由一些包过滤表组成的规则集来对信息包进行过滤处理.

iptables组件称为用户空间, 它是一种可以通过插入、修改、删除包过滤表中的规则的一种工具。配置完成后立即生效,内置了filter、nat、mangle三张表。

iptables 三张表

filter: 负责过滤数据包,影响的规则链:input, output,forword
nat: 负责网络地址的转换,影响的规则链:prerouting, postrouting, output
mangle: 负责修改数据包内容,可以用来做流量整形、数据包标识等。影响的规则链:input, output,forword, prerouting, postrouting

raw 用于处理异常,包括的规则链: prerouting, output, 一般用不到。

iptables 五个链

input: 处理数据包目标地址是本机的规则
output: 处理本机发送的数据包,即包源地址是本机的规则
forward: 匹配流经过本机的数据包
prerouting: 用来修改目标地址,用来做DNAT(网络地址转换)例:端口映射
postrouting: 用来修改源地址,用来做SNAT(源地址转换)例:内网通过路由器NAT实现内网多个PC公用一个公网IP地址进行上网。

1.1 数据过滤流程

二、Iptables语法

语法结构:

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 动作]

[-t 表名]:默认为filter表
[链名]: 默认所有链
[匹配条件]: 如需要所有ip生效可不填写或填入:0:0:0:0/0

Iptables-cmd.png

管理选项

-A  在指定链的末尾添加(append)一条新的规则
-I  在指定链中插入(insert)一条新的规则,默认在第一行添加
-D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
    需要确保链中的存在这条规则,否则报错
-R  替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-E  重命名用户定义的链,不改变链本身
-F  清空(flush),不影响-P默认规则
-N  新建(new-chain)一条用户自己定义的规则链
-X  删除指定表中用户自定义的规则链(delete-chain)
-P  设置指定链的默认策略(policy)
    iptables -P INPUT DROP  ==>修改默认规则为DROP
-Z 将所有表的所有链的字节和数据包计数器清零
-[vn]L  列出(list)指定链中所有的规则进行查看,输出样式可追加:
    -n  使用数字形式(numeric)显示输出结果
    -v  查看规则表详细信息(verbose)的信息
    例:iptables -nvL

匹配条件

1.按网络接口匹配

  1. -i eth0
    匹配是否从网络接口eth0进来
  2. -o eth0
    匹配是否往网络接口eth0流出
  3. -s <ip>
    匹配是来自<ip>的数据 ip: 来源地址
  4. -d <ip>
    匹配目的地址

2.按网络协议匹配

  1. -p [tcp|udp|icmp]
    匹配网络协议

3.按源端口匹配

  1. --sport <源端口号> 注: 可以是端口,也可是范围
    例: --sport 1000 匹配源端口是1000的数据包
    --sport 1000:3000 匹配源端口是1000~3000的数据包(含1000,3000)
  2. --dport <目的端口号>

动作

  • ACCEPT 允许数据包通过
  • DROP 直接丢弃数据包,不给任何回应信息
  • REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
  • MASQUERADE 伪装一个公网IP
  • SNAT 源地址转换
  • 例: iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT 1.1.1.1 => 将内网ip转换成公网ip(路由器原理)
  • LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

附加模块 -m

  1. 按包状态匹配 : -m mac --mac-source <mac地址>
  2. 按来源mac地址匹配
  3. 按包速率: -m limit --limit <速率>
  4. 多端口匹配: -p tcp -m multiport --dport <ip1>,<ip2>,<ip3> 必须与-p一起使用

相关文章

  • iptables

    iptables详解 iptables简介 netfilter/iptables(简称为iptables)组成Li...

  • iptables 安全

    注解;来自某位大神的详解,做个笔记。 iptables防火墙简介 Netfilter/Iptables(以下简称I...

  • linux中iptables 和路由配置

    route 配置 添加和删除例如 添加和删除默认路由 iptables 配置 iptables 配置详解 删除ip...

  • iptables 详解

    和window系统的防火墙一样,Linux也是有防火墙的。 如果你搜索【Linux防火墙】: 就会发现,大家都在教...

  • iptables详解

    iptables俗称防火墙,或许我们已经不在陌生,但是作为openstack基础,这里还是对其做一些补充,了解更多...

  • iptables详解

    netfilter 内核中的防火墙框架,承载并生效规则;4表5链; netfilter功能:。 filter 包过...

  • iptables详解

    一:前言 二:iptables 的历史以及工作原理 1.iptables的发展: 2.iptables的工作机制 ...

  • iptables详解

    (本文源于转载或摘抄整理) 一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的...

  • Iptables 详解

    一、Iptables说明 1.0 概述 netfilter/iptables : netfilter/iptabl...

  • iptables详解

    iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防...

网友评论

      本文标题:Iptables 详解

      本文链接:https://www.haomeiwen.com/subject/wdasattx.html