به منظور محافظت کردن از استخراج دیتای حساس از سرور های لینوکسی توسط کاربرانی که دسترسی فیزیکالی به ماشین ها دارند بهترین کار غیرفعال کردن پشتیبانی از همه دیوایس های USB در کرنل Linux میباشد.
به منظور غیر فعال کردن usb storage ابتدا ما نیاز داریم که بدانیم آیا درایور storage در کرنل لینوکس load شده است و همچنین نام درایور (ماژول) مربوطه برای درایور storage را تشخیص دهید.
دستور lsmod را برای لیست کردن تمام درایورهای کرنلی load شده اجرا کنید و خروجی را از طریق دستور grep با استفاده از جستجوی رشته "usb_storage" فیلتر کنید.
از خروجی دستور lsmod میتوانید مشاهده کنید که ماژول sub_storage توسط ماژول UAS استفاده میشود. سپس هر دو ماژول usb storage را از کرنل unload کنید و با استفاده از دستورات زیر بررسی کنید که آیا عملیات حذف با موفقیت کامل شده است.
سپس محتوای دایرکتوری ماژول های usb storage در حال اجرا روی کرنل را با اجرا کردن دستور زیر لیست کنید و همچنین نام درایور usb-storage را پیدا کنید. معمولا این ماژول باید با نام usb-storage.ko.xz یا usb-storage.ko باشد.
به منظور block کردن ماژول های usb storage از load شدن در kernel دایرکتوری را به مسیر ماژول های usb storage کرنل تغییر دهید و با استفاده از دستورات زیر ماژول usb-storage.ko.xz را به usb-storage.ko.xz.blacklist تغییر نام دهید.
در توزیع های لینوکسی Debian دستورات زیر را برای block کردن ماژول usb-storage از load شدن درون kernel لینوکس اجرا کنید.
اکنون هر زمان که شما یک دیوایس usb را به سیستم وصل کنید kernel نمی تواند درایور دیوایس usb را درون خودش لود کند. برای برگشت به حالت اولیه کافیست که ماژول usb بلاک شده را به نام قدیمی خودش تغییر نام دهیم.
به هر حال این روش تنها برای ماژول های کرنلی در حال اجرا قابل پیاده سازی میباشد. اگر میخواهید ماژول های usb را از همه کرنل های موجود در سیستم block کنید باید وارد مسیر دایرکتوری ورژن هر ماژول کرنل شوید و usb-storage.ko.xz را به usb-storage.ko.xz.blacklist تغییر نام دهید.
به منظور غیر فعال کردن usb storage ابتدا ما نیاز داریم که بدانیم آیا درایور storage در کرنل لینوکس load شده است و همچنین نام درایور (ماژول) مربوطه برای درایور storage را تشخیص دهید.
دستور lsmod را برای لیست کردن تمام درایورهای کرنلی load شده اجرا کنید و خروجی را از طریق دستور grep با استفاده از جستجوی رشته "usb_storage" فیلتر کنید.
کد PHP:
# lsmod | grep usb_storage
از خروجی دستور lsmod میتوانید مشاهده کنید که ماژول sub_storage توسط ماژول UAS استفاده میشود. سپس هر دو ماژول usb storage را از کرنل unload کنید و با استفاده از دستورات زیر بررسی کنید که آیا عملیات حذف با موفقیت کامل شده است.
کد PHP:
# modprobe -r usb_storage
# modprobe -r uas
# lsmod | grep usb
سپس محتوای دایرکتوری ماژول های usb storage در حال اجرا روی کرنل را با اجرا کردن دستور زیر لیست کنید و همچنین نام درایور usb-storage را پیدا کنید. معمولا این ماژول باید با نام usb-storage.ko.xz یا usb-storage.ko باشد.
کد PHP:
# ls /lib/modules/`uname -r`/kernel/drivers/usb/storage/
به منظور block کردن ماژول های usb storage از load شدن در kernel دایرکتوری را به مسیر ماژول های usb storage کرنل تغییر دهید و با استفاده از دستورات زیر ماژول usb-storage.ko.xz را به usb-storage.ko.xz.blacklist تغییر نام دهید.
کد PHP:
# cd /lib/modules/`uname -r`/kernel/drivers/usb/storage/
# ls
# mv usb-storage.ko.xz usb-storage.ko.xz.blacklist
در توزیع های لینوکسی Debian دستورات زیر را برای block کردن ماژول usb-storage از load شدن درون kernel لینوکس اجرا کنید.
کد PHP:
# cd /lib/modules/`uname -r`/kernel/drivers/usb/storage/
# ls
# mv usb-storage.ko usb-storage.ko.blacklist
اکنون هر زمان که شما یک دیوایس usb را به سیستم وصل کنید kernel نمی تواند درایور دیوایس usb را درون خودش لود کند. برای برگشت به حالت اولیه کافیست که ماژول usb بلاک شده را به نام قدیمی خودش تغییر نام دهیم.
کد PHP:
# cd /lib/modules/`uname -r`/kernel/drivers/usb/storage/
# mv usb-storage.ko.xz.blacklist usb-storage.ko.xz
به هر حال این روش تنها برای ماژول های کرنلی در حال اجرا قابل پیاده سازی میباشد. اگر میخواهید ماژول های usb را از همه کرنل های موجود در سیستم block کنید باید وارد مسیر دایرکتوری ورژن هر ماژول کرنل شوید و usb-storage.ko.xz را به usb-storage.ko.xz.blacklist تغییر نام دهید.