51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2570|回复: 0
打印 上一主题 下一主题

运维——Linux防火墙iptables语法详解

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-11-15 21:09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在Linux防火墙中,对于数据报而言,有以下几个流向:
    PREROUTING-->FORWARD-->POSTROUTING
    PREROUTING-->INPUT-->本机OUTPUT-->POSTROUTING
    数据报的流向主要流向其实也是iptables的两种工作模式:

      用作NAT路由器
      用作主机防火墙



    iptables会根据不同的数据处理包处理功能不同的规则表。它包括如下3个表:filter、nat和mangle。

      filter是默认的表,包含真正的防火墙过滤规则。内建的规则链包括:INPUT、OUTPUT和FORWARD。
      nat表包含源、目的地址及端口转换使用的规则,内建的规则链包括PERROUTING、OUTPUT和POSTROUTING。
      mangle表包含用于设置特殊的数据包路由标志的规则。随后filter表中的规则会检查这些标志。内建的规则链包括:PERROUTING、INPUT、FORWARD、POSTROUTING和OUTPUT。

    表中相应的相关规则链功能如下:

      INPUT链:当一个数据包由内核中的路由计算确定为本地的Linux系统后,它会通过INPUT链的检查。
      OUTPUT链:保留给系统自身生出的数据包
      FORWARD键:经过Linux系统路由的数据包(即当iptables防火墙用于连接两个网络时,两个网络之间的数据包必须流经该防火墙)
      PREROUTING链:用于修改目的地址(DNAT)
      POSTROUTING链:用于修改源地址(SNAT)

    iptables详细语法



    iptables [-t 表名] <-A|I|D|R> 链名[规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [--sport 源端口号] [-d 目标IP地址|目标子网] [--dport 目标端口号] <-j 动作>

    注意:此语法规则详细,逻辑清晰,推荐记忆此语法格式。在刚开始写iptables规则时就应该养成良好的习惯,用此语法规则来规范脚本,对今后的工作会大有帮助。

    下面关于语法的详细说明:
    (1)、定义默认策略
    作用:当数据包不符合链中任意一条规则时,iptables将根据该链预先定义的默认策略来处理数据包。
    默认策略定义格式为:
    iptables [-t 表名] <-P> <链名> <动作>
    参数说明如下:

      [-t 表名] :将指定默认策略应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。
      <-P> :定义默认策略
      <链名> :指定默认策略应用于哪个链,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTING。
      <动作> : 处理数据包的动作,可以使用ACCEPT(接收数据包)和DROP(丢弃数据包)。



    (2)查看iptables规则

    查看iptables规则的命令格式为:
    iptables [-t 表名] <-L> [链名]
    参数说明如下:

      [-t 表名] :指查看哪个表的规则列表,表名可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables默认会查看filter。
      <-L> :查看指定表和指定链的规则列表。
      [链名]:指定查看表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTER,如果不注明哪个链,则查看某个表中所有链的规则列表。



    (3)增加、插入、删除、替换iptables规则

    iptables [-t 表名] <-A|I|D|R> 链名[规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [--sport 源端口号] [-d 目标IP地址|目标子网] [--dport 目标端口号] <-j 动作>
    参数说明如下:

      [-t 表名] :指查看哪个表的规则列表,表名可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables默认使用filter。
      -A :新增一条规则,该规则会增加到规则列表的最后一行,该参数不能使用规则编号。
      -I : 插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。
      -D:从规则列表中删除一条规则,可以输入要删除的完整规则,或者直接指定规则编号加以删除。
      -R:替换某条规则,规则被替换并不会改变顺序,必须要指定被替换的规则编号。
      <链名>:指定查看表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING和POSTROUTER
      [规则编号] :规则编号在插入、删除和替换规则时使用,编号是按照规则列表的顺序排列的,规则列表中的第一条规则的编号为1。
      [-i | o 网卡名称] :是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。
      [-p 协议类型]:可以指定规则应用的协议,包含TCP、UDP和ICMP等。
      [-s 源IP地址|源子网] :-s后面接源主机的IP地址或子网地址。
      [--sport 源端口号] : --sport后面接数据包的IP源端口号。
      [-d 目标IP地址|目标子网] :-d后面接目标主机的IP地址或子网地址
      [--dport 目标端口号] :--dport后面接数据包的IP目标端口号。
      <-j 动作>

    下面是处理数据包的动作,以及各个动作的详细说明。

      ACCEPT:接收数据包。
      DROP:丢弃数据包。
      REDIRECT:将数据包重新转向到本机或另一台主机的某一个端口,通常实现透明代理或对外开放内网的某些服务。
      REJECT:拦截该数据封包,并发回封包通知对方。
      SNAT:源地址转换,即改变数据包的源地址。例如:将局域网的IP(10.0.0.1/24)转化为广域网的IP(203.93.236.141/24),在NAT表的POSTROUTING链上进行该动作。
      DNAT:目标地址转换,即改变数据包的目标地址。例如:将广域网的IP(203.93.236.141/24)转化为局域网的IP(10.0.0.1/24),在NAT表的PREROUTING链上进行该动作。
      MASQUERADE:IP伪装,即常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP动态分配的,如果主机的IP地址是静态固定的,就要使用SNAT。
      LOG:日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错。



    (4)清除规则和计数器
    在新建规则时,往往需要清除原有的旧规则,以免它们影响新设定的规则。如果规则比较多,逐条删除就会十分麻烦,这时可以使用iptables提供的清除规则参数达到快速删除所有的规则的目的。
    定义参数的格式为:
    iptables [-t 表名] <-F | Z>
    参数说明如下:

      [-t 表名] :指定将默认策略应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。
      -F :通过如下命令删除指定表中的所有规则。
      -Z :将指定表中的数据包计数器和流量计数器归零。


    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 15:55 , Processed in 0.146107 second(s), 32 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表