zoukankan      html  css  js  c++  java
  • iptables命令详解

    数据包经过防火墙流程

       如果想要Linux主机支持转发 则需要开启内核的IP_FORWARD的功能选项

    数据包匹配条件

       匹配条件分为基本匹配条件和扩展匹配条件

       基本匹配条件

            1.源地址Source IP,目标地址 Destination IP

       扩展匹配条件

            除了上述的条件可以用于匹配,还有很多其他的条件可以用于匹配,这些条件泛称为扩展条件,这些扩展条件其实也是netfilter中的一部分,只是以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块.

           1.源端口Source Port, 目标端口Destination Port

    处理动作

         处理动作在iptables中被称为target,动作也可以分为基本动作和扩展动作

         1.ACCEPT    允许数据包通过

         2.DROP        直接丢弃数据包,不给任何回应信息,这时候客户端会过了超时时间才会有反应

         3.REJECT    拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息

         4.SNAT         源地址转换,解决内网用户用同一个公网地址上网的问题

         5.MASQUERADE    是SNAT的一种特殊形式,适用于动态的、临时会变的ip上

         6.DNAT          目标地址转换

         7.REDIRECT   在本机做端口映射

         8.LOG   在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配

    匹配规则

           规则的顺序很重要

           如果报文已经被前面的规则匹配到,iptables则会对报文执行对应的动作,即使后面的规则也能匹配到当前报文,很有可能也没有机会再对报文执行相应的动作了

          报文先被第一条规则匹配到了   于是当前报文被"放行"了,因为报文已经被放行了.即使第二条规则能够匹配到刚才"放行"的报文.也没有机会再对刚才的报文进行丢弃操作了。这就是iptables的工作机制

    iptables和firewalld的区别

           firewalld和iptables是两个不同的服务
           在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等.
           systemctl status firewalld
           systemctl status iptables

            firewalld是iptables的一个封装,可以让你更容易地管理iptables规则。它并不是iptables的替代品,虽然iptables命令仍可用于firewalld,但建议firewalld时仅使用firewalld命令

  • 相关阅读:
    Spring JDBC
    获取JNDI数据源
    subset II
    hadoop-0.20.2安装配置
    leetcode5:subsets问题
    leetcode4:Permutation
    leetCode3
    leetcode2:线性表
    leetcode1:线性表
    使用C++11 开发一个半同步半异步线程池
  • 原文地址:https://www.cnblogs.com/yxh168/p/9676745.html
Copyright © 2011-2022 走看看