USBGuard kullanarak Linux’u yetkisiz USB cihazlarına karşı nasıl korursunuz

Bir ağ üzerinden kullanıcının masaüstü bilgisayarına yetkisiz erişimi önleyen mükemmel bir güvenlik duvarı ve diğer ağ güvenlik ilkeleri uyguladınız. Ancak yine de USB aygıtı erişimini engellemeniz gerekir. Aygıt özniteliklerine dayalı temel izin verme ve engelleme listesi özelliklerini uygulayarak bilgisayarınızı sahte USB aygıtlarına (diğer adıyla BadUSB) karşı korumak için bir Linux masaüstü güvenlik ilkesi yapılandırabiliriz . Örneğin, ne tür USB cihazlarının yetkilendirildiğini ve bir USB cihazının Linux sistemi ile nasıl etkileşime girdiğini tanımlayabilirim. Örneğin, “XYZ” seri numaralı Yubikey’e ve “ABC” seri numaralı USB LTE modeme izin veren bir politika tanımlayabilirim. Diğer tüm USB aygıtlarına erişim varsayılan olarak reddedilir.

Not: Pardus teknolojilerinden Lider, Ahenk ve Havelsanın geliştirdiği Liman uygulamaları ile kurumsal çözümler daha kolay ve kullanışlı olarak mevcuttur.

USBGuard ve diğer yardımcı programları yükleme

Debian/Anadolu Panteri/Pardus

sudo apt install usbguard usbutils udisks2

usbguard hizmetini kontrol etme

Önyükleme sırasında usbguard hizmetini yapılandırmak için systemctl komutunu kullanın veya yeni ilke uyguladığınızda yeniden başlatın. Sözdizimi:

sudo systemctl enable usbguard.service –now

sudo systemctl start usbguard.service

sudo systemctl stop usbguard.service

sudo systemctl restart usbguard.service

sudo systemctl status usbguard.service

 

Mevcut USB cihazlarını listeleme

Sistemdeki USB veri yolları ve bunlara bağlı cihazlar hakkında bilgi görüntülemek için lsusb komutunu veya usb-devices komutunu kullanın. Örneğin:

lsusb

usb-devices | less

Sisteme bağlı USB cihazlarının grafiksel bir özetini mi istiyorsunuz?

 sudo apt installl usbview
 

 sudo usbview

USBGuard kurallarını görüntüleme

Kök kullanıcı olarak /etc/usbguard dizinine bir sonraki cd. Kök kullanıcı olarak oturum açın: Dosyaları listeleyin ve Rules.conf dosyasını arayın:

sudo -i

### VEYA ###
su –

 

ls -l

Kural türleri:

Her USB aygıtı için üç tür hedef kuralı vardır:

  1. allow(izin ver) – USB cihazını yetkilendirin.
  2. block(blok) – USB cihazını yetkilendirmeyin, ancak sistem lsusb komutunu kullanarak cihazı hala görebilir (görünür). Ancak, sistem yöneticisi tarafından yetkilendirilene kadar blokeli kaldığı için kullanıcılar USB cihazını kullanamazlar. (cihazı engelle)
  3. reject(reddet) – USB cihazını yetkilendirmeyin ve cihaz sistem veya kullanıcılar tarafından görülemez. Yeniden görünür hale gelmesi için USB aygıtının yeniden takılması gerekir. (cihazı reddet)

/etc/usbguard/usbguard-daemon.conf’u anlama

usbguard hizmeti, varsayılanını ve seçeneklerini /etc/usbguard/usbguard-daemon.conf adlı bir dosyadan okur: Çıktılar:

sudo less /etc/usbguard/usbguard-daemon.conf

 sudo grep -vE ‘^#|^$’ /etc/usbguard/usbguard-daemon.conf


RuleFile=/etc/usbguard/rules.conf
ImplicitPolicyTarget=block
PresentDevicePolicy=apply-policy
PresentControllerPolicy=keep
InsertedDevicePolicy=apply-policy
AuthorizedDefault=none
RestoreControllerDeviceState=false
DeviceManagerBackend=uevent
IPCAllowedUsers=root
IPCAllowedGroups=root plugdev
IPCAccessControlFiles=/etc/usbguard/IPCAccessControl.d/
DeviceRulesWithPort=false
AuditBackend=FileAudit
AuditFilePath=/var/log/usbguard/usbguard-audit.log

