zoukankan      html  css  js  c++  java
  • iptables编写规则

     

      • [-t 表名]:该规则所操作的哪个表,可以使用filter、nat等,如果没有指定则默认为filter
      • -A:新增一条规则,到该规则链列表的最后一行
      • -I:插入一条规则,原本该位置上的规则会往后顺序移动,没有指定编号则为1
      • -D:从规则链中删除一条规则,要么输入完整的规则,或者指定规则编号加以删除
      • -R:替换某条规则,规则替换不会改变顺序,而且必须指定编号。
      • -P:设置某条规则链的默认动作
      • -nL-L-n,查看当前运行的防火墙规则列表
      • chain名:指定规则表的哪个链,如INPUT、OUPUT、FORWARD、PREROUTING等
      • [规则编号]:插入、删除、替换规则时用,--line-numbers显示号码
      • [-i|o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出
      • [-p 协议类型]:可以指定规则应用的协议,包含tcp、udp和icmp等
      • [-s 源IP地址]:源主机的IP地址或子网地址
      • [--sport 源端口号]:数据包的IP的源端口号
      • [-d目标IP地址]:目标主机的IP地址或子网地址
      • [--dport目标端口号]:数据包的IP的目标端口号
      • -m:extend matches,这个选项用于提供更多的匹配参数,如:

        • -m state --state ESTABLISHED,RELATED
        • -m tcp --dport 22
        • -m multiport --dports 80,8080
        • -m icmp --icmp-type 8
      • <-j 动作>:处理数据包的动作,包括ACCEPT、DROP、REJECT等

    规则链

    • INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
    • OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。
    • FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。
    • PREROUTING链:在对数据包作路由选择之前,应用此链中的规则,如DNAT。
    • POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则,如SNAT。

    防火墙处理数据包的方式:

    • ACCEPT:允许数据包通过
    • DROP:直接丢弃数据包,不给任何回应信息
    • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息。

    • SNAT:源地址转换。在进入路由层面的route之前,重新改写源地址,目标地址不变,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机。解决内网用户用同一个公网地址上网的问题。
      MASQUERADE,是SNAT的一种特殊形式,适用于像adsl这种临时会变的ip上

    • DNAT:目标地址转换。和SNAT相反,IP包经过route之后、出本地的网络栈之前,重新修改目标地址,源地址不变,在本机建立NAT表项,当数据返回时,根据NAT表将源地址修改为数据发送过来时的目标地址,并发给远程主机。可以隐藏后端服务器的真实地址。
      REDIRECT:是DNAT的一种特殊形式,将网络包转发到本地host上(不管IP头部指定的目标地址是啥),方便在本机做端口转发。

    • LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

    除去最后一个LOG,前3条规则匹配数据包后,该数据包不会再往下继续匹配了,所以编写的规则顺序极其关键。

  • 相关阅读:
    C#的ThreadStart 和 Thread
    Thread.Join() 方法
    JSON 数据格式
    C#调试入门篇
    dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
    由一篇文章引发的思考——多线程处理大数组
    windows如何定时关闭一个程序
    Spring Boot连接DB2查询结果时报错“java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.isValid(I)Z”的解决办法
    [转]德哥的PostgreSQL私房菜
    CockroachDB学习笔记——[译]为什么Go语言是CockroachDB的正确选择
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/7943036.html
Copyright © 2011-2022 走看看