精华内容
下载资源
问答
  • IPTABLE

    2017-08-19 16:10:09
    iptable

    1.iptable 的基本用法
    yum install iptable-server
    这里写图片描述

    不做解析
    这里写图片描述

    -F 清空策略,但如果不保存,任存在
    这里写图片描述

    还在此文件中
    这里写图片描述

    这里写图片描述

    -nL ##默认是filter表的,-t 看其他表的策略
    这里写图片描述

    修改默认为DROP
    这里写图片描述

    -A##添加(默认到最后)
    -s ###匹配ip号(若没有,即匹配所有)
    这里写图片描述

    -I ###指定插入第几条
    这里写图片描述

    -R ###修改
    这里写图片描述
    -D##删除策略
    -N ##创建新的表
    iptable -N westos
    -E##更改表名
    -X ###删除表

    iptable -A INPUT -m state –state NEW –dport 80 -p tcp -j ACCEPT##匹配NEW状态的80端口

    SNAT:地址伪装,从eth0出去的数据包全部伪装成172.25.254.107
    服务端ip为eth0 172.25.254.107
    eth1 172.25.7.100
    这里写图片描述

    客户端ip172.25.254.200,网关如下
    这里写图片描述

    服务端内核路由功能打开
    这里写图片描述

    这里写图片描述

    此时若用客户端连接任一台机子,比如例子中是连接了172.25.254.7
    在172.25.254.7显示登陆的172.25.254.107.而不是连接它的172.25.7.200
    这里写图片描述

    DNAT
    目标地址转换
    这里写图片描述

    这里写图片描述

    展开全文
  • Iptable

    2021-03-23 13:09:48
    1.iptable介绍 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具 iptables是基于内核的防火墙,功能非常强大,基于数据包的过滤!特别是可以在一台...

    1.iptable介绍

    • Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具
    • iptables是基于内核的防火墙,功能非常强大,基于数据包的过滤!特别是可以在一台非常低的硬件配置下跑的非常好
    • iptables主要工作在OSI七层的2.3.4层。七层的控制可以使用squid代理+iptables。
    • iptabes:生产中根据具体情况,一般,内网关闭,外网打开。大并发的情况不能开iptables,影响性能(消耗cpu)。

    2.iptables传输数据包的过程

    在这里插入图片描述
    在这里插入图片描述

    • ① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。

    • 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
    • ③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

    3.四表五链

    优先顺序:Raw——mangle——nat——filter
    iptables名词和术语

    • Netfilter/iptables

    其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

    表(tables)

    表(tables)是链的容器,即所有的链(chains)都属于其对应的表(tables)

    • Filter

    (默认表,真正负责主机防火墙功能的)
    作用:实现防火墙数据过滤功能
    内核模块:iptables_filter
    其所属链
    INPUT链
    作用

    • 负责过滤所有目标是本机地址的数据包 通俗来说:就是过滤进入主机的数据包
    • 对于指定到本地套接字的包,即到达本地防火墙服务器的数据包。 FORWARD链:

    作用

    • 负责转发流经主机的数据包。起到转发的作用,和NAT关系很大。 LVS NAT 模式,net.ipv4.ip_forward=0
    • 路由穿过的数据包,即经过本地防火墙服务器的数据包。

    OUTPUT链:
    作用:
    处理所有源地址是本机地址的数据包 通俗的讲:就是处理从主机发出的数据包

    NAT:

    作用
    负责网络地址转换的,即来源与目的的IP地址和port的转换。
    所属其的链
    FREROUTING链
    在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口等
    OUTPUT链
    和主机放出去的数据包有关,改变主机发出数据包的目的地址。
    POSTROUTING链:
    在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。
    例如。默认笔记本和虚拟机都是局域网地址,在出网的时候被路由器将源地址改为公网地址。
    应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换相关。
    工作场景
    用于企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)
    做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,FTP服务(PREROUTING)
    WEB,单个端口的映射,直接映射80端口(PREROUTING)
    Mangle
    作用:

    • 数据包重构和修改(给数据打标记,做标记)
    • 主要用于修改数据包的 ToS ( Type of Service ,服务类型)、TTL (Time toLive
      ,生存周期)以及为数据包设置 Mark 标记,以实现 QoS(Quality of Service ,服务质量)调整以及策略路由等应用

    raw :数据跟踪处理
    对地址的转换
    在这里插入图片描述

    4.防火墙处理数据包的四种方式

    • ACCEPT 允许数据包通过
    • DROP 直接丢弃数据包,不给任何回应信息
    • REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
    • LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

    5.iptables命令的语法格式

    注意事项

    • 不指定表名时,默认表示filter表
    • 不指定链名时,默认表示该表内所有链
    • 除非设置规则链的缺省策略,否则需要指定匹配条件

    iptables命令使用方法
    iptables -t [ 要操作的表] <操作命令> [要操作的链] [规则号码] [匹配条件] [-j 匹配到以后的动作](ACCEPT运行接收该数据包,REJECT拒绝,DROP丢弃)

    • iptables -I INPUT -p icmp -j ACCEPT
    • iptables -D INPUT 3 #删除第三行
    • iptables -I INPUT -s IP -p tcp --dport 22 -j REJECT 禁止这个源IP ssh 本主机的端口
    • service iptables save 保存
    • systemctl restart iptables 重启(如果不保存重启之后规则就不在了)

    操作命令

    • -A 在链的末尾追加规则
    • -I num 插入,把当前规则插入为第几条(默认是 在开头)
    • -D num 删除,明确指定删除第几条规则
    • -P 设置默认策略的
    • -F 清空所有规则
    • -L:列出一个链或所有链中的规则信息
    • -n:以数字形式显示地址、端口信息
    • -v:更详细的方式显示规则信息
    • -t :指定表名

    查看命令

    • -[vnx]L
    • -L 列出规则
    • -n 以数字格式显示ip和port,需要配合-L选项使用
    • -v 显示信息,以详细信息显示

    防火墙状态机制配置
    状态集简单说明:

    • NEW:表示新建立连接的数据包状态
    • ESTABLISHED:表示新建立连接数据包发送之后,回复响应的数据包状态
    • RELATED 表示借助已经建立的链路,发送新的连接数据包
    • INVALID 无效无法识别的数据包

    6.Iptable工作流程

    • 1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
    • 2.如果匹配上了规则,既明确表明是阻止还是通过,此时数据包就不再向下匹配新规则了。
    • 3.如果所有规则中没有明确表明是阻止还是让这个数据包通过,也就是没有匹配上规则,则向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
    • 4.防火墙的默认规则则是对应链的所有的规则执行完以后才会执行的(最后的执行的规则)

    7.一个数据包经过的路径可能性

    • 1.本机收到目的IP说本机的数据包:

    PRE_ROUTING -> IN

    • 2.收到的目的IP不是本机的数据包:

    PRE_ROUTING ->FORWARD–>POST_ROUTING

    • 3.本地发出去的数据包

    OUT–>ROUTING

    展开全文
  • iptable

    2019-01-11 11:02:31
    IPtables分为2部分,一部分位于内核中,用来存放规则,称为NetFilter。还有一段在用户空间中,用来定义规则,并将规则传递到内核中,这段在用户空间中的程序就...1 iptable命令 iptable的整体命令规则如下: 所有...

    IPtables分为2部分,一部分位于内核中,用来存放规则,称为NetFilter。还有一段在用户空间中,用来定义规则,并将规则传递到内核中,这段在用户空间中的程序就叫做iptables。
    所以对于用户空间来说,就是按照需要生成一条条规则,然后向内核中提交,存放到NetFilter,让这些规则在数据传输与处理的过程中起作用。

    1 iptable命令

    iptable的整体命令规则如下:

    在这里插入图片描述

    • 所有表名必须小写
      filter/nat/mangle
    • 所有链名必须大写
      INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
    • 所有匹配必须小写
      -s/-d/-m <module_name>/-p
    • 所有动作必须大写
      ACCEPT/DROP/SNAT/DNAT/MASQUERADE

    1.1 表的介绍

    • filter

    主要用来过滤数据包,在这里根据包的内容与规则匹配,然后对包做DROP或ACCEPT等操作,大部分的target都可以在这儿使用。
    默认的标准链有三条,分别是INPUT、FORWARD、OUTPUT,其他链(如br0_in、common)是根据需求新创建的。

    • nat( Network Address Translation )

    主要用于网络地址转换,做过NAT操作的数据包,地址将会根据设定的规则被改变。

    • mangle

    通过修改IP报头中的服务类型TOS,以获得更好的传输服务可以设为:最小时延、最大吞吐量、最高可靠性和最小费用 。

    • raw

    只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了。RAW表可以应用在那些不需要做nat的情况下,以提高性能。

    1.2 默认规则链的介绍

    • PREROUTING:对数据包进行路由选择前(nat表中,DNAT)
    • INPUT:路由选择之后,发现数据包目的地址是本机,入站时(filter表中)
    • FORWARD:路由选择之后接收到需要通过防火墙发送给其它主机(转发时)(filter表)
    • POSTROUTING:对数据包进行路由选择后,数据包到路由器进行路由判断之后经过的链(nat表,SNAT)
    • OUTPUT:出站时(nat,filter表)

    1.3 iptables对数据包的处理流程

    在这里插入图片描述

    • 数据包进入系统,经过IP校验后经过PREROUTING链中的Mangle和Nat的处理;
    • kernel根据路由表决定包的目的地址,决定该数据包需要转发还是发给本机;
    • 如果该数据包是发给本机的,则经过INPUT链的Mangle和Filter处理后再传递给上层协议;如果需要转发,则发给FORWARD链的Mangle和Filter进行处理;
    • 本机网络层以上各层产生的数据包通过OUTPUT链的Mangle、Nat、Filter处理后,再进行路由选择;
    • 所有需要发送到网络中的数据包,都必须经过POSTROUTING链的Mangle和Nat进行处理。

    1.4 iptables匹配条件

    在这里插入图片描述

    1.5 iptables主要有以下动作:

    • ACCEPT:接收数据包
    • DROP:丢弃数据包
    • REJECT:丢弃数据包并返回一个错误包
    • SNAT:做源地址转化
    • DNAT:做目的地址转化
    • MASQUERADE:地址伪装,用于动态IP
    • LOG:将这条匹配消息保存到系统日志中
    • REDIRECT:在防火墙所在的机子内部转发包或流到另一个端口
    • 用户自定义的链名(net2all):跳转到这条链下,进行匹配

    2 具体应用

    1.打开linux转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward

    2.1 限速

    注意:限速的包跟iptable的单位是不一样的,2/3

    如max_speed:100kb/s,则为100*2/3=66

    iptables -I FORWARD -s 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -m limit --limit 66/s --limit-burst 66 -j ACCEPT
    iptables -I FORWARD -s 192.168.1.0/24 -m limit --limit 66/s --limit-burst 66 -j ACCEPT
    

    如原本已经有了限速规则,要设置新的规则,则需要把原先的规则删除,再添加新的规则

    原本max_speed:100kb/s,要设置max_speed:300kb/s;成则为300*2/3=200

    iptables -D FORWARD -d 192.168.1.0/24 -m limit --limit 66/s --limit-burst 66 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -m limit --limit 66/s --limit-burst 66 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -j DROP
    iptables -D FORWARD -d 192.168.1.0/24 -j DROP
    
    iptables -I FORWARD -s 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -m limit --limit 200/s --limit-burst 200 -j ACCEPT
    iptables -I FORWARD -s 192.168.1.0/24 -m limit --limit 200/s --limit-burst 200 -j ACCEPT
    

    原本max_speed:300kb/s,要设置max_speed:400kb/s;成则为400*2/3=266

    iptables -D FORWARD -d 192.168.1.0/24 -m limit --limit 200/s --limit-burst 200 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -m limit --limit 200/s --limit-burst 200 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -j DROP
    iptables -D FORWARD -d 192.168.1.0/24 -j DROP
    
    iptables -I FORWARD -s 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -m limit --limit 266/s --limit-burst 266 -j ACCEPT
    iptables -I FORWARD -s 192.168.1.0/24 -m limit --limit 266/s --limit-burst 266 -j ACCEPT
    

    去掉限制

    iptables -D FORWARD -d 192.168.1.0/24 -m limit --limit 266/s --limit-burst 266 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -m limit --limit 266/s --limit-burst 266 -j ACCEPT
    iptables -D FORWARD -s 192.168.1.0/24 -j DROP
    iptables -D FORWARD -d 192.168.1.0/24 -j DROP
    

    2.2 MAC过滤/黑白名单

    wifi过滤器,只允许某些mac链接

    config wifi-iface
            option device 'radio0'
            option mode 'ap'
            option ssid 'OpenWrt'
            option network 'lan'
            option encryption 'psk'
            option key '12345678'
            option macfilter 'allow'
            list maclist '20:AB:37:8D:C2:F6'
            list maclist 'A8:02:C4:00:75:3D'
    

    不允许某些mac链接

    config wifi-iface
            option device 'radio0'
            option mode 'ap'
            option ssid 'OpenWrt'
            option network 'lan'
            option encryption 'psk'
            option key '12345678'
            option macfilter 'deny'
            list maclist '00:05:15:0B:02:11'
            list maclist 'A8:02:C4:00:75:3D'
    

    vi /etc/firewall.user,然后按照这个格式添加,mac地址替换为实际地址。

    添加黑名单,将mac为11:22:33:44:55:66的设备的包全部DROP

    iptables -I FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP
    

    添加白名单,将所有的设备都丢弃,然后再只允许某一个mac通过

    iptables -I FORWARD -s 192.168.1.0/24 -j DROP
    iptables -I FORWARD -d 192.168.1.0/24 -j DROP
    iptables -I FORWARD -m mac --mac-source 78:d7:5f:20:e2:9c -j ACCEPT
    

    2.3 nat表的操作

    Nat表有三条标准链(重点介绍):

    • PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地(DNAT)
    • OUTPUT链改变本地产生的包的目的地址(DNAT)
    • POSTROUTING链在包就要离开防火墙之前转换包的源地址(SNAT)
      (注:只有流的第一个包会被这个链匹配,其后的包会自动被做相同的处理)
      实际的操作分为DNAT、SNAT和MASQUERADE
    2.3.1 SNAT:源IP地址转换(POSTROUTING)(wan-lan通讯)

    链接:https://pan.baidu.com/s/1MTvA46lD7eKNKZcdEgnqgw
    提取码:9elj

    基于原地址的转换一般用在我们的许多内网用户通过一个外网的口上网的时候,这时我们将我们内网的地址转换为一个外网的IP,我们就可以实现连接其他外网IP的功能。
    所以我们在iptables中就要定义到底如何转换:
    定义的样式:
    比如我们现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1这个假设出来的外网地址:

    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1
    

    这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP.
    那么,如果172.16.100.1不是固定的怎么办?
    我们都知道当我们使用联通或者电信上网的时候,一般它都会在每次你开机的时候随机生成一个外网的IP,意思就是外网地址是动态变换的。这时我们就要将外网地址换成 MASQUERADE(动态伪装):它可以实现自动寻找到外网地址,而自动将其改为正确的外网地址。所以,我们就需要这样设置:

    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
    

    这里要注意:地址伪装并不适用于所有的地方。

    这个功能其实在路由器手机上默认都已经添加了,不然就都访问不了外网了。

    2.3.2 DNAT:目的IP地址转换 (PREROUTING)

    出口网关再将目的地址替换为私网的源主机地址,发回内部主机。
    DNAT主要有两大用处

    • 发布内部服务器,让外面的internet用户能访问到内网的服务器
    • 网络重定向

    典型的应用是,有个web服务器放在内网配置内网IP,前端有个防火墙配置公网IP,互联 网上的访问者使用公网IP来访问这个网站,当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网IP,防火墙会把这个 数据包的报头改写一次,将目标地址改写web服务器的内网IP,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网 IP变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换。

    对于目标地址转换,数据流向是从外向内的,外面的是客户端,里面的是服务器端通过目标地址转换,我们可以让外面的ip通过我们对外的外网ip来访问我们服务器不同的服务器,而我们的服务却放在内网服务器的不同的服务器上。

    如何做目标地址转换呢?:

    iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 8011 -j DNAT --to-destination 172.16.100.2:8011
    

    目标地址转换要做在到达网卡之前进行转换,所以要做在PREROUTING这个位置上

    控制规则的存放以及开启
    注意:你所定义的所有内容,当你重启的时候都会失效,要想我们能够生效,需要使用一个命令将它保存起来

    2.4 protal认证(重定向)

    https://blog.csdn.net/umitor/article/details/8622841

    iptables -I FORWARD -p tcp -s 192.168.0.1/24 -j DROP 2>&1
    iptables -t nat -I PREROUTING -p tcp -s 192.168.0.1/24 --dport 80 -j DNAT --to 192.168.0.1:8090 2>&1
    iptables -t nat -I PREROUTING -p tcp -s 192.168.0.1/24 --dport 443 -j DNAT --to 192.168.0.1:1443 2>&1
    iptables -t nat -I PREROUTING -p tcp -d 192.168.0.1 --dport 443 -j DNAT --to 192.168.0.1:2443 2>&1
    
    iptables -D FORWARD -p tcp -s 192.168.0.1/24 -j DROP 2>&1
    iptables -t nat -D PREROUTING -p tcp -s 192.168.0.1/24 --dport 80 -j DNAT --to 192.168.0.1:8090 2>&1
    iptables -t nat -D PREROUTING -p tcp -s 192.168.0.1/24 --dport 443 -j DNAT --to 192.168.0.1:1443 2>&1
    iptables -t nat -D PREROUTING -p tcp -d 192.168.0.1 --dport 443 -j DNAT --to 192.168.0.1:2443 2>&1
    

    2.5 conntrack记录

    2.cat /proc/net/ip_conntrack 记录

    3.设置默认路由

    拨上号后会有两个route

    admin@TgT:/data/dropbear # netcfg                                        
    ppp0     UP                               10.57.216.229/32  0x000010d1 00:00:00:00:00:00
    lo       UP                                   127.0.0.1/8   0x00000049 00:00:00:00:00:00
    rmnet_usb0 DOWN                                   0.0.0.0/0   0x00001002 b6:bd:b2:b4:51:56
    wlan0    UP                                 192.168.1.1/24  0x00001043 10:65:cf:09:36:2b
    ...
    rmnet7   DOWN                                   0.0.0.0/0   0x00000000 00:00:00:00:00:00
    rmnet0   UP                                10.38.194.54/30  0x00000041 00:00:00:00:00:00
    rmnet1   DOWN                                   0.0.0.0/0   0x00000000 00:00:00:00:00:00
    admin@TgT:/data/dropbear # ip route show
    default via 10.38.194.53 dev rmnet0 
    default via 10.64.64.64 dev ppp0 
    10.38.194.52/30 dev rmnet0  proto kernel  scope link  src 10.38.194.54 
    10.38.194.53 dev rmnet0  scope link 
    10.64.64.64 dev ppp0  proto kernel  scope link  src 10.57.216.229 
    74.125.204.100 via 10.38.194.53 dev rmnet0 
    74.125.204.139 via 10.38.194.53 dev rmnet0 
    192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.1 
    218.2.2.2 via 10.38.194.53 dev rmnet0 
    218.2.2.2 via 10.38.194.53 dev rmnet0  src 10.38.194.54 
    218.4.4.4 via 10.38.194.53 dev rmnet0 
    218.4.4.4 via 10.38.194.53 dev rmnet0  src 10.38.194.54 
    

    拨上号后,将rmnet0设置为默认路由,删除ppp0的默认路由

    admin@TgT:/data/dropbear # ip route del default dev ppp0
    admin@TgT:/data/dropbear # ip route add default dev rmnet0
    admin@TgT:/data/dropbear # ip route show
    default via 10.38.194.53 dev rmnet0 
    10.38.194.52/30 dev rmnet0  proto kernel  scope link  src 10.38.194.54 
    10.38.194.53 dev rmnet0  scope link 
    10.64.64.64 dev ppp0  proto kernel  scope link  src 10.57.216.229 
    74.125.204.100 via 10.38.194.53 dev rmnet0 
    74.125.204.101 via 10.38.194.53 dev rmnet0 
    74.125.204.139 via 10.38.194.53 dev rmnet0 
    192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.1 
    218.2.2.2 via 10.38.194.53 dev rmnet0  src 10.38.194.54 
    218.4.4.4 via 10.38.194.53 dev rmnet0  src 10.38.194.54 
    

    掉线时,将ppp0设置为默认路由,删除rmnet0的默认路由

    admin@TgT:/data/dropbear # ip route show
    default dev ppp0  scope link 
    10.64.64.64 dev ppp0  proto kernel  scope link  src 10.57.216.229 
    192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.1 
    

    iptables -nvL

    iptables -nvL ACL_RULES

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,837
精华内容 1,134
热门标签
关键字:

iptable