zoukankan      html  css  js  c++  java
  • Linux-netfilter框架

    Linux 的内核提供的防火墙功能通过netfilter框架实现,并提供了iptables工具配置和修改防火墙的规则。

    1. netfilter 框架

    netfilter的通用框架不依赖具体协议。而为每种网络协议定义了一套钩子函数这些钩子函数在数据包经过协议栈的几个关键点被调用。协议栈将数据包以及钩子函数作为参数,传递给netfilter框架。

    netfilter 主要步骤及函数:

    NF_IP_PRE_ROUTING:

    NF_IP_LOCAL_IN:

    NF_IP_FORWARD:

    NF_IP_POST_ROUTING:

    NF_IP_LOCAL_OUT:

    NF_IP_POST_ROUTING:

    2.包过滤

    每个函数都可以对数据包进行处理。系统管理员可以通过iptables工具来向内核模块注册多个过滤规则,并且指明过滤规则的优先权。设置完成后每个钩子按照规则进行匹配。如果与规则匹配,函数就会进行一些过滤操作。主要操作:

    NF_ACCEPT:

    NF_DROP:

    NF_STOLEN:

    NF_QUEUE:

    NF_REPEAT

    3.包选择

    在netfilter上已经创建了一个包选择系统,这个包选择工具默认已经注册了3个表:

      1.过滤表(filter):过滤包而不会改变包。

      2.NAT表:

      3.mangle表:mangle表被用于真正改变包的信息。

    在调用钩子函数时,是按照表的顺序来调用的。 package->filter表->nat表->mangle表 

  • 相关阅读:
    web应用本质
    SQL逻辑查询语句执行顺序
    flask-WTForms组件
    生产者消费者模型
    单例模式
    flask中的信号量
    flask-script
    flask-session
    在python项目中导出项目依赖的模块信息
    Flask简介之简单应用
  • 原文地址:https://www.cnblogs.com/mirrorlake/p/8136637.html
Copyright © 2011-2022 走看看