IPtables命令格式与基本命令

Iptables 被分为两部分,一部分被称为核心空间, 另一部分成为用户空间, 在核心空间,iptables从底层实现了数据包过滤的各种功能, 比如NAT、状态监测以及高级数据包的匹用户空间,iptables为用户提供了控制核心空间工作状态的命令集。iptables是采用规则堆栈的方式来进行过滤,在数据报文出入主机时在TCP/IP协议栈对数据报文进行拦截并执行对应netfilter架构中防火墙的五个拦截点,称为hook function(钩子函数)。整个netfilter/iptables框架是由四个表和五个链构成。

下面介绍iptablesd的基本命令

iptables命令格式

iptables的基本语法格式使用iptables命令设置防火墙规则时,其基本的命令格式如下:

iptables [ -t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

其中,表名、链名用于指定iptables命令所操作的表和链,若未指定表名,将默认使用filter表;命令选项用于指定管理iptables规则的方式,如插入、增加、删除以及查看等;条件对符合什么样条件的数据包进行处理;目标动作或跳转用于知道数据包的处理方式,如允许通过、拒绝、丢弃或跳转(jump)给其他链进行处理等。

iptables [-t 表] -命令 匹配 [-j 操作]

一. 表

    iptables具有Filter, NAT, Mangle, Raw四种内建表:

    1. Filter表

    Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:

    INPUT链 – 处理来自外部的数据。

    OUTPUT链 – 处理向外发送的数据。

    FORWARD链 – 将数据转发到本机的其他网卡设备上。

    2. NAT表

        NAT表有三种内建链:

        PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),      通常用于DNAT(destination NAT)。

      POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于      SNAT(source NAT)。

        OUTPUT链 – 处理本机产生的数据包。

    3. Mangle表

    Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:

        PREROUTING

        OUTPUT

        FORWARD

        INPUT

        POSTROUTING

    4. Raw表

        Raw表用于处理异常,它具有2个内建链:

        PREROUTING chain

        OUTPUT chain

表名、链名用于指定iptables命令所操作的表和链,若未指定表名,将默认使用filter表;

二. 命令

    用于指定iptables的执行方式,包括插入规则,删除规则和添加规则

    P (policy) 定义默认策略L (list) 查看iptables规则列表

    A (append) 在规则列表的最后增加一条规则I (insert) 在指定位置插入

    D (delete) 在规定列表中删除

    R (replace) 替换规则列表中的某条规则

    F (flush) 删除表中所有规则(清空)

    Z(zero) 将表中数据包计数器和流量计数器归零

    X(delete-chain)删除自定义链

    n(numeric)使用数字形式显示输出结果

    v(verbose)查看规则表详细信息的信息。

    h(help)获取帮助

三、匹配规则

    指定数据包与规则匹配所具有的特征,包括源地址,目的地址,传输协议和端口号。(即指定包信息)

    i -in-inerface

    o out-interface

    p proto 协议类型

    s source 源IP地址或子网

    sport 源端口号

    dport 目的端口号

    m match匹配的模块

四、操作

    目标动作或用于跳转时指导数据包的处理方式,如允许通过、拒绝、丢弃或跳转(jump)给其他链进行处理等。

    ACCEPT 允许数据包通过

    DROP 直接丢弃数据包,不再对比其他规则,中断过滤程序。

    REJECT 阻拦数据包,并通知对方。



下面是几条例子语句:

1、 iptables -A INPUT -p tcp -j LOG --log-prefix "input packet"

    LOG 在/var/log/messages文件中记录日志信息,继续比对其它规则。

    即在日志中记录来客访问行为

2、 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081

    REDIRECT 将封包重新导向到另一个端口(PNAT),然后继续比对其它规则。这个功能可以用来作透明代理或保护web 服         务器。

    即可以使得外部网络只能知道对外说明的开放发端口号,而不知内部主机开发的真实端口号。

3 、iptables -t nay -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 192.168.10.1-10.0.8.68:2100-3200

    SNAT 改写封包来源 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将直接跳往下一个       规则链(mangle:postrouting)。

    即将内部网要出去的数据包更改IP范围与端口范围,例子,从内部网络经过防火墙出去时私有IP改为公有IP。

猜你喜欢

转载自blog.csdn.net/qq_38959715/article/details/79931826