USBGuard arka plan programı yapılandırma dosyası
Seçenekler Tanım
RuleFile=path USBGuard arka plan programı, bu dosyayı, ondan ayarlanan ilke kuralını yüklemek ve IPC arabirimi aracılığıyla alınan yeni kuralları yazmak için kullanacaktır.
ImplicitPolicyTarget=target Politikadaki herhangi bir kuralla eşleşmeyen USB cihazları nasıl ele alınır? Hedef, izin ver, engelle veya reddet (aygıt düğümünü sistemden mantıksal olarak kaldır) olmalıdır.
PresentDevicePolicy=policy Daemon başladığında zaten bağlı olan USB cihazları nasıl tedavi edilir. İlke, izin ver, engelle, reddet, tut (cihazın şu anda bulunduğu durumu koru) veya uygulama ilkesi (mevcut her cihaz için ayarlanan kuralı değerlendir) şeklinde olmalıdır.
PresentControllerPolicy=policy Daemon başladığında zaten bağlı olan USB denetleyici aygıtlarına nasıl davranılır. İzin verme, engelleme, reddetme, tutma veya uygulama ilkelerinden biri.
InsertedDevicePolicy=policy Daemon başladıktan sonra zaten bağlı olan USB cihazları nasıl tedavi edilir. Blok, reddet, uygula-politikalarından biri.
RestoreControllerDeviceState=boolean USBGuard arka plan programı, yeni alt aygıt örneklerinin varsayılan yetkilendirme durumu gibi denetleyici aygıtlarının bazı özniteliklerini değiştirir. Bu ayarı kullanarak, arka plan programının, kapatma sırasında değişiklik yapmadan önce öznitelik değerlerini duruma geri yüklemeye çalışıp çalışmayacağını kontrol edebilirsiniz.
DeviceManagerBackend=backend Hangi cihaz yöneticisi arka uç uygulamasının kullanılacağı. Arka uç, uevent (varsayılan) veya umockdev’den biri olmalıdır.
IPCAllowedUsers=username [username ...] Arka plan programının IPC bağlantılarını kabul edeceği kullanıcı adlarının boşlukla ayrılmış listesi.
IPCAllowedGroups=groupname [groupname ...] Arka plan programının IPC bağlantılarını kabul edeceği, boşlukla ayrılmış grup adları listesi.
IPCAccessControlFiles=path Bu konumdaki dosyalar arka plan programı tarafından IPC erişim denetimi tanım dosyaları olarak yorumlanacaktır. Daha fazla ayrıntı için IPC ERİŞİM KONTROLÜ bölümüne bakın.
DeviceRulesWithPort=boolean “Bağlantı noktası üzerinden” özniteliği dahil olmak üzere cihaza özel kurallar oluşturun.
AuditBackend=backend USBGuard denetim olayları günlüğü arka ucu. Arka uç değeri, FileAudit veya LinuxAudit’ten biri olmalıdır.
AuditFilePath=filepath USBGuard denetim olayları günlük dosyası yolu. AuditBackend, FileAudit olarak ayarlanmışsa gereklidir.

Temel varsayılan ilke oluşturma

Rules.conf dosyası boşsa veya yeni bir politika belirlemeniz gerektiğinde aşağıdaki komutu yürütün.

Hemen hemen tüm Linux dağıtımları kuralsız olarak gönderilir. Bu nedenle dosya boştur. Halihazırda bağlı olan USB aygıtlarını yetkilendiren bir kural [/terminal] ​_seti (ilke) oluşturmak için şunu çalıştırın:

 sudo usbguard generate-policy -X >/etc/usbguard/rules.conf
 

Tümünü yakala ilkesinin ayarlanmasıyla ilgili bir not

Varsayılan son kural, reddetme veya engelleme olmalıdır. Örneğin, reddetme kuralı hedefiyle yeni bir temel ilke oluşturun, şunu çalıştırın: VEYA

  sudo usbguard generate-policy -X -t block >/etc/usbguard/rules.conf
 

 sudo usbguard generate-policy -X -t reject >/etc/usbguard/rules.conf
 

Temel politika olarak reddetme veya engelleme politikası önerilir çünkü:

  • Belirli bir USB cihazının Linux sistemiyle etkileşime girmesine izin veren kalıcı bir USBGuard politikası tanımladı.
  • Başka bir deyişle, şu anda bağlı cihazlar kabul edilir, ancak USBGuard ek USB cihazlarını engeller veya reddeder.

