马哥学习笔记十——iptables

1.防火墙:硬件,软件:规则(匹配标准,处理方法)

  Framework:默认规则

    开放:堵

    关闭:通

  规则:匹配标准

    IP:SIP,DIP  SYN=1,FIN=0,SYN=0,ACK=0;SYN=1,FIN=0,SYN=0,ACK=1;SYN=0,FIN=0,SYN=0,ACK=1(ESTABLISHED);

    TCP:SPORT,DPORT

    UDP:SPORT,DPORT

    ICMP:icmp-type

2.hook function:钩子函数

  prerouting

  input

  output

  forward

  postrouting

  规则链

    PREROUTING

    INPUT

    OUTPUT

    FORWARD

    POSTROUTING

  filter(过滤):表

    INPUT

    OUTPUT

    FORWARD

  nat(地址转换):表

    PREROUTING

    OUTPUT

    POSTROUTING

  mangle():表

    PREROUTING

    INPUT

    OUTPUT

    FORWARD

    POSTROUTING

  raw():表

    PREROUTING

    OUTPUT

  自定义链只在被调用时才发挥作用,如果没有与自定义中的任何规则匹配,还应该有返回机制

  用户可以删除自定义空链,默认链无法删除

  每个规则都有两个内置计数器

    被匹配的报文个数

    被匹配的报文大小之和

3.规则:匹配标准,处理动作

  匹配标准:

    通用匹配

      -s,--src:指定源地址

      -d,--dst:指定目标地址

      -p {tcp|udp|icmp}:指定协议

      -i INTERFACE:指定数据报文流入的接口

        可用于标准定义的链:PREROUTING,INPUT,FORWARD

      -o INTERFACE:指定数据报文流出的接口

        可用于标准定义的链:OUTPUT,POSTROUTING,FORWARD

    扩展匹配

      隐含扩展:不必特别指明由哪个模块进行的扩展,使用-p {tcp|udp|icmp}

        -p tcp

          --sport PORT[-PORT]:源端口

          --dport PORT[-PORT]:目标端口

          --tcp-flags mask omp:只检查mask指定的标志位,是逗号分隔的标志位列表;comp表示此列表中的标志位必须为一,comp中没出现,而mask中出现的必须为0

            --tcp-flags SYN,FIN,ACK,RST SYN = --syn

          --syn:tcp三次握手中的第一次

        -p icmp

          --icmp-type

            0:echo-reply

            8:echo-request

        -p udp

          --sport

          --dport

      显示扩展:必须指明由哪个模块进行的扩展,在iptables中使用-m选项

        -m EXTESTION --spe-opt

        state:状态扩展

          结合ip_conntrcak追踪会话的状态

            NEW:新连接请求

            ESTABLISHED:已建立的连接

            INVALID:非法连接

            RELATED:相关联的

          -m state --state NEW -j ACCEPT 

        multiport:离散的多端口扩展

          --source-ports

          --destination-ports

          --ports

          -m multiport --destination-ports 21,22,80, -j ACCEPT

  !:条件取反  -s ! 172.16.100.6

  iptables [-t TABLE] COMMAND CHAIN [num] 匹配标准 -j 处理办法

    -j TARGET(ACCEPT,DROP,REJECT)

  命令:

    管理规则:

    -A:附加一条规则,添加在链的尾部

    -I CHAIN [num]:插入一条规则,插入为对应CHAIN上的第num条,省略num为第一条

    -D CHAIN [num]:删除指定链中第num条规则

    -R CHAIN [num]:替换指定的规则

    管理链:

    -F [CHAIN]:flush,清空指定规则,省略CHAIN删除对应表中的所有链

    -P CHAIN:设定指定链的默认策略

    -N:自定义一条新的空链

    -X:删除一条自定义的空链

    -Z:置零指定列中所有规则的计数器

    -E:重命名自定义的链

    查看类:

    -L:显示指定表中的规则

      -n:以数字格式显示主机地址和端口号

      -v:显示链及规则的详细信息

      -x:显示计数器的精确值

      --line-numbers:显示规则号码

  动作(target):

    ACCEPT:放行

    DROP:丢弃

    REJECT:拒绝

    DNAT:目标地址转换

    SNAT:源地址转换

    REDIRECT:端口重定向

    MASQUERADE:地址伪装

    LOG:日志

    MARK:打标记

  保存规则:

    # service iptables save(重启生效)

      /etc/sysconfig/iptables

    # iptables-save > /etc/sysconfig/iptables.2014051101

    # iptables-restore < /etc/sysconfig/iptables.2014051101(重启生效)

原文地址:https://www.cnblogs.com/wangyongbin/p/3721773.html