创新路
我们一直在努力

简述Iptables

Iptables 是3.5版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或LAN、服务器或连接LAN和internet的代理服务器,则该系统有利于在 Linux系统上更好地控制IP信息包过滤和防火墙配置。

    # yum -y install iptables-services

    # systemctl start iptables.service

    //redhat7默认使用firewalld防火墙,但底层仍然调用iptables

    //规则链内顺序比对,匹配即停止原则。若无任何匹配,则按默认策略处理

iptables框架

1)iptables的4个表(区分大小写):

    iptables默认有4个表,nat表(地址转换表)、filter表(数据过滤表)、raw表(状态跟踪表)、mangle表(包标记表)。

2)iptables的5个链(区分大小写):

    INPUT链(入站规则)

    OUTPUT链(出站规则)

    FORWARD链(转发规则)

    PREROUTING链(路有前规则)

    POSTROUTING链(路由后规则)

 

目标操作:

    ACCEPT:允许通过/放行

    DROP:直接丢弃,不给出任何回应

    REJECT:拒绝通过,必要时会给出提示

    LOG:记录日志,然后传给下一条规则

 

常用选项:

    添加规则 -A 追加一条防火墙规则至链的末尾位置

         -I  插入一条防火墙规则至链的开头,命令追加数字插入到指定位置

    查看规则 -L  查看iptables所有规则

         -n  以数字形式显示地址、端口等信息

         –line-numbers 查看规则时,显示规则的行号

    删除规则 -D  删除链内指定序号(或内容)的一条规则

         -F  清空所有的规则

    默认规则 -P  为指定的链设置默认规则

 

语法结构:

#iptables  [-t 表名]  选项  [链名]  [条件]  [-j 目标操作]

注意事项与规律:

    1.可以不指定表,默认为filter表

    2.可以不指定链,默认为对应表的所有链

    3.除非设置默认策略,否则必须指定匹配条件

    4.选项/链名/目标操作用大写字母,其余都小写

        iptables -t filter -A INPUT -p tcp -j ACCEPT//追加规则至filter表中的INPUT链的末尾

        iptables  -I INPUT 2 -p icmp -j ACCEPT //插入规则filter表INPUT链第2行

    5.icmp为ping协议

        iptables  -nL  INPUT                    //仅查看INPUT链的规则

        iptables  -L  INPUT  –line-numbers      //查看规则,显示行号

        iptables  -D  INPUT  3 //删除filter表中INPUT链的第3条规则

        iptables  -F //清空filter表中所有链的防火墙规则

        iptables  -t  filter  -P  INPUT  DROP   //设置默认规则,默认为ACCEPT

iptables过滤条件

    通用匹配  协议匹配  -p 协议名称

              地址匹配  -s 源地址、-d 目标地址

              接口匹配  -i 接受数据的网卡、-o 发送数据的网卡

    隐含匹配  端口匹配  –sport 源端口号、–dport 目标端口号

              ICMP类型匹配 –icmp-type ICMP类型

iptables  -A  INPUT  -p icmp –icmp-type echo-request  -j  DROP

    //仅禁止入站的ping请求,不拒绝入站的ping回应包

    //iptables -p icmp –help查看帮助信息

iptables扩展规则(下列ip地址为示例)

    iptables 选项 链名称 -m 扩展模块 –具体扩展条件 -j 动作   //-m开启扩展功能

    iptables  -A  INPUT  -p tcp –dport 22 -m   mac –mac-source  52:54:00:00:00:0b  -j  DROP

    //拒绝52:54:00:00:00:0b这台主机远程本机

        iptables  -A  INPUT  -p tcp  -m  multiport –dports  20:22,25,80,110,143,16501:16800  -j  ACCEPT

    //一次性开启20,21,22,25,80,110,143,16501到16800所有的端口

        iptables  -A  INPUT  -p tcp  –dport  22  -m  iprange  –src-range  192.168.4.10-192.168.4.20   -j  ACCEPT

    //允许从 192.168.4.10-192.168.4.20 登录

 

实现IP地址的伪装(SNAT源地址转换)

echo 1 > /proc/sys/net/ipv4/ip_forward     

    //开启路由转发

iptables  -t  nat  -A POSTROUTING -s  192.168.4.0/24 –p tcp –dport 80  -j SNAT  –to-source 192.168.2.5    

    //实现SNAT地址转换

未经允许不得转载:天府数据港官方信息博客 » 简述Iptables

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机