more / cat / less komutunu kullanarak görüntüleyin

  sudo more /home/ogrenci/rules.conf
 

 

USBGuard arka plan programı tarafından kullanılan kural kümesini (politika) listeleyin

Çalıştır:

 sudo usbguard list-rules

Belirli bir kuraldan etkilenen tüm cihazları göstermek ister misiniz? Deneyin: Belirli bir etikete sahip kuralları da gösterebiliriz: USBGuard arka plan programı tarafından tanınan tüm USB aygıtlarını listelemek için:
 sudo usbguard list-rules -d

 sudo usbguard list-rules –show-devices

 sudo usbguard list-rules -l {label_here}

 sudo usbguard list-rules –label

 sudo usbguard list-devices

 sudo usbguard list-devices -a ##serbest usb aygıtları listele ##
 
 sudo usbguard list-devices -b ## engelli aygıtları listele ##

USBGuard’ı Test Etme

USB 4G LTE modemimi takacağım ve varsayılan olarak engellenip engellenmediğine bakacağım ve lsusb’yi çalıştıracağım:

 lsusb

HUAWEI USB’nin USB bağlantı noktasına (Aygıt 009: ID 12d1:157c) takılı olduğunu ve sistem tarafından görülebildiğini gösteren örnek çıktılar:

Ancak bu cihaz USBGuard tarafından engellendi. HUAWEI USB cihazının kullanım için yetkilendirilmediğini belirten çekirdek mesajlarını aşağıdaki gibi göreceksiniz: Varsayılan olarak USBGuard’ın USB modemi engellediğini gösteren örnek çıktılar:

 sudo dmesg

sudo dmesg | grep -i ‘authorized’

Engellenen USB cihazlarını görüntülemek için aşağıdaki komutu kullanabiliriz:

 sudo usbguard list-devices -b

24: block id 12d1:157c serial “0123456789ABCDEF” name “HUAWEI_MOBILE” hash “8tSOgfYNylANtACo0ysV5qRAx5Ht+geWMd+QOVNcK70=” parent-hash “jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=” via-port “1-2” with-interface { 08:06:50 02:0e:00 0a:00:02 0a:00:02 08:06:50 } with-connect-type “hotplug”

Blok hedef politikasının aşağıdaki gibi olduğu durumlarda:

  1. 24– Cihaz numarası
  2. block id 12d1:157c– USB cihaz kimliği
  3. serial "0123456789ABCDEF"– USB cihazı seri numarası
  4. name "HUAWEI_MOBILE"– USB cihaz adı

USB cihaz numarası dinamik olarak oluşturulur ve Linux sisteminizde farklı olacaktır.

USB cihazlarına geçici olarak erişime izin verme

Varsayılan olarak, USBGuard’ın takılı USB aygıtını engellediğini ve sonsuza kadar yasaklı kalacağını biliyoruz. Bu, USB tabanlı saldırıların engellendiği anlamına gelir. Ancak, yasal USB aygıtına erişim vermek istersem ne olur? 24 Cihaz blok kimliği ile cihaz # kullanımına izin vermek için blok politikasını değiştiren aşağıdaki komutu deneyin 12d1:157c: Kuralı aşağıdaki gibi de kullanabilirim:

sudo usbguard allow-device {device_ID}

 sudo usbguard allow-device 24

sudo usbguard allow-device ’12d1:157c serial “0123456789ABCDEF”‘

 sudo usbguard allow-device ’12d1:1506 serial “0123456789ABCDEF”‘

 

Kalıcı kural

Kararı kalıcı hale getirebiliriz. Geçerli politikaya cihaza özel bir izin verme kuralı eklenecek: Kimlik yerine kural: Bir metin düzenleyici kullanarak Rules.conf’a eklenen kurallarım: Aşağıdakileri ekleyin

 sudo usbguard allow-device {device_ID} -p

 sudo usbguard allow-device 24 -p

 sudo usbguard allow-device '12d1:157c serial "0123456789ABCDEF"' -p

sudo usbguard allow-device '12d1:1506 serial "0123456789ABCDEF"' -p

sudo /etc/usbguard/rules.conf

allow id 12d1:157c serial “0123456789ABCDEF” name “HUAWEI_MOBILE” hash “8tSOgfYNylANtACo0ysV5qRAx5Ht+geWMd+QOVNcK70=” parent-hash “jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=” via-port “1-2” with-interface { 08:06:50 02:0e:00 0a:00:02 0a:00:02 08:06:50 } with-connect-type “hotplug”
allow id 12d1:1506 serial “” name “HUAWEI_MOBILE” hash “1lr2516yYIsSGGyDZrcgBBNJPlzzthtHbpH1SN5E/VA=” parent-hash “jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=” via-port “1-2” with-interface { ff:02:12 ff:02:01 ff:02:16 ff:02:16 08:06:50 08:06:50 } with-connect-type “hotplug”

Dosyayı kaydedin ve kapatın. Hizmeti yeniden başlatın:

sudo systemctl restart usbguard.service

Doğrulama

USBGurad, kural eklendikten hemen sonra USB cihazına erişim sağlayacaktır. Artık USB LTE modemi kullanarak internete bağlanabilir veya USD diskini görüntüleyebilirim:

udisksctl status


MODEL REVISION SERIAL DEVICE
————————————————————————–
SAMSUNG MZVLB1T0HBLR-000L7 5M2QEXF7 xyzfooooooooo1 nvme0n1
SAMSUNG MZVLB1T0HBLR-000L7 5M2QEXF7 xyzfooooooooo2 nvme1n1
HUAWEI TF CARD Storage 2.31 HUAWEI_TF_CARD_Storage-0:0 sda
HUAWEI Mass Storage 2.31 HUAWEI_Mass_Storage-0:0 sr0

Artık hata da yok:

Ve evet, nmcli veya ağ yöneticim de bir USB LTE modem kullanarak internete bağlı. İşte ip komutundan ve nmcli komutundan çıktı:

nmcli device status

  nmcli device show ttyUSB0

  ip a s | more

 ip a s wwx001e101f0000

USB cihazını çıkarma

Kural kimliği tarafından tanımlanan bir kuralı kural kümesinden

 

sudo usbguard list-devices -a # list rules #

27: allow id 12d1:1506 serial “” name “HUAWEI_MOBILE” hash “1lr2516yYIsSGGyDZrcgBBNJPlzzthtHbpH1SN5E/VA=” parent-hash “jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=” via-port “1-2” with-interface { ff:02:12 ff:02:01 ff:02:16 ff:02:16 08:06:50 08:06:50 } with-connect-type “hotplug”

Ardından:

usbguard block-device {ID_HERE} -p

 sudo usbguard block-device 27 -p

Yukarıdakiler, ID # 27 olan cihazın yetkisini kaldıracaktır. Ancak kuralı da kullanabiliriz:

usbguard block-device {RULE} -p

 sudo usbguard block-device ’12d1:157c serial “0123456789ABCDEF”‘ -p

 sudo usbguard block-device ’12d1:1506 serial “0123456789ABCDEF”‘ -p

Elbette, yapılandırma dosyasını düzenleyebilirsiniz:

sudo /etc/usbguard/rules.conf

Ardından USB aygıtı girişini kaldırın ve ardından hizmeti yeniden başlatın:

sudo systemctl restart usbguard.service

 sudo systemctl status usbguard.service

Sorun giderme ipuçları

Yeni bir Linux geliştiricisi veya sysadmin iseniz, yapılandırmayı biraz zor bulabilirsiniz. Sorunları görüntülemek ve çözmek için aşağıdaki komutları deneyin:

Sistem USB cihazımı görebilir mi?

 lsusb

sudo usbguard watch

 

USB aygıtı engellendi mi veya izin veriliyor mu?

 sudo usbguard list-rules

 sudo usbguard list-devices -b # engelli#

 sudo usbguard list-devices -a # serbest #

Sistem günlüklerini kontrol edin

sudo dmesg

 sudo dmesg | more

sudo journalctl -b -e

 sudo journalctl -b -e -u usbguard.service

 sudo cat /var/log/usbguard/usbguard-audit.log

 sudo tail -f /var/log/usbguard/usbguard-audit.log

USB ile ilgili diğer araçlar

 nmcli

 nmcli device status # usb ağı #

 ip a s # ağ #

 lsblk # usb aygıtı engelli #

 udisksctl status

Yardım almak için

Çalıştır: İşte gördüğüm şey

 usbguard -h

 usbguard {sub-command} -h

usbguard list-devices -h

Kaynak:

About The Author


sitesinden daha fazla şey keşfedin

Son gönderilerin e-postanıza gönderilmesi için abone olun.

sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et