Usb Eklentisi
Last updated
Last updated
USB eklentisi temel olarak istemci makinelerinin USB türündeki aygıtların engellenmesi, izin verilmesi, hareketlerinin izlenmesi gibi işlemlerde kullanılmaktadır. Aygıtlar için beyaz liste, kara liste gibi istisnalar da tanımlanabilmektedir.
USB eklentisi LDAP kaynağı sunucusu üzerinde kullanılmalıdır. Bu konuda mevcut durumda desteklenen Microsoft Aktif Dizin ve SAMBA Etki Alanı Denetçisine resmi olarak destek verilmektedir. İleriki sürümlerde FreeIPA üzerinde de temel özelliklerin kontrol edilmesi sağlanacaktır.
USB Eklentisini kullanabilmek için Liman'a bu eklentiyi kullanabilecek yetkilerde bir kullanıcı ile giriş yapmak gerekmektedir. Bu ortamın sağlanabilmesi için öncelikle USB Eklentisi Liman'a, daha sonra ise domain sunucusuna eklenir. Eklentiye giriş yapılarak Eklenti Ayarları kısmında Paylaşımlı LDAP Kullanıcısı ve Paylaşımlı LDAP Şifresi bölümlerine LDAP üzerinde yetkili (politika oluşturma-düzenleme yetkisi) kullanıcının bilgileri girilir (örneğin Administrator). Bu sayede USB Eklentisini kullanacak olan yetkisiz kullanıcılar, yetkili bir kişiye ihtiyaç duymadan ve onların credentiallarına erişemeden USB politikaları oluşturma ve düzenleme yetkilerine sahip olurlar.
Eklenti eklendikten ve eklenti ayarları doldurulduktan sonra sırası ile:
LDAP yapısı üzerinde (gruplar eklentisi ile) "USBAdmin" security grubu oluşturulmalı,
Liman üzerinde USB eklentisini yönetecek kullanıcı ve grupları içerecek rol grubu (örnek olarak "USBYöneticileri") oluşturulmalı ve Usb eklentisini yönetecek eklenti, sunucu ve fonksiyon yetkileri verilmeli,
Liman üzerinde LDAPv2 modülü ile USBAdmin grubu USBYöneticileri rol grubuna eklenmeli,
Eklentiyi yönetecek kullanıcılar (kullanıcılar veya gruplar eklentisi ile) USBAdmin grubuna eklenmelidir.
Bu aşamalar haricinde USBAdmin grubunun makineler üzerinde yerel (local) politika düzenleyebilecek yetkilere sahip olması için politikalar ile gerekli birtakım işlemler yapılmalıdır.
Makinelerde lokal politikaların çalışabilmesi için Tayfa politikaları kısmından yerel politikalar aktif hale getirilmelidir.
Yerel politika dosyasının editlenebilmesi için recursive olmayacak şekilde:
/usr/share/tayfa/policies/ dizininde usbadmin grubuna rx izinleri,
/usr/share/tayfa/policies/{00000000-0000-0000-0000-000000000000}/ dizininde usbadmin grubuna rx izinleri,
/usr/share/tayfa/policies/{00000000-0000-0000-0000-000000000000}/L_Machine/ dizininde usbadmin grubuna rwx izinleri,
**/usr/share/tayfa/policies/{00000000-0000-0000-0000-000000000000}/L_Machine/usb.xml **dosyasında usbadmin grubuna rwx izinleri verilmelidir. Politika ayarında "Dosya varlığını kontrol et" seçeneği Hayır olarak seçilmelidir.
**/usr/share/tayfa/policies/{00000000-0000-0000-0000-000000000000}/L_Machine/tayfa.xml **dosyasında usbadmin grubuna rwx izinleri verilmelidir. Politika ayarında "Dosya varlığını kontrol et" seçeneği Hayır olarak seçilmelidir.
Tüm ortam sağlıklı bir biçimde sağlandıktan sonra usbadmin grubundan bir kullanıcı ile Liman'a giriş yapılır. Öncelikle arama kısmından hangi makinede USB ayarları izlemesi ve düzenlemesi yapacaksa o makinenin hostname'i ile arama yapılmalıdır. Arama sonucunda makinenin üzerine tıklanarak makine detayları penceresi açılır.
Yazının son bölümünde yer alan "USB Loglarının Kibana Üzerinden İzlenmesi" bölümünün uygulanabilmesi için yapılandırılmış bir ELK sunucusu gerekmektedir. Ardından kökten oluşturulacak bir politika nesnesi ile USB loglarının gönderilmesi için politika ayarı yapılmalıdır.
Politikanın Rsyslog bölümünde USB loglarını gönderebilmek adına aşağıdaki gibi politika ayarı yapılması gerekir.
Sunucu IP Adresi kısmına ELK sunucusunun IP adresi, Sunucu Portu kısmına ise Logstash ayarlarında yapılandırılacak TCP input seçeneğinin portu girilmelidir. Bu dokümanda bu port 5045 olarak ayarlanacaktır. Diğer ayarlar aynen uygulanmalıdır.
Ayrıca Tayfa yüklü istemcilerin USB loglarını ELK sunucusuna (aslında Logstash'e) gönderebilmesi için yine politika ayarları yapılmalıdır.
Politikada öncelikle Tayfa bölümündeki "Usb hareketlerini izle" seçeneği Açık hale getirilmelidir.
Politika ayarları kaydedildikten sonra makinelerde (otomatik veya elle) uygulanmış olmalıdır.
İlk önce gelen Genel Bakış sekmesinde Son Politika Kontrol Tarihi satırının en sağındaki butona tıklanarak makinenin tekrar politika çekmesi (dolayısıyla en güncel politikalara sahip olması) sağlanabilir.
Ardından Makine Politikaları ve Kullanıcı Politikaları sekmelerinde makinenin çektiği USB politikaları görüntülenebilir.
Eğer ki makinenin çektiği politikalarda hiç USB makine politikası yoksa Makine Politikaları sekmesindeki politika seçim yeri boş gelecektir. Aynı şey Kullanıcı Politikaları sekmesi için de geçerlidir.
Kullanıcı Politikaları sekmesinde makinenin hangi kullanıcı ile politika çektiği de yazmaktadır. Böylelikle hangi kullanıcıya tanımlanan kullanıcı politikalarının da çekilmiş olduğu görüntülenebilir. Bir kullanıcı kendisini kapsamayan (tanımlanmayan) kullanıcı politikalarını çekemeyecektir.
Yerel Politika sekmesinde ise makine üzerinde tekil (yalnızca bu makine için geçerli) politika ayarlamaları yapılabilir. Yerel politikaların en üstte çalışacağı, yani aynı ayar gruplarında yapılan makine ve kullanıcı politikalarını ezeceği unutulmamalıdır.
Yerel politika ayarlandıktan ve kaydedildikten sonra makinenin tekrar politika kontrolü yapması gerektiği unutulmamalıdır. Bunun için yine manuel olarak Genel Bakış sekmesindeki buton kullanılabilir.
USB Eklentisinde ayrıca kök dizinden kullanıcı politikası oluşturularak kullanıcı bazlı USB kuralları düzenlenebilir.
Oluşturulan politikaların isimlerinin başına "lnx-usb-" otomatik olarak eklenecektir. Arama yapıldığında da sadece bu politikalar arasında arama yapılabilir. Oluşturulan politika nesnesine girildiğinde Makine tabı görünmeyeceği gibi yalnızca Kullanıcı politikası düzenlemeleri yapılabilecektir.
Yazının gereksinimler kısmındaki ayarlarla makinelerin log gönderimi yapılandırıldıktan sonra ELK sunucusunda Logstash servisinin 5045 portundan TCP ile log kabul etmesi sağlanmalıdır.
Öncelikle /etc/logstash/conf.d dizinine tcp.conf dosyası oluşturularak aşağıdaki gibi yapılandırılmalıdır.
Daha sonra /etc/logstash/pipelines.yml dosyasına aşağıdaki satırlar eklenerek yukarıda eklediğimiz tcp.conf dosyasının pipeline'a dahil edilmesi sağlanır.
Bu değişiklikler tamamlandıktan sonra systemctl restart logstash
komutu ile servis yeniden başlatılır.
Şu anki durumda istemcilerdeki logların Logstash servisi tarafından yakalanması gerekmektedir. Logların Kibana arayüzünden izlenebilmesi için oluşturduğumuz tcp indexinin Kibana patternlerine eklenmesi gerekmektedir.
Kibana arayüzünde Stack Management ekranına gidilerek Kibana > Index Patterns bölümüne girilir. Create index pattern butonuna tıklanarak tcp indexi eklenir.
Index pattern oluştururken Name kısmına yazılacak ismin Logstash tarafınan yakalanan loglardaki indexlerle eşleşmesi gerekmektedir. Bu sebeple Name kısmına "tcp" (veya "tcp*") yazıldıktan sonra ekranın sağ tarafında aşağıdaki gibi index pattern eşleşmesi görünmüyorsa (veya index pattern eşleşmeme hatası gözüküyorsa) henüz Logstash tcp indexli log yakalamamış veya bu adıma kadar yapılan ayarlar yanlış/eksik yapılmış olabilir. Ayarlar dikkatlice kontrol edildikten sonra makineler üzerinde USB hareketi (takma-çıkarma, yazma, dosya oluşturma vs.) log gönderimi sağlanabilir.
Index başarıyla eklendikten sonra Kibana arayüzünden Discover tabına girilerek oluşturulan tcp indexi seçilir ve loglar görüntülenebilir.
USB loglarındaki event bölümündeki hareketleri açıklamak gerekirse:
USB_INSTALL: USB aygıtının takıldığını ifade eder.
USB_MOUNT: USB aygıtının bilgisayar dosya sistemi üzerine mount edildiğini ifade eder.
USB_REMOVE: USB aygıtının çıkartıldığını ifade eder.
USB_UNMOUNT: USB aygıtının bilgisayar dosya sistemi üzerinden unmount edildiğini ifade eder.
USB_FILE_CREATE: USB aygıtı üzerinde dosya oluşturulduğunu ifade eder.
USB_DIR_CREATE: USB aygıtını üzerinde dizin oluşturulduğunu ifade eder.
USB_MODIFY: USB aygıtı üzerindeki dosyada değişiklik yapıldığını ifade eder.
USB_FILE_MOVED_TO: USB aygıtı üzerinde dosya taşıma işlemi yapıldığını ifade eder.
USB_DELETE: USB aygıtı üzerinde dosya silme işlemi yapıldığını ifade eder.