如何在 Linux 服务器中阻止 USB 存储设备?

您所在的位置:网站首页 服务器禁用usb口怎么解除限制 如何在 Linux 服务器中阻止 USB 存储设备?

如何在 Linux 服务器中阻止 USB 存储设备?

2024-07-16 16:50| 来源: 网络整理| 查看: 265

如何在 Linux 服务器中阻止 USB 存储设备?

USB 存储设备在技术驱动的世界中已变得无处不在,但它们也对组织构成了重大的安全威胁。攻击者可以利用这些设备引入恶意软件、窃取敏感数据或未经授权访问网络。

为了保护 Linux 服务器免受此类攻击,管理员可以通过阻止 USB 存储设备来采取主动措施。本文将深入探讨实现这一目标的各种方法,包括每种方法的优点以及实施这些方法的必要步骤。阅读本文后,读者将掌握禁用 USB 存储设备并保护 Linux 服务器安全的知识。

在本文的后续部分中,我们将引导您逐步了解可用于阻止 USB 存储设备的每种方法。

方法一:使用udev规则

Linux 中的 udev 系统就像设备及其文件的管理器。通过使用udev规则,我们可以阻止内核为USB存储设备创建设备文件,从而有效地阻止它们被使用。方法如下:−

第 1 步 − 创建udev规则文件

要创建阻止 USB 存储设备的规则,您需要在“/etc/udev/rules.d/”目录中创建一个新文件。该文件可以命名为任何名称,但在本例中,我们将其命名为“99-block-usb-storage.rules”。您可以使用任何文本编辑器(包括 nano 或 vi)创建该文件。

sudo nano /etc/udev/rules.d/99-block-usb-storage.rules

第 2 步 −  添加 udev 规则

将以下行添加到新创建的文件中 -

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", RUN+="/bin/sh -c 'echo 1 > /sys$env{DEVPATH}/authorized'"

该规则以 if-then 语句的形式编写。这意味着如果子系统是USB,并且操作是“添加”(连接USB存储设备),并且供应商和产品ID与指定值匹配,则执行RUN参数中的命令。在本例中,命令是“echo 1 > /sys$env{DEVPATH}/authorized”,这会阻止内核为设备创建设备节点。

将“****”替换为要阻止的 USB 存储设备的供应商和产品 ID。您可以通过运行“lsusb”命令获取这些 ID。例如,如果要阻止所有供应商 ID“0781”和产品 ID“5567”的 USB 存储设备,则规则应为:

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0781", ATTRS{idProduct}=="5567", RUN+="/bin/sh -c 'echo 1 > /sys$env{DEVPATH}/authorized'"

第 3 步− 重新加载 udev 规则

保存文件后,通过运行重新加载 udev 规则 -

sudo udevadm control --reload-rules sudo udevadm trigger

“udevadm control”命令用于重新加载规则,“udevadm trigger”命令用于将规则重新应用到当前连接的设备。

第 4 步− 测试规则

插入具有规则中指定的供应商和产品 ID 的 USB 存储设备。内核不应该为设备创建设备节点。您可以通过运行“lsblk”命令来确认这一点。

如果设备被成功阻止,它将不会显示在“lsblk”命令返回的块设备列表中。如果设备未被阻止,请确保检查 udev 规则中的供应商和产品 ID 是否与 USB 存储设备的供应商和产品 ID 匹配。

方法二:将USB存储模块列入黑名单

阻止 USB 存储设备的另一种方法是将 USB 存储模块列入黑名单。此方法可防止内核加载负责管理 USB 存储设备的模块。就是这样:

第 1 步 − 识别 USB 存储模块

通过运行以下命令来识别负责 USB 存储设备的模块 -

lsmod | grep usb_storage

此命令将列出所有当前加载的内核模块,“grep”命令将过滤输出,仅显示包含字符串“usb_storage”的模块。输出应如下所示:−

usb_storage 77824 0

此输出显示“usb_storage”模块当前已加载。

第 2 步− 将模块列入黑名单

在“/etc/modprobe.d/”目录中创建一个名为“blacklist-usb-storage.conf”的新文件,并将以下行添加到该文件中 -

blacklist usb_storage

这会将“usb_storage”模块列入黑名单,防止下次系统启动时加载它。

第 3 步 − 更新 initramfs

通过运行以下命令更新 initramfs 以应用更改 -

sudo update-initramfs -u

initramfs(初始 RAM 文件系统)是一个临时文件系统,在启动过程中加载到内存中。通过更新 initramfs,我们确保在启动过程中不会加载列入黑名单的模块。

第 4 步− 重新启动系统

重新启动系统以确保未加载黑名单模块。系统重新启动后,您可以通过再次运行“lsmod”命令来确认“usb_storage”模块未加载:

lsmod | grep usb_storage

如果模块正确列入黑名单,则输出应为空白。

方法 3:使用 USBGuard 实用程序

USBGuard 是一个可用于强制执行 USB 设备策略的工具。它可以根据预定义的策略阻止或允许 USB 设备。以下是使用 USBGuard 阻止 USB 存储设备的方法:

第 1 步 − 安装 USBGuard

第一步是在 Linux 服务器上安装 USBGuard 实用程序。大多数 Linux 发行版的默认存储库中都提供 USBGuard。要安装 USBGuard,请运行下面给出的命令−

sudo apt-get install usbguard

此命令在基于 Debian 的 Linux 发行版上安装 USBGuard 软件包及其依赖项。如果您使用不同的 Linux 发行版,命令可能会有所不同。

第 2 步 − 创建政策

安装USBGuard后,您需要创建一条规则来阻止USB存储设备。 USBGuard 使用规则文件来定义 USB 设备的策略。通过运行以下命令创建新的规则文件−

sudo nano /etc/usbguard/rules.conf

此命令在“/etc/usbguard/”目录中创建一个名为“rules.conf”的新文件。

将以下行添加到文件中以阻止 USB 存储设备 -

# Block USB Storage Devices deny allow id-*:* storage

此策略将拒绝所有 USB 存储设备。

第 3 步 − 启动 USBGuard 服务

您可以通过执行下面给出的命令来启动 USBGuard 服务。

sudo systemctl start usbguard

此命令启动 USBGuard 服务并应用“rules.conf”文件中定义的规则。

第 4 步 −启用USBGuard服务

通过运行以下命令,使 USBGuard 服务在启动时自动启动。

sudo systemctl enable usbguard

此命令启用 USBGuard 服务并确保它在系统启动时自动启动。

第 5 步 −验证 USBGuard 策略

要验证 USBGuard 是否阻止 USB 存储设备,请将 USB 存储设备插入服务器。您应该会收到一条通知,表明该设备已被 USBGuard 阻止。

usbguard-daemon[PID]: Policy violation in device: ... (device blocked)

您还可以通过运行以下命令来查看 USBGuard 服务的状态 −

sudo systemctl status usbguard

此命令显示 USBGuard 服务的状态,包括任何策略违规。

结论

总之,有多种方法可以阻止 Linux 服务器上的 USB 存储设备,例如使用 udev 规则、修改 fstab 文件或利用 USBGuard 实用程序。通过实施这些方法,您可以增强系统的安全性并保护其免受通过 USB 设备引入的潜在威胁。定期检查和更新您的安全措施以确保您的 Linux 服务器保持安全非常重要。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3