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命令

posted @ 2021-05-15 15:32  不懂123  阅读(3581)  评论(0编辑  收藏  举报