本发明涉及usb端口操作日志,尤其涉及一种即时记录usb端口操作日志的方法。
背景技术:
在服务器主板上,bmc(基板管理控制器)负责对整个主板的管理工作。通过网络通信功能,可以显示硬件设备信息,例如处理器信息,包括主频、型号等,内存信息,包括容量、频率、型号等,日志信息主要通过开机过程中bios程序传递给bmc,或者bmc通过直接连接硬件设备的通信总线,直接与设备通信来获取。也可以记录系统各种操作日志,通过硬件、bios或者其他外部软件进行登记记录,描述系统的操作情况,例如开机、关机日志等,也有异常故障日志。通过bmc的远程操作管理功能,用户不需要去机台本地操作,就能实现对整个主板系统硬件设备信息、日志信息进行全面管理。
bmc远程管理功能为用户提供了系统管理和监控的便利,但无法对usb设备进行监控。
在主板usb端口接口引脚中无在位信号,也没有独立电源,电源和地线,都仅仅是接口通信的一个引脚,硬件设计无法获知usb设备是否在位。usb设备也没有额外的通信接口与bmc信息,bmc也无法直接获取usb设备的是否在位和设备信息。usb设备属于即插即用类型,在操作系统下进行热插拔时,操作系统也没有接口程序读取usb设备信息并传递给bmc。因此目前主板上,bmc没有对usb端口设备做监控。usb键盘鼠标插入主板系统进行输入操作,usb存储设备插入主板系统进行数据文件的输入输出操作,usb设备移除后,没有任何日志信息,给系统的安全、数据丢失等都带来了潜在的巨大风险。
技术实现要素:
为了解决现有技术中的问题,本发明提供了一种即时记录usb端口操作日志的方法。
本发明提供了一种即时记录usb端口操作日志的方法,包括以下步骤:
s1、初始化配置,创建usb控制器及目录下的端口设备;
s2、usb设备信息收集,侦测usb设备插入或者拔出状态,设置插入标识或者拔出标识,并将侦测到的usb设备的插入标识或者拔出标识发送给bmc;
s3、bmc记录usb端口操作日志,bmc接收usb设备的插入标识或者拔出标识并记录到日志系统。
作为本发明的进一步改进,步骤s1包括以下子步骤:
s11、开始;
s12、创建usb控制器;
s13、配置usb控制器资源;
s14、创建roothub设备;
s15、配置roothub设备地址;
s16、创建usb端口;
s17、配置usb端口;
s18、判断是否全部完成,如果否,则返回步骤s16,如果是,则进入下一步骤;
s19、结束。
作为本发明的进一步改进,在步骤s1中,在系统总线的pci总线下面创建usb控制器,确保usb控制器所在总线目录正确;配置usb控制器的设备地址,配置电源资源、状态信息,声明pci配置空间可以访问;在usb控制器目录下,创建roothub设备;配置roothub设备的地址,配置电源资源、状态信息;在roothub设备目录下,创建usb端口,代表外接的usb设备;配置usb端口的地址、连接能力、用户可见性的程序信息。
作为本发明的进一步改进,在步骤s16中,根据usb控制器支持的usb端口数量,逐个创建usb端口,不同usb端口之间根据端口地址来区别。
作为本发明的进一步改进,步骤s2包括以下子步骤:
s21、开始;
s22、操作系统监控usb端口是否有usb设备插入或者拔出,如果没有usb设备插入或者拔出,则返回步骤s22,如果有usb设备插入或者拔出,则进入下一步骤;
s23、将端口地址存入全局内存空间;
s24、触发软smi中断;
s25、调用中断执行程序;
s26、从全局内存空间读取端口地址;
s27、根据端口地址读取端口状态;
s28、判断usb端口是否有usb设备,如果有,则设置插入标识并进入下下步骤,如果没有,则设置拔出标识并进入下下步骤;
s29、将插入标识或者拔出标识发送给bmc;
s210、smi中断程序退出;
s211、结束。
作为本发明的进一步改进,在步骤s28中的设置插入标识包括以下子步骤:
s2811、设置usb设备插入标志数据;
s2812、配置usb命令数据;
s2813、发送命令获取设备描述符;
s2814、提取厂商、名称、序列号地址;
s2815、发送命令获取字符串描述符;
s2816、按格式整理数据。
作为本发明的进一步改进,在步骤s28中的设置拔出标识包括以下子步骤:
s2821、设置usb设备拔出标志数据;
s2822、按格式整理数据。
作为本发明的进一步改进,在步骤s2中,在进入操作系统以后,操作系统开始监控usb端口是否有usb设备插入或者拔出;如果有usb设备插入或者拔出usb端口,操作系统进入usb控制器目录下,在roothub设备的目录下,在进入插入或者拔出usb设备的usb端口下,将usb端口的详细地址存入全局内存空间;在步骤s24中,向smi中断端口写入软中断数值,触发软smi中断,将控制权移交给bios;调用执行中断执行程序,在中断执行程序中,首先调用服务程序读取全局内存空间地址,获取usb端口的详细地址,根据端口地址读取usb控制器端口的连接状态寄存器,判断是否有设备连接在端口,如果有设备,表明是插入操作,如果没有设备,表明是拔出操作,如果设备拔出操作,将设备拔出的标志设置在通信数据中,将端口的详细地址信息设置在通信数据中,通信数据格式预先与bmc定义完成,如果设备插入操作,将设备插入的标志设置在通信数据中,将端口的详细地址信息设置在通信数据中,接下来,配置获取描述符的usb命令数据,包括usb控制器地址信息、端口地址信息、设备传输速度,分配内存数据空间,然后向usb设备发送获取设备描述符的命令,在设备返回的数据中提取usb设备厂商、产品名称、产品序列号数据地址信息,配置获取字符串的usb命令数据,命令数据包括usb设备厂商、产品名称、产品序列号数据地址信息,向usb设备发送获取字符串的命令,返回的数据中将usb设备厂商、产品名称、产品序列号字符串数据传入到通信数据中,通信数据格式预先与bmc定义完成,插入或者拔出设备的通信数据整理完成后,按照预先和bmc约定的命令,向bmc发送数据,然后退出smi中断程序,将控制权返还给操作系统。
作为本发明的进一步改进,步骤s3包括以下子步骤:
s31、开始;
s32、bmc判断是否有usb端口命令,如果否则返回步骤s32,如果是,则进入下一步骤;
s33、接收usb设备信息数据;
s34、解析数据,如果在位,则将usb设备信息显示在bmc界面,登记usb设备插入日志,如果不在位,则将usb设备信息移除bmc界面,登记usb设备拔出日志;
s35、结束。
作为本发明的进一步改进,在步骤s3中,bmc初始化完成以后,开始监控是否收到usb设备信息的命令,如果收到usb设备信息命令,对传过来的数据按照预先与bios约定好格式进行解析,首先根据插入拔出标志数据,判断usb端口是插入还是拔出操作,如果是拔出操作,usb设备不在位,根据端口的详细地址信息,将对应的设备信息从bmc界面移除,同时将usb设备拔出主板的操作信息记录到日志系统,如果是插入操作,usb设备在位,将厂商、产品名称、序列号数据信息解析出来,连同端口的详细地址信息,显示在bmc界面,同时将usb设备插入主板的操作信息记录到日志系统。
本发明的有益效果是:通过上述方案,在操作系统、bios和bmc配合下,让bmc即时监控usb端口上设备插拔情况,并记录设备的详细信息,实现了usb端口操作日志的即时记录,能有效监控非法用户对系统的修改、数据文件的操作,保障系统安全,保护数据安全。
附图说明
图1是本发明一种即时记录usb端口操作日志的方法的示意图。
图2是本发明一种即时记录usb端口操作日志的方法的初始化配置的流程图。
图3是本发明一种即时记录usb端口操作日志的方法的usb设备信息收集的流程图。
图4是本发明一种即时记录usb端口操作日志的方法的bmc记录usb端口操作日志的流程图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
名词解释如下:
bios:(basicinputoutputsystem)基本输入输出系统,主要用于计算机开机过程中各种硬件设备的初始化和检测。
bmc:基板管理控制器(baseboardmanagementcontroller)。一般内置在主板上,支持行业标准的ipmi规范。bmc提供的功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。
usb:(universalserialbus)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。
smi:(systemmanagementinterrupt)系统管理中断。
如图1所示,一种即时记录usb端口操作日志的方法,包括以下步骤:
s1、初始化配置,创建usb控制器及目录下的端口设备;
步骤s1包括以下子步骤:
s11、开始;
s12、创建usb控制器;
s13、配置usb控制器资源;
s14、创建roothub设备;
s15、配置roothub设备地址;
s16、创建usb端口;
s17、配置usb端口;
s18、判断是否全部完成,如果否,则返回步骤s16,如果是,则进入下一步骤;
s19、结束;
s2、usb设备信息收集,侦测usb设备插入或者拔出状态,设置插入标识或者拔出标识,并将侦测到的usb设备的插入标识或者拔出标识发送给bmc;
步骤s2包括以下子步骤:
s21、开始;
s22、操作系统监控usb端口是否有usb设备插入或者拔出,如果没有usb设备插入或者拔出,则返回步骤s22,如果有usb设备插入或者拔出,则进入下一步骤;
s23、将端口地址存入全局内存空间;
s24、触发软smi中断;
s25、调用中断执行程序;
s26、从全局内存空间读取端口地址;
s27、根据端口地址读取端口状态;
s28、判断usb端口是否有usb设备,如果有,则设置插入标识并进入下下步骤,如果没有,则设置拔出标识并进入下下步骤;
s29、将插入标识或者拔出标识发送给bmc;
s210、smi中断程序退出;
s211、结束;
其中,
在步骤s28中的设置插入标识包括以下子步骤:
s2811、设置usb设备插入标志数据;
s2812、配置usb命令数据;
s2813、发送命令获取设备描述符;
s2814、提取厂商、名称、序列号地址;
s2815、发送命令获取字符串描述符;
s2816、按格式整理数据;
在步骤s28中的设置拔出标识包括以下子步骤:
s2821、设置usb设备拔出标志数据;
s2822、按格式整理数据;
s3、bmc记录usb端口操作日志,bmc接收usb设备的插入标识或者拔出标识并记录到日志系统;
s31、开始;
s32、bmc判断是否有usb端口命令,如果否则返回步骤s32,如果是,则进入下一步骤;
s33、接收usb设备信息数据;
s34、解析数据,如果在位,则将usb设备信息显示在bmc界面,登记usb设备插入日志,如果不在位,则将usb设备信息移除bmc界面,登记usb设备拔出日志;
s35、结束。
本发明提供的一种即时记录usb端口操作日志的方法,针对bmc无法即时监控usb端口设备的功能缺陷,给出了有效的解决办法。在操作系统、bios和bmc配合下,让bmc即时监控usb端口上设备插拔情况,并记录设备的详细信息,能有效监控非法用户对系统的修改、数据文件的操作,保障系统安全,保护数据安全。
如图1所示,设备(即usb端口所在的设备)创建配置模块,创建usb控制器及目录下的端口设备,配置电源、地址、资源等,usb设备信息收集模块负责侦测usb设备插入或者拔出状态,设置插入或者拔出标识,如果是插入情况,需要收集usb设备的详细设备信息,信息传递模块将信息数据按照预先预定的格式进行整理传递给bmc,信息接收处理模块将收到的usb设备详细信息显示在bmc管理界面,如果是拔出硬盘,则移除对应usb设备的详细信息,同时记录usb设备插入或拔出的日志信息。
如图2所示,初始化配置过程具体包括:在系统总线的pci总线下面创建usb控制器设备,确保设备所在总线目录正确,然后配置usb控制器的设备地址,配置电源资源、状态信息,声明pci配置空间可以访问。在usb控制器(usb控制器设备)目录下,创建roothub设备,配置roothub设备的地址,配置电源资源、状态信息,在roothub设备目录下,创建usb端口设备,代表外接的usb设备,配置端口的地址、连接能力、用户可见性等程序信息,根据usb控制器支持的端口设备数量,逐个创建端口设备,不同端口设备之间根据端口地址来区别。
如图3所示,usb设备信息收集过程具体包括:在进入操作系统以后,操作系统开始监控usb端口是否有设备插入拔出,如果没有设备接入拔出,不做任何其他操作动作。如果有usb设备插入或者拔出usb端口,操作系统进入usb控制器设备目录下,再roothub设备在目录下,再进入插入或者拔出设备的usb端口(usb端口设备)下,执行程序,将端口的详细地址存入全局内存空间,向smi中断端口写入软中断数值,触发软smi中断,控制权移交给bios,调用执行中断执行程序。在中断程序中,首先调用服务程序读取全局内存空间地址,获取端口详细地址,根据端口地址读取usb控制器端口的连接状态寄存器,判断是否有设备连接在端口,如果有设备,表明是插入操作,如果没有设备,表明是拔出操作。如果设备拔出操作,将设备拔出的标志设置在通信数据中,将端口的详细地址信息设置在通信数据中,通信数据格式预先与bmc定义完成。如果设备插入操作,将设备插入的标志设置在通信数据中,将端口的详细地址信息设置在通信数据中,接下来,配置获取描述符的usb命令数据,包括usb控制器地址信息、端口地址信息、设备传输速度等,分配内存数据空间,然后向usb设备发送获取设备描述符的命令,在设备返回的数据中提取usb设备厂商、产品名称、产品序列号数据地址信息,配置获取字符串的usb命令数据,命令数据包括usb设备厂商、产品名称、产品序列号数据地址信息,向usb设备发送获取字符串的命令,返回的数据中将usb设备厂商、产品名称、产品序列号字符串数据传入到通信数据中,通信数据格式预先与bmc定义完成。插入或者拔出设备的通信数据整理完成后,按照预先和bmc约定的命令,向bmc发送数据,然后退出smi中断程序,控制权返还给操作系统。
如图4所示,bmc记录usb端口操作日志具体包括:bmc初始化完成以后,开始监控是否收到usb设备信息的命令,如果没有收到,则不做任何操作。如果收到usb设备信息命令,对传过来的数据按照预先与bios约定好格式进行解析,首先根据插入拔出标志数据,判断usb端口是插入还是拔出操作。如果是拔出操作,usb设备不在位,根据端口的详细地址信息,将对应的设备信息从bmc界面移除,同时将usb设备拔出主板的操作信息记录到日志系统。如果是插入操作,usb设备在位,将厂商、产品名称、序列号数据信息解析出来,连同端口的详细地址信息,显示在bmc界面,同时将usb设备插入主板的操作信息记录到日志系统。通过bmc管理界面,可以查看当前系统的设备信息,通过日志系统,用户可以根据时间轴方便查阅usb端口的设备的插拔操作信息。
本发明提供的一种即时记录usb端口操作日志的方法,通过操作系统、bios和bmc之间的配合,实现了即时监控usb端口操作的功能。即时监控usb设备的插入和拔出操作,在bmc界面显示usb设备的详细信息并即时更细。以时间轴为基础,即时记录usb端口设备的插入和拔出操作,方便用户查阅,保障系统安全,保障数据安全。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。