如何在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,並且操作是“add”(連線了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
如果模組已正確列入黑名單,則輸出應為空。
方法三:使用USBGuard實用程式
USBGuard是一個可用於實施USB裝置策略的工具。它可以根據預定義的策略阻止或允許USB裝置。以下是使用USBGuard阻止USB儲存裝置的方法:
步驟1 − 安裝USBGuard
第一步是在您的Linux伺服器上安裝USBGuard實用程式。USBGuard可在大多數Linux發行版的預設儲存庫中找到。要安裝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伺服器保持安全。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP