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:
allow(izin ver) – USB cihazını yetkilendirin.
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)
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:
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:
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:
24– Cihaz numarası
block id 12d1:157c– USB cihaz kimliği
serial "0123456789ABCDEF"– USB cihazı seri numarası
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
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: