ben yaklaşık 6 aydır bu qubes os denilen, insanı delirten sistemle cebelleşiyorum, artık yolun sonuna geldim sanırım ama gitmeden önce şu 6 aylık işkenceyi ve sistemin teknik detaylarını bi dökeyim istedim ki benim gibi bu işe girecekler neyle karşılaşacağını bilsin.
qubes’ın olayı aslında bildiğiniz linux dağıtımlarından falan tamamen farklı, altta xen dediğimiz o bare-metal hipervizör var, işte bütün herşey orada başlıyor. xen, klasik bir kernel gibi her işe burnunu sokan devasa bir yapı değil, sadece işlemciyi, ram’i ve i/o cihazlarını sanal makinelere (qubes dünyasında bunlara domain diyoruz) paylaştırarak çalışıyor. bu mimarinin en büyük artısı, saldırı yüzeyini minimuma indirmesi. monolitik bir linux çekirdeğinde binlerce sürücü ve milyonlarca satır kod varken, xen çok daha sade ve sadece izolasyona odaklanan bir taban sunuyor. tabi bu güvenliğin bir bedeli var o da donanım desteği. işlemcinizdeki intel vt-x ve vt-d (ya da amd tarafındaki karşılıkları) bu sistemin çalışması için opsiyonel değil, zorunlu. özellikle vt-d mevzusu çok kritik çünkü pci passthrough yaparak ağ kartını sys-net’e, usb kontrolcüsünü de sys-usb’ye hapsediyoruz. bu sayede bir saldırgan senin ağ kartındaki bir açıktan sızsa bile, sadece o küçücük sys-net qube’unun içinde hapis kalıyor, dma (direct memory access) ile ram’in geri kalanına sıçrayıp sistemi komple ele geçiremiyor.

sistemin içindeki tüm bu izole domainler aslında birbirine qrexec denilen muazzam bir protokolle bağlı. bu protokol, xen’in vchan kütüphanesi üzerine inşa edilmiş ve qube’lar arası güvenli rpc (remote procedure call) yapmanı sağlıyor. mesela bir dosyayı bir qube’dan diğerine kopyalamak istediğinde veya pano içeriğini (clipboard) paylaşırken qrexec devreye giriyor. qubes’ın en sevdiğim yanlarından biri de bu iletişimdeki politika motoru, dom0 üzerinde çalışan bu motor her bir istekte “bu qube şu hizmeti talep ediyor, izin veriyor musun?” diye soruyor. genel olarak sistem içindeki bu geçiş işlemleri, linux tabanlı qube’lar arasında (fedora ve debian şablonları gibi) aslında gayet okey çalışıyor. panoyu kopyalıyorsun, hedef qube’da ctrl+shift+v yapıyorsun ve saniyesinde geçiyor, teknik olarak bu akış muazzam kurgulanmış.
ancak işin içine ne zaman windows ve o meşhur qwt (qubes windows tools) girse, işte o zaman bütün o teknik güzellik yerini bir kabusa bırakıyor. çalıştığım firmalar yüzünden o excel ve word dosyalarına mahkumum, sunumları falan ordan hazırlamam gerekiyor. hvm (hardware-assisted virtual machine) olarak bi windows kurdum kurmasına ama qwt şu an 2021 itibariyle o kadar beta aşamasında ve o kadar stabiliteden uzak ki anlatamam. pencereler arası dosya sürüklemek veya copy-paste yapmak qrexec üzerinden yürüyor evet, ama windows tarafındaki o xen pci aygıt sürücüleri sürekli sapıtıyor. gpu passthrough düzgün çalışmadığı için video driverları da tam performans veremiyor, pencereyi sürüklerken ekran yırtılıyor, slayt hazırlarken mouse bi saniye geriden geliyor. qrexec’in o güvenli yapısı windows tarafında hantallaşıyor, bazen dom0’dan gelen onay kutucuğu windows donduğu için yanıt bile vermiyor, resmen sistemle kavga ediyorsun.
bir de şu bluetooth mevzusu var ki tam evlerden ırak, 2021 yılındayız ama ben masada hala kablolu kulaklıkla oturuyorum. qubes geliştiricileri “bluetooth stack’i çok karmaşık ve exploit dolu, güvenli değil” diyerek bu protokolü sistemden dışlıyorlar. teknik olarak haklılar ama hayat da devam ediyor abi. bir bluetooth usb dongle’ını direkt bir qube’a passthrough yapabiliyorsun ama ses aktarımı (audio virtualization) o kadar verimsiz ki ses ya gelmiyor ya da 2 saniye gecikmeli geliyor. müzik dinleyemediğin, toplantıya bluetooth kulaklıkla giremediğin bir sistemde 6 ay iyi dayanmışım valla.
templatevm ve appvm mantığı harika, bir qube’da malware mi var? kapatıyorsun, root filesystem (şablonun kopyası) siliniyor, bir sonraki açılışta tertemiz şablonla başlıyorsun. ama bu teknik mükemmellik, günlük kullanım konforunu sıfırlayınca bir noktadan sonra “yeter” diyorsun.
sonuç olarak beyler, bu kadar kasmaya, bu kadar donanım uyumsuzluğuyla boğuşmaya şimdilik gücüm yetmiyor. 6 aydır her gün yeni bir config dosyası düzenlemekten, qwt’nin buglarıyla uğraşmaktan kod yazamaz hale geldim. sistemin güvenliğine diyecek bir şeyim yok, harbi kale inşa etmişler ama ben bu kalede hapis kalmak istemiyorum. bu yüzden qubes’ı şimdilik rafa kaldırıyorum ve tekrar ana makinede windows kullanmaya devam edeceğim. en azından kulaklığımı takıp müziğimi dinleyerek, kasmadan donmadan slaytlarımı hazırlayıp işime gücüme bakicam. ileride, şu ekran kartı (sys-gpu) ve bluetooth mevzularını adam akıllı çözerlerse o zaman tekrar bakarız, şimdilik benden bu kadar, klasik dev ortamına geri dönüş başlıyor.