欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种让iptables规则支持本地时间的方法及终端独创技术15831字

一种让iptables规则支持本地时间的方法及终端

2021-03-19 17:56:49

一种让iptables规则支持本地时间的方法及终端

  技术领域

  本发明涉及通信技术领域,具体地涉及一种让iptables规则支持本地时间的方法及终端。

  背景技术

  iptables作为linux系统上的广泛使用的防火墙配置工具,提供了丰富的模块来配置各种规则,以达到各种网络报文的过滤目标。其time时间匹配扩展模块更是丰富了iptables的控制手段,它可以按照时间信息来对报文进行控制,比如想控制9:00~10:00时间段不能上网,其它时间可以正常上网,可以利用iptables的time扩展模块配置如下规则:iptables-t filter-A OUTPUT-p tcp--dport 80-m time–timestart9:00--timestop 10:00-j DROP,按照通常理解,这条规则在9:00~10:00时间段内,规则应该能命中,80端口的报文会被丢弃,实际并没有丢弃,没有达到预想效果。通过分析发现Linux内核里面网络报文携带的时间戳都是以UTC世界统一时间为基准的,时间匹配模块是按照UTC时间去做匹配,即只有在UTC时间9:00~10:00时间段才会命中,假设本地时间使用的是北京时间,那这条规则命中的北京时间是17:00~18:00点,与当初的预期是不一致的,规则配置是错误的。

  当然在配iptables规则的时候,也可以自己根据本地时间换算成UTC世界统一时间后再配置,比如把上面规则的timestart从9:00改成1:00,timestop从10:00改成2:00,规则也能按照预期在北京时间9:00~10:00生效,但是这种在iptables规则里把本地时间换算成UTC世界统一时间的有如下一些问题:

  1、使用UTC时间不符合常用习惯

  2、手动换算UTC时间容易计算出错

  3、iptables展示的时间与系统时间不一致,不利于管理维护

  4、当换算的UTC时间出现跨天时,比如北京时间2:00~12:00点换算成UTC时间就是前一天的18:00~今天4:00,此时iptables配置比较麻烦

  5、当time结合monthdays/weekdays/datestart这些选项一起使用的时候,会出现跨天、跨星期、跨月的情况,iptables的规则命令会异常复杂,很难配正确。

  发明内容

  (一)发明目的

  本发明的目的是提供一种让iptables规则支持本地时间的方法及终端,从而克服现有技术在iptables规则里把本地时间换算成UTC世界统一时间的存在的问题。

  (二)技术方案

  为解决上述问题,本发明一种让iptables规则支持本地时间的方法,包括如下步骤:

  步骤a:初始化操作系统,设置操作系统的时间和操作系统时区信息;

  步骤b:在用户态获取操作系统的时间以及操作系统时区信息;;

  步骤c:将操作系统的时区信息配置到内核;

  步骤d:设置防火墙的iptables规则,所述iptables规则为关于期望时间控制的规则,所述期望时间根据操作系统设置的时区来设定;

  步骤e:内核接收报文;

  步骤f:内核根据步骤b配置的时区信息,将报文中的世界统一时间UTC转换为操作系统设置的时区内的时间;

  步骤g:内核将步骤f中转换得到的时间与步骤d中期望时间匹配,得到匹配结果;

  步骤h:根据匹配结果以及防火墙的iptables规则放行或丢弃报文。

  进一步的,步骤b中,通过程序指令获取操作系统的时间和操作系统时区信息。

  进一步的,步骤c中,通过netlink或者系统调用方式将当前操作系统的时区信息配置到内核。

  进一步的,步骤d中,通过iptables规则的time扩展模块配置关于期望时间控制的规则。

  进一步的,步骤g中,内核将步骤f中转换得到的时间与步骤d中期望时间进行比较,得到比较结果。

  一种让iptables规则支持本地时间的终端,包括处理器,适用于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

  步骤a1:初始化操作系统,设置操作系统的时间和操作系统时区信息;

  步骤b1:在用户态获取操作系统的时间以及操作系统时区信息;;

  步骤c1:将操作系统的时区信息配置到内核;

  步骤d1:设置防火墙的iptables规则,所述iptables规则为关于期望时间控制的规则,所述期望时间根据操作系统设置的时区来设定;

  步骤e1:内核接收报文;

  步骤f1:内核根据步骤b配置的时区信息,将报文中的世界统一时间UTC转换为操作系统设置的时区内的时间;

  步骤g1:内核将步骤f1中转换得到的时间与步骤d1中期望时间匹配,得到匹配结果;

  步骤h1:根据匹配结果以及防火墙的iptables规则放行或丢弃报文。

  进一步的,步骤b1中,通过程序指令获取操作系统的时间和操作系统时区信息。

  进一步的,步骤c1中,通过netlink或者系统调用方式将当前操作系统的时区信息配置到内核。

  进一步的,步骤d1中,通过iptables规则的time扩展模块配置关于期望时间控制的规则。

  进一步的,步骤g1中,内核将步骤f1中转换得到的时间与步骤d1中期望时间进行比较,得到比较结果。

  (三)有益效果

  本发明的一种让iptables规则支持本地时间的方法和终端,由于初始化操作系统,设置操作系统的时间和操作系统时区信息;在用户态获取操作系统的时间以及操作系统时区信息;将操作系统的时区信息配置到内核;设置防火墙的iptables规则,所述iptables规则为关于期望时间控制的规则,所述期望时间根据操作系统所在的时区设定;内核接收报文;内核根据配置的时区信息,将报文中的世界统一时间UTC转换为操作系统设置的时区内的时间;内核将转换得到的时间与期望时间匹配,得到匹配结果;根据匹配结果以及防火墙的iptables规则放行或丢弃报文。解决了前面现有技术存在的诸多问题,极大简化了iptables防火墙基于时间控制的使用难度,提高了工作效率和降低了配置错误的概率。

  附图说明

  附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

  图1为本发明实施例所述的一种让iptables规则支持本地时间的方法和终端的原理图。

  图2为本发明实施例所述的一种让iptables规则支持本地时间的方法和终端的工作流程图。

  具体实施方式

  为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

  显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

  当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。

  当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。

  一种让iptables规则支持本地时间的方法,包括如下步骤:步骤a:初始化操作系统,设置操作系统的时间和操作系统时区信息;

  步骤b:在用户态获取操作系统的时间以及操作系统时区信息;;

  步骤c:将操作系统的时区信息配置到内核;

  步骤d:设置防火墙的iptables规则,所述iptables规则为关于期望时间控制的规则,所述期望时间根据操作系统设置的时区来设定;

  步骤e:内核接收报文;

  步骤f:内核根据步骤b配置的时区信息,将报文中的世界统一时间UTC转换为操作系统设置的时区内的时间;

  步骤g:内核将步骤f中转换得到的时间与步骤d中期望时间匹配,得到匹配结果;

  步骤h:根据匹配结果以及防火墙的iptables规则放行或丢弃报文。

  结合附图1,该方法通过在用户态增加一个时区配置模块,在内核态增加一个时间转换模块,用户态获取到当前的系统时间和时区配置相关信息后,把时区配置信息通过相应接口发送给时间转换模块,内核在收到报文后通过时间转换模块提供的功能将报文的UTC时间戳转换成本地时间戳,然后再送到时间匹配模块进行时间比较,从而实现了让iptables规则支持本地时间。Netfilter新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables从用户态的iptables连接到内核态的Netfilter的架构中,Netfilter与IP协议栈是无缝契合的,并允许使用者对数据报进行过滤、地址转换、处理等操作。

  其中,时区配置模块其主要功能有:

  获取系统当前的系统时间;

  获取系统当前的时区配置;

  负责与内核时间转换模块通信;

  将时区信息通知给内核时间转换模块;

  内核时间转换模块主要功能:

  与时区获取模块通信

  接收来自时区获取模块的时区配置信息

  将报文UTC时间转换成本地时间。

  步骤a:初始化操作系统,设置操作系统的时间和操作系统时区信息;

  步骤b中,通过执行相关程序获取到当前系统时间的时区配置,即通过程序指令获取当前的系统本地时间以及当前的时区配置信息。

  步骤c中,将时区配置信息通过netlink或者系统调用方式配置到内核时间转换模块,即通过netlink或者系统调用方式将当前的系统本地时间以及当前的时区配置信息配置到内核态。

  步骤d中,通过iptables规则的time扩展模块配置关于当前的系统本地时间(系统所在时区时间)控制的规则。即用iptables的time扩展模块配置带时间控制的规则;其中time扩展模块设置的时间是按照本地时间期望生效的。

  步骤f中,读取内核里保存的时区配置信息,根据时区配置,将报文的UTC世界统一时间转换成本地时间。

  步骤g中,将转换后的系统本地时间与当前的系统本地时间进行比较。

  此处的时间匹配模块是用报文转换后的本地时间和规则配置的时间进行比较,而不是用UTC世界统一时间进行比较。

  一种让iptables规则支持本地时间的终端,包括处理器,适用于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

  步骤a1:初始化操作系统,设置操作系统的时间和操作系统时区信息;

  步骤b1:在用户态获取操作系统的时间以及操作系统时区信息;;

  步骤c1:将操作系统的时区信息配置到内核;

  步骤d1:设置防火墙的iptables规则,所述iptables规则为关于期望时间控制的规则,所述期望时间根据操作系统设置的时区设定;

  步骤e1:内核接收报文;

  步骤f1:内核根据步骤c1配置的时区信息,将报文中的世界统一时间UTC转换为操作系统设置的时区内的时间;

  步骤g1:内核将步骤f1中转换得到的时间与步骤d1中期望时间匹配,得到匹配结果;

  步骤h1:根据匹配结果以及防火墙的iptables规则放行或丢弃报文。

  步骤b1中,通过程序指令获取当前的系统本地时间以及当前的时区配置信息。

  步骤c1中,通过netlink或者系统调用方式将当前的系统本地时间以及当前的时区配置信息配置到内核态。

  步骤d1中,通过iptables规则的time扩展模块配置关于当前的系统本地时间控制的规则。

  步骤g1中,将转换后的系统本地时间与当前的系统本地时间进行比较。

  让iptables规则支持本地时间的终端,该终端在工作时候的流程如附图2所示:

  1)终端上电开机及系统初始化;包括终端上电开机,终端的系统初始化,终端配置时区并设置相应的系统本地时间。

  2)加载内核时间转换模块;

  3)时区配置模块获取时区并配置内核。通过执行相关程序获取到当前系统时间的时区配置;将时区配置信息通过netlink或者系统调用方式配置到内核时间转换模块;

  4)编写规则,按照本地时间来设置防火墙的iptables规则,用iptables的time扩展模块配置带时间控制的规则;time扩展模块设置的时间是按照本地时间期望生效的。

  5)接收报文

  6)时间转换模块转换报文时间,读取内核里保存的时区配置信息;根据时区配置,将报文的UTC世界统一时间转换成本地时间。

  7)时间匹配,时间匹配模块是用报文转换后的本地时间和规则配置的时间进行比较,而不是用UTC世界统一时间进行比较。

  8)返回匹配结果并执行相应的目标动作(放行/丢弃)。

  应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

  以上参照本发明的实施例对本发明予以了说明。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。本发明的范围由所附权利要求及其等价物限定。不脱离本发明的范围,本领域技术人员可以做出多种替换和修改,这些替换和修改都应落在本发明的范围之内。

  尽管已经详细描述了本发明的实施方式,但是应该理解的是,在不偏离本发明的精神和范围的情况下,可以对本发明的实施方式做出各种改变、替换和变更。

  显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

《一种让iptables规则支持本地时间的方法及终端.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)