linux如何过滤usb信息

linux如何过滤usb信息,第1张

1. 通过udev规则:创建udev规则文件来控制USB设备的访问,例如禁止特定设备或者实施USB驱动程序的自动装载。

2. 使用usbguard:USBGuard是一种开源软件,可以根据标识符和规则来管理USB设备的访问,可以有效防止未知的USB设备被连接到系统。

3. 通过iptables:可以使用iptables来限制USB设备的流量,例如可以设置一组规则来阻止不同类型的USB设备访问系统。

4. 通过usbkill:usbkill是一款开源的Linux安全工具,可以监控特定的USB设备,当检测到特定的USB设备连接到系统时,可以立即停止系统的运行。

文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动程序。文件系统过滤驱动是一种核心模式组件,它作为Windows NT执行体的一部分运行。 文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O *** 作。按不同的种类划分,文件系统过滤驱动可以分成日志记录、系统监测、数据修改或事件预防几类。通常,以文件系统过滤驱动为核心的应用程序有防毒软件、加密程序、分级存储管理系统等。二、文件系统过滤驱动并不是设备驱动 设备驱动是用来控制特定硬件I/O设备的软件组件。例如:DVD存储设备驱动是一个DVD驱动。 相反,文件系统过滤驱动与一个或多个文件系统协同工作来处理文件I/O *** 作。这些 *** 作包括:创建、打开、关闭、枚举文件和目录;获取和设置文件、目录、卷的相关信息;向文件中读取或写入数据。另外,文件系统过滤驱动必须支持文件系统特定的功能,例如缓存、锁定、稀疏文件、磁盘配额、压缩、安全、可恢复性、还原点和卷装载等。 下面两部分详细的阐述了文件系统过滤驱动和设备驱动之间的相似点与不同点。三、安装文件系统过滤驱动对于Windows XP和后续 *** 作系统来说,可以通过INI文件或安装应用程序来安装文件系统过滤驱动(对于Windows 2000和更早的 *** 作系统,过滤驱动通常通过服务控制管理器Service Control Manager来进行安装)。四、初始化文件系统过滤驱动与设备驱动类似,文件系统过滤驱动也使用DriverEntry例程进行初始化工作。在驱动程序加载后,加载驱动相同的组件将通过调用驱动程序的 DriverEntry例程来对驱动程序进行初始化工作。对于文件系统过滤驱动来说,加载和初始化过滤驱动的系统组件为I/O管理器。DriverEntry例程运行于系统线程上下文中,其IRQL = PASSIVE_LEVEL。本例程可分页,详细信息参见MmLockPagableCodeSection。DriverEntry例程定义如下:NTSTATUSDriverEntry (IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)本例程有两个输入参数。第一个参数,DriverObject为系统在文件系统过滤驱动加载时所创建的驱动对象;第二个参数,RegistryPath为包含驱动程序注册键路径的Unicode字符串。文件系统过滤驱动按如下顺序执行DriverEntry例程: 01、创建控制设备对象:文件系统过滤驱动的DriverEntry例程通常以创建控制设备对象作为该例程的起始。创建控制设备对象的目的在于允许应用程序即使在过滤驱动加载到文件系统或卷设备对象之前也能够直接与过滤驱动进行通信。 注意:文件系统也会创建控制设备对象。当文件系统过滤驱动将其自身附加到文件系统之上时(而不是附加到某一特定文件系统卷),过滤驱动同样将其自身附加到文件系统的控制设备对象之上。在FileSpy驱动范例中,控制设备对象按如下方式创建:RtlInitUnicodeString(&nameString, FILESPY_FULLDEVICE_NAME)status = IoCreateDevice(DriverObject,//DriverObject0, //DeviceExtensionSize&nameString, //DeviceNameFILE_DEVICE_DISK_FILE_SYSTEM,//DeviceTypeFILE_DEVICE_SECURE_OPEN, //DeviceCharacteristicsFALSE, //Exclusive&gControlDeviceObject) //DeviceObject RtlInitUnicodeString(&linkString, FILESPY_DOSDEVICE_NAME)status = IoCreateSymbolicLink(&linkString, &nameString) 与文件系统不同,文件系统过滤驱动并不是一定要为其控制设备对象命名。如果传递给DeviceName参数一个非空(Non-NULL)值,该值将作为控制设备对象的名称。接下来,在前面的代码范例中DriverEntry可以调用IoCreateSymbolicLink例程来将该对象的核心模式名称与应用程序可见的用户模式名称关联到一起(同样可以通过调用IoRegisterDeviceInterface来使设备对象对应用程序可见)。注意:由于控制设备对象是唯一不会附加到设备堆栈中的设备对象,因此控制设备对象是唯一的可安全命名的设备对象。由此,是否为文件系统过滤驱动的控制设备对象是否命名是可选的。注意:文件系统的控制设备对象必须命名。过滤设备对象从不命名。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8574844.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存