Linux'da Masaüstü Güvenliği

Bu belgede Linux Vakfı’nın sistem yöneticileri için tavsiyelerini bulacaksınız. Vakfın tüm çalışanları uzaktan çalıştıkları için, bu önlemler alınarak olası saldırı riskinin azaltılması ve kullanılan sistemin güvenlik gereksinimlerini karşılaması amaçlanmaktadır. Çalışanlarınız ofisten çalışsa bile, büyük ihtimalle sistemlere erişmek için laptop/masaüstü sistemleri kullanmakta ve acil durumlarda bağlanabilmek için evden erişim yapabilmektedir. Bu durumlarda aşağıdaki önerileri kendi ortamınıza uyarlamanız faydalı olacaktır. Bu belge “aşılmaz bir güvenlik” oluşturma amacında değil, fazla rahatsızlık vermeden sistemdeki belirgin güvenlik problemlerinden kurtulma amacındadır. Bu belgeyi okuyup çok paranoyak veya çok yüzeysel bulabilirsiniz. Zaten bu açıdan güvenlik kavramı, otobanda gitmeye benzer: Sizden yavaş gidenleri aptal, hızlı gidenler de manyak olarak görebilirsiniz. Bu belgede sadece mantıklı sınırlar içerisinde bazı temel güvenlik kurallarının üzerinden geçilmektedir. Her bölüm iki aşamadan oluşmaktadır:

  • Projenizin ihtiyaçlarına uyarlanabilecek bir liste
  • Bu listeyi oluşturan seçeneklerin neden seçildiğini anlatan bazı bilgiler


Güvenlik seviyeleri

Kararlarınızda yardımcı olması amacıyla, listelerde her öğenin bir seviyesi bulunmaktadır:

  • (KRİTİK) öğeler kesinlikle dikkate alınması gerekenlerdir. Uygulanmadığında, bilgisayarın güvenliğinde risk oluşturacak durumlar ortaya çıkacaktır.
  • (ORTA) öğeler güvenliği önemli derecede güçlendirecek, ancak çalışma düzeninizi çok fazla etkiliyor ise vazgeçebileceğiniz maddelerdir.
  • (DÜŞÜK) öğeler genel olarak güvenliği artıracaktır ancak karşılığında zaman kaybı ve alışkanlıkların değişimi gibi değerine sizin karar vermeniz gereken bazı kısıtlamalara sebep olan maddelerdir.
  • (PARANOYAK) ise güvenliğin yanı sıra bilgisayarı kullanım şeklinizi de ciddi derecede etkileyen maddelerdir.

Bunların sadece birer rehber olduğunu tekrar hatırlatalım. Eğer bu seviyeler sizin projenize uygun değilse, uyarlayabilirsiniz.


Doğru donanımı seçmek

Sistem yöneticilerimize özel bir marka veya model dayatması yapmamaktayız, bu yüzden çalışılacak ortamın seçiminde dikkate alınması gereken bazı önerilerimiz bulunmakta.

Liste

Değerlendirmeler

SecureBoot

Hakkındaki tartışmaları bir kenara bırakırsak, SecureBoot çok da karışık yöntemler kullanmadan birçok saldırı türüne karşı (Rootkitler, “Evil Maid”, vb) sistem için bir savunma mekanizması olarak sunulmuştur. Kendini adamış bir Hacker’ı durdurmaya yetmeyecektir, hatta muhtemelen (dizaynının temellerinden kaynaklı) devlet güvenlik birimlerinin bu korumayı aşmak için bildiği yöntemler olabilir, ancak SecureBoot’un bulunması o katmanda hiçbirşey olmamasından iyidir. Alternatif olarak Anti Evil Maid kullanarak daha güvenli bir yapı oluşturabilirsiniz, ancak kurulumu ve yönetimi daha fazla emek ve zaman alacaktır.

Firewire, thunderbolt ve ExpressCard portları

Firewire, dizayn olarak bağlanan tüm aygıtlara sisteminizde tam ve direkt hafıza erişimi sağlayan aptalca bir standarttır (bkz Wikipedia). Thunderbolt ve ExpressCard da aynı suçu işlemektedir ancak Thunderbolt’un güncellemeleri ile bunun önüne geçilmeye çalışılmıştır. Bu sebeplerden bu portların olduğu sistemleri seçmemenizi tavsiye ederiz. Ancak UEFI veya kernel yardımı ile bu portları kullanıma kapatabileceğiniz için kritik bir madde değildir.

TPM Çipi

Trusted Platform Module (TPM) işlemciden ayrı şekilde anakartta bulunan bir şifreleme donanımıdır. Disk şifreleme anahtarları gibi kritik bilgileri tutabilir ancak günlük kullanımda normalde kullanılmamaktadır. Özel bir engel yok ise TPM kullanmanız sisteminizin güvenliği açısından fayda sağlayacaktır.


Açılış öncesi ortam

Burada da işletim sistemi kurulumundan önce yapılması önerilen bazı maddeleri verelim.

Liste

Değerlendirmeler

UEFI ve SecureBoot

UEFI, sıkıntıları olmasına rağmen, BIOS’un sunmadığı birçok özellik sunmaktadır (SecureBoot gibi). Artık çoğu modern sistem UEFI desteği sağlamakta. UEFI yapılandırmasına giriş için güçlü bir parola koyduğunuza emin olun. Bazı üreticiler karakter sınırı koyduğu için, uzun parolalar yerine kısa ama karmaşık parolalar koymanız gerekebilir. Kullanacağınız dağıtıma bağlı olarak, açılışta gerekli SecureBoot anahtarını kullanabilmeniz için bazı ekstra adımlar gerekebilir. Çoğu dağıtım Microsoft ile anlaşarak ürettikleri kernel sürümlerini çoğu üreticinin tanıyacağı şekilde imzalatıp anahtar yükleme işlemlerinden sizi kurtarmakta. Ekstra bir önlem olarak, herhangi birinin açılış ekranına ulaşıp orada kötü amaçlı birşeyler deneyebilmesini engellemek için, açılış parolası da koyabilirsiniz. Bu parolanın, her bilgisayar açılışında kullanacağınız ve başkalarının görmesine müsait olduğu için UEFI yapılandırma parolasından farklı olmasına dikkat edin. Bilgisayarınızı çok kapatıp açıyorsanız, disk şifrelemesi uygulayacağınız için bu adımı atlayabilirsiniz.


Dağıtım seçimi

Muhtemelen Fedora, Debian, Arch veya Ubuntu gibi popüler bir dağıtım veya türevlerini kullanacaksınız. Yine de dikkat etmeniz gereken bazı noktalar var.

Liste

Değerlendirmeler

SELinux, AppArmor ve GrSecurity/PaX

POSIX sistemlerdeki kullanıcı/grup temelli güvenliğe olarak “Zorunlu Denetim Kontrolü” (Mandatory Access Controls/MAC) veya Rol Temelli Erişim Kontrolü (Role-Based Access Controls/RBAC) sistemler bulunmakta. Çoğu dağıtım artık bir MAC/RBAC uygulaması ile birlikte kuruluyor (Ubuntu, Fedora) veya bunların kurulumunu destekliyor (Gentoo, Arch, Debian). Bu sebeple içerisinde MAC/RBAC uygulaması ile gelen bir sistem kullanmanız veya diğer dağıtımlardan birine karşı güçlü duygularınız varsa kurulumun ardından bu yapılandırmayı yapmanız tavsiye edilir. Günümüzde POSIX’in sağladığı kullanıcı/grup bazlı güvenlik modeli yeterli görülemeyeceğinden, MAC/RBAC bir yapıyı desteklemeyen bir dağıtımdan kaçınılmalıdır. SELinux’a göre daha kolay öğrenilebileceğinden dolayı başlangıç için AppArmor ve PaX’ı inceleyebilirsiniz. Dışarıya herhangi bir servis sağlamayan bir çalışma ortamı için GrSecurity/PaX muhtemelen kullanıcı uygulamalarında SELinux’a göre daha fazla güvenlik sunacaktır.

Dağıtımın güvenlik duyuruları

Çoğu dağıtım kullanıcılarına güvenlik güncellemelerini haber verecek bir mekanizmaya sahip. Kullanacağınız dağıtımın bu tür bir mekanizmaya sahip olmaması, sistem yönetimi işlerinde kullanılacak kadar gelişmemiş bir dağıtım olduğu konusunda büyük bir uyarı sayılabilir.

Zamanında ve güvenilir yamalar

Çoğu büyük dağıtım düzenli aralıklarla güncellemeler sunmakta, ancak güvenlikle ilgili olanların zamanında geldiğinden emin olmakta fayda var. Bu sebeple büyük dağıtımları temel alan ve “topluluğun derlediği” dağıtımlardan uzak durmanız, öncelikle bağlı oldukları dağıtımın yamayı uygulamasını bekleyecekleri için, mantıklı olacaktır. Paketlerinde kriptografik onay ve metadata gibi önlemler kullanmayan bir dağıtım bulmanız zor. Yine de sık kullanılan dağıtımlar bile bu tür basit güvenlik önlemlerini geç uygulamaya koyduğu için (evet Arch, senden bahsediyoruz) bu özelliğin kontrol edilmesinde fayda var.

UEFI ve SecureBoot için dağıtım desteği

Dağıtımınızın UEFI ve SecureBoot desteklediğinden emin olun. Kendi kernel sürümleri otomatik olarak imzalanmıyor ve tanınmıyorsa bunu sağlayacak mekanizmaları destekliyor olması önemli. Bazı dağıtımlar UEFI/SecureBoot desteklemese de bu seviyedeki önlemini almakta (örn. Qubes-OS önceden bahsettiğimiz Anti Evil Maid’i kullanmakta). Eğer bir dağıtım böyle bir mekanizma desteklemiyorsa açılış seviyesindeki saldırıları engelleyemeyecektir, bu dağıtımlardan kaçının.

Tüm diski şifreleme

Diskin şifrelenmesi verinin güvenli şekilde saklanması için bir gereksinim olduğundan çoğu dağıtım tarafından desteklenmektedir. Alternatif olarak, daha hızlı ancak daha pahalı olan diskin kendisini şifrelediği sistemler kullanılabilir.


Dağıtım kurulum tavsiyeleri

Tüm dağıtımlar farklıdır, ancak bazı genel tavsiyeler sunalım:

Liste

Değerlendirmeler

Tüm diski şifreleme

Kendisini şifreleyen hard disklere sahip değilseniz kurulumda tüm diski şifrelemeniz önemli. Sadece home dizinini şifrelemek, diğer disklerden veya swap’dan bazı verilerinize kolaylıkla erişilebileceği için yeterli değildir (örn. eski Ubuntu sürümleri). Önerilen starateji LVM aygıtını şifrelemek, bu sayede açılışta bir tane şifre girmeniz yeterli olacaktır. /boot bölümü, önyükleyici LUKS/dm-crypt’ı çalıştırmadan önce kernel’i buradan yükleyeceği için şifresiz kalacaktır. Burada da güvenliği kernel’in kendisinin SecureBoot ile imzalanmış olması sağlayacak. Diğer bir deyişle, sisteminizde şifrelenmiş olmayan tek disk bölümü /boot olmalıdır.

İyi parola seçimi

Modern Linux sistemlerinde parola uzunluğunda ve karakter seçiminde sınırlama yok. Bunun anlamı tek kısıtlama kendi paranoyanız veya umursamazlığınız olacak. Eğer bilgisayarınızı çok kapatıp açıyorsanız, en az iki kez şifre girmeniz gerekecek; ilki LUKS parolası, ikincisi de sisteme giriş için. Bu yüzden çok uzun bir parola yerine, 2-3 kelime uzunluğunda ve karmaşık bir parola seçmeniz daha sağlıklı olacaktır. Sağlam parola örnekleri (evet, boşluk da kullanabilirsiniz): - atlar kangurulari sevmez - mac 4-4 bitti - pardon, benim hatam Tabi ki en az 10-12 karakter uzunluğunda olmak şartıyla sözlüğe bağlı kalmadan bir parola seçimi de yapabilirsiniz. Fiziksel güvenlikten yana bir endişeniz yoksa, çok karmaşık parolalarınızı bir kağıda yazıp masanızdan uzak bir yerde bulundurmanızda bir sakınca olmayacaktır.

Root, kullanıcı şifreleri ve yönetici grubu

LUKS şifreniz ile root parolanızın aynı olabileceğinden bahsetmiştik (bilgisayarınızı güvendiğiniz kişiler ile paylaşıyorsanız ve diskin şifresini çözmelerini ancak root yetkileri almalarını istemiyorsanız buna tabi ki istisnadır). Bilgisayarınızı sizden başka kullanan yoksa, diskin şifresini çözmek ve root yetkilerine geçmek için iki farklı parola tutmanın güvenlik açısından çok fayda getirdiği söylenemez. Genellikle tek kullanıcılı sistemlerde (içlerinden herhangi birine erişim, sistemi ele geçirmeye yeteceği için) UEFI yönetimi, disk şifreleme ve root hesabının parolaları aynı olabilir. Günlük kullanımınız için oluşturduğunuz kullanıcıya da benzer kuvvette ancak farklı bir parola koymanız gerek. Bu kullanıcı yönetim grubunun (dağıtımınıza göre değişir, örn. wheel) üyesi olmalı ve sudo ile yetkili işlemler yapmanıza olanak sağlamalıdır. Diğer bir deyişle, sisteminizin tek kullanıcısı iseniz, hatırlamanız gereken birbirinden farklı ve sağlam 2 parolanız olmalı: Yönetici seviyesi, aşağıdakilerde kullanılmak üzere:

  • UEFI yönetimi
  • Önyükleyici (GRUB)
  • Disk şifreleme (LUKS)
  • Bilgisayar yöneticisi (root kullanıcısı)
    Kullanıcı seviyesi, aşağıdakilerde kullanılmak üzere:

  • Kullanıcı hesabı ve sudo

  • Parola yöneticisi için ana parola

Eğer geçerli bir sebebiniz varsa tabii ki bunların tamamı farklı parolalar olabilir.


Kurulum sonrası güçlendirme

Kurulumun ardından yapacağınız güvenlik güçlendirmeleri büyük oranda dağıtım seçiminize bağlıdır. Bu yüzden bu dökümanda detaylara girmek gereksiz olacak. Yine de bazı tavsiyelerimiz var:

Liste

Değerlendirmeler

Modülleri kapatmak

Firewire ve thunderbolt modüllerini kapatmak için, /etc/modprobe.d/blacklist-dma.conf dosyasına şu satırları ekleyin:

    blacklist firewire-core
    blacklist thunderbolt

Açılışta bu modüller yüklenmeyecektir. Bu portlar sisteminizde olmasa dahi, bu yapılandırmayı yapmanızın bir zararı/faydası dokunmayacaktır.

Root mail

Öntanımlı olarak, root maili sistemde saklanır ve unutulur. /etc/aliases dosyanızda root mailini okuyacağınız bir mail adresine yönlendirdiğinizden emin olun, aksi takdirde önemli sistem uyarılarını ve raporlarını kaçırabilirsiniz:

    # root'un maillerini alacak kisi
    root:          ali@ornek.com

İşlemin ardından newaliases komutu çalıştırın ve gerçekten iletimin sağlandığından emin olmak için test edin.

Güvenlik duvarı, sshd ve diğer servisler

Öntanımlı güvenlik duvarı ayarları kullandığınız dağıtıma göre değişmekte ancak çoğu dağıtım sshd portlarına izin veriyor. Özel olarak bir sebebiniz yoksa sshd servisini pasifleştirmeniz iyi olacaktır.

    systemctl disable sshd.service
    systemctl stop sshd.service

İhtiyacınız olduğunda geçici olarak istediğiniz zaman açabilirsiniz. Genel olarak, sisteminiz ping’lere yanıt vermek dışında herhangi bir servisin portlarını dinlememelidir. Bu da sisteminizin 0-day exploitleri ve ağ seviyesindeki saldırılara karşı korunmasını sağlayacaktır.

Otomatik güncellemeler veya hatırlatmalar

Özel bir sebebiniz yoksa otomatik güncelleştirmeleri açmanız tavsiye edilir. Otomatik güncelleştirmeler sisteminizi kullanılmayacak derecede bozmamaktadır, ancak geçmişte bu tür olaylar yaşandığı için bu korkunun sebebi anlaşılabiliyor. En azından varolan güncellemelerin hatırlatıldığı bir bildirim sistemi bulunması gerekmekte. Çoğu dağıtımda bu tür bir sistem zaten var, yine de dağıtımınızın belgelerine bunun için bir göz gezdirin. Güvenlik güncelleştirmeleri olmasa dahi, beklemedeki güncellemeleri en kısa sürede uygulamanız gerek. Tüm hatalar bir şekilde güvenlik açığı olarak kullanılabilir ve güncel kıyılarda gezip bilinmeyen hatalara sahip olmak genellikle eski ve bilinir hatalarla dolu bir sistemden daha iyidir.

Sistem kayıtlarını izlemek

Sisteminizde olanlara biraz ilgi duymalısınız. Bu sebeple logwatch kurup yapılandırarak size sisteminizde ne olup bittiğini gösteren aktivite raporları göndermesini sağlayın. Kendini adamış bir saldırganı engellemese de, olması faydalı bir önlemdir. Artık çoğu systemd kullanan dağıtımda logwatchın ihtiyaç duyduğu bir syslog servisi kurulmamakta. Bu sebeple rsyslog kurup yapılandırarak, /var/log dizininde logwatch’ın izleyebileceği kayıtlar olduğuna emin olun.

Rkhunter ve IDS

rkhunter ve aide/tripwire gibi bir saldırı tespit sistemi (IDS) kurmanız, nasıl çalıştığından emin değilseniz ve gerekli (veritabanlarını farklı bir ortamda tutmak, kontrolleri güvenilir bir ortamdan yapmak, değişikliklerden sonra hash veritabanlarını güncellemek gibi) önlemleri almayacaksanız pek işe yaramayacaktır. Bu işlemleri yapmayacaksanız, bu araçlar güvenlik getirisi yerine boş yere bir uğraş olarak kalacaktır. rkhunter kurmanızı ve gecelik taramalar ayarlamanızı öneriyoruz. Kurması ve kullanması kolaydır, gelişmiş bir saldırganı tespit etmeye pek yaramasa da, kendi hatalarınızı görmenize yardımcı olur.


Kişisel yedekler

Kişisel yedeklerin önemi genelde felaket durumu olmadan anlaşılmamakta.

Liste

Değerlendirme

Harici bir ortama şifrelenmiş yedekler

Harici bir ortamınızın olması dilediğiniz zaman hızlıca tam yedek alabilmeniz için (yavaş yükleme ile internetteki bir ortama alınan yedeklere göre) gayet kolaylaştırıcı olacaktır. Bu diskin de tamamen LUKS ile şifrelenmiş olması veya yedeklerin şifreli şekilde oluşturulması gerek. Bunun için duplicity veya grafiksel arayüzü olan deja-dup‘u kullanabilirsiniz. Eğer laptopunuz ile dolaşıyorsanız, yedek aldığınız diski evde bırakmanız, laptopunuz çalındığında/kaybolduğunda verilerinizin kaybolmaması için mantıklı bir hareket olacaktır. Diskin tamamını yedeklemiyorsanız, ev dizininizin yanı sıra incelemek amacıyla /etc ve /var/log dizinlerini yedeklemelisiniz. Ayrıca, ev dizininizi hiçbir şekilde, geçici süreliğine de olsa, şifrelenmemiş bir ortama kopyalamayın. Özellikle laptopunuz ile aynı ortamda ise, çalınma durumunda önemli verileriniz ciddi şekilde tehlikeye girecektir.

Uzak ortama şifrelenmiş şekilde veri gönderimi

Bulutta saklama, işvereniniz veya yedek servis sağlayıcıları tarafından sunulan alanlara yapılabilir. En önemli verileriniz için farklı bir duplicity/deja-dup profili oluşturarak düşük boyutlu bir yedek elde edebilirsiniz (internet önbelleği, müzik, indirilenler vs. dahil olmayan). Alternatif olarak “zero-knowledge” bir yedek aracı kullanabilirsiniz, örneğin: SpiderOak


Bilinen iyi yöntemler

Sırada kendinize uyarlayıp kullanmanız önerilen işler var. Kullanışlılığı çok zedelemeden, güvenli bir çalışma ortamı sağlamak için işinize yarayacak.

İnternette gezinme

Web tarayıcının sisteminizdeki saldırıya en açık olan uygulama olduğu konusunda şüphe yok. Sonuçta güvenilmeyen kaynaklardan indirdiği kodu çalıştırıp size göstermek için yazılmış bir araç. Riskleri azaltmak için kendi defans taktikleri var (sandboxing, sanitization vb.) ancak geçmişin deneyimleri bunların aşılabileceğini gösteriyor. Web sitelerinde gezinme işlemini, gün içinde yaptığınız en tehlikeli iş olarak sayabilirsiniz. Zararlı kodların bulaştığı bir web tarayıcısından kurtulmanın farklı yöntemleri mevcut. Ancak asıl işe yarayan yöntemler, bilgisayarda çalışma alışkanlıklarınızı biraz değiştirecek.

1: İki farklı tarayıcı kullanın

Bu yapılması en kolayı, malesef güvenlik açısından da çok kritik avantajlar sağlamıyor. Tüm zararlı kodlar sisteminizin tamamını ele geçirmeye yönelik değil, bazıları tarayıcınız için özel. Diğer sekmelerdeki çerez bilgilerini çalmak, tarayıcının yerel verilerini ele geçirmek, tarayıcıya girilen tüm yazıları görmek gibi hedefleri olan zararlı kodlar da bulunmakta. Bu gibi durumlarda güvenli sitelerde iş için bir tarayıcıyı, riskli ve kişisel sitelerde farklı bir tarayıcıyı kullanarak risk yüzeyini azaltabilirsiniz. Tek eksi tarafı iki tarayıcının birden RAM kullanımı yapacak olması. Bu senaryo için de önerimiz şöyle:

Yüksek güvenlikli ve iş amaçlı siteler için Firefox

İş ile ilgili sitelerde, kaybetmek istemediğiniz çerezlerinizi, giriş bilgilerinizi, oturumlarınızı vs. özenli şekilde koruyacağınız şekilde Firefox kullanın. Bu kategoride seçtiğiniz siteler haricinde Firefox’u kullanmamalısınız! Aşağıdaki Firefox eklentilerini kurmalısınız:

Diğer herşey için Chrome/Chromium

Chromium geliştiricileri güvenlikle ilgili özellikleri eklemede Firefox’dan öndeler (en azından Linux’da). Bu ekstra özellikler de tarayıcınız ve sistem arasında bir katman daha oluşturacaktır. Chromium geliştirilmenin yapıldığı açık kaynaklı proje, Chrome ise Google’ın ondan derlediği bir tarayıcıdır (genel bir paranoya olarak yaptığınız işlerin Google tarafından bilinmesini istemeyebilirsiniz). Bu tarayıcıya da Privacy Badger ve HTTPS Everywhere eklentilerini kurmanızı ve “güvenilmez sitelerin” tarayıcısı olduğunu belli edecek şekilde farklı bir tema seçimi yapmanızı öneririz.

2: Bir tanesi sanal makinede çalışacak şekilde iki tarayıcı kullanın

Bu yaklaşım da yukardakine benzer. Tek farkı Chrome/Chromium’u Spice veya RDP gibi hızlı ve yetenekli (ses ve kopyala/yapıştır destekleyen) bir protokol ile erişebileceğiniz bir sanal makine içerisinde çalıştırmanız. Bu şekilde güvenilmez tarayıcının dışına mükemmel bir güvenlik katmanı oluşturup, zararlı kodlar ile tarayıcınızı ele geçirmesine rağmen, kötü amaçlı bir saldırganın sisteminize ulaşması için önüne bir de sanal makine izolasyonunu koyarsınız. Oldukça kullanışlı bir yapılandırmadır, ancak bolca RAM, hızlı işlemci ve sistem yöneticisinin ilgisine ihtiyaç duyar.

3: Tüm ortamları sanallaştırmayla birbirinden ayırın

Farklı uygulamalarınızın tamamını kendine özel sanal makinede izole olarak çalıştırabilmenizi sağlayan Qubes-OS projesini inceleyin.

Parola yöneticiler

Liste

Değerlendirmeler

Ekibinizin tüm üyelerinin farklı ve sağlam parolalar kullanması kritik bir gereksinim. Yetki hırsızlığı her zaman başınıza gelebilir; zararlı kodlar bulaşan bilgisayarınız, çalınan veritabanı bilgileri, exploitler ve buna benzer birçok yöntemle. Giriş bilgileri, özellikle kritik uygulamalar için her uygulamada farklı olmalı.

Tarayıcı içindeki parola yöneticisini kullanmak

Tarayıcıların yeterli derecede güvenli ve senkronize olabilen kendi parola yöneticileri var. Ancak bu mekanizmanın dezavantajları da bulunuyor:

  1. Farklı tarayıcı uygulamaları ortak olarak aynı veriyi tutamıyor
  2. Parolaları herhangi bir şekilde takımın diğer üyeleriyle paylaşmak mümkün değil

Bu mekanizmaya alternatif olarak internette bulabileceğiniz çok sayıda ucuz veya ücretsiz, farklı tarayıcıları ve işletim sistemlerini ve grup arasında paylaşımı destekleyen parola yöneticileri de var.

Ayrı parola yönetici uygulama kullanmak

Tarayıcı ile uyumlu çalışan parola yöneticilerinin önemli bir dezavantajı, taşıdığı verilerin öneminden dolayı sisteme sızan kişilerin birincil önceliği olması. Eğer bu sizi rahatsız ediyorsa (ki etmeli), web siteleri için tarayıcıyla uyumlu bir parola yöneticiden ayrı olarak riskli verilerin (veritabanı şifreleri, uygulama ve root parolaları vb.) saklanacağı ayrı bir parola yönetici kullanabilirsiniz. Bu tür bir uygulama kullanarak grubunuzla bazı bilgileri de kolaylıkla paylaşabilirsiniz (sunucu root parolaları, ILO parolaları, veritabanı parolaları vb.). İşinize yarayabilecek bazı araçlar:

  • KeePassX, 2. sürümden itibaren ekip paylaşımını geliştirdi
  • Pass, PGP ile metin dosyalarını şifreleyip, git uyumlu çalışıyor
  • Django-Pstore, yöneticiler arasında paylaşımı GPG ile yapıyor
  • Hiera-Eyaml, zaten Puppet kullanıyorsanız şifrelenmiş verileriniz ile birlikte gerekli parolalarınızı da saklayabileceğiniz bir ortam sunuyor

SSH ve PGP anahtarlarının güvenliği

PGP ve SSH gibi kişisel şifreleme anahtarları, saldırganların bilgisayarınızda almak isteyeceği şeylerin başında gelir. Bu bilgiler ile sizi taklit ederek, diğer yöneticilere yakalanmadan firma sunucularında dolaşabilirler. Bu anahtarları korumak için bazı ekstra önlemler almanız gerekmekte.

Checklist

Değerlendirmeler

Anahtar hırsızlığını önlemek için en iyi yöntem anahtarı smartcard aygıtında tutmak ve asla bilgisayarınıza kopyalamamaktır. OpenPGP uyumlu cihazlar üreten çok sayıda üretici var:

  • Kernel Concepts, OpenPGP uyumlu smartcards ve usb okuyucular üretmekte.
  • Yubikey NEO, OpenPGP smartcard özelliğinin yanı sıra birçok yeni havalı özelliği de var (U2F, PIV, HOTP vs.).

Master PGP anahtarının da bilgisayarınızda tutulmaması ve sadece alt anahtarları (subkey) kullanmanız gerek. Master anahtar yalnızca başkasının anahtarlarını imzalarken veya yeni alt anahtarlar üretirken (yani çok sık yapılmayan işlemlerde) lazım olacaktır. Debian’ın alt anahtarlar rehberindeki master anahtarı taşıma ve alt anahtar oluşturma bilgilerini inceleyebilirsiniz. Ardından gnupg uygulamanızı SSH için yapılandırıp, smartcard’daki PGP auth anahtarınızı SSH anahtarı gibi kullanabilirsiniz. Bununla ilgili detaylı bir rehber yayınladık. Eğer bu kadar ileri gitme niyetiniz yoksa, en azından PGP ve SSH özel anahtarlarınız için güçlü parolalar kullandığınıza emin olun.

Masaüstünüzde SELinux

Eğer (Fedora gibi) SELinux ile gelen bir dağıtım kullanıyorsanız, güvenliği artıracak bazı tavsiyelerimiz var:

Liste

Değerlendirmeler

SELinux, POSIX izin yapısına bir Zorunlu Erişim Kontrolü (Mandatory Access Controls/MAC) eklentisidir. Uzun süredir geliştirilmekte ve gayet güvenilir bir yapıdır. Yine de çoğu sistem yönetici halen alıştığı şeyi tekrarlamakta: “kapat gitsin”. SELinux’un masaüstü uygulamalarında çok bir avantajı olmayacağını belirtmiştik. Bu, fazla yolunuza çıkmayacağı anlamına gelir ve aslında açık bırakmanız için bir sebeptir. Arkaplanda çalışan ve güvenlik açığı bulunduran bir servisi ele geçiren bir saldırganın root seviyesinde haklar almasını engelleyecektir. Tavsiyemiz açık ve enforcing duruma tutulmasıdır.

Asla setenforce 0 yapmayın

Bazen geçici olarak da olsa setenforce 0 komutuyla SELinux’u permissive (izin veren) moda geçirip kullanmak isteyebilirsiniz, ancak yapmamaya çalışın. Bu komut sisteminizde SELinux’u kapatacaktır. Yapmanız gereken şey özellikle size sorun çıkaran uygulamayı veya servisin SELinux ile yaşadığı sıkıntıyı gidermek. setenforce 0 yerine semanage permissive -a [domainismi_t] kullanarak ilgili domain’i permissive moda geçirmek. Öncelikle ausearch ile hangi domain’in soruna yol açtığını bulun:

    ausearch -ts recent -m avc

ardından scontext= (kaynak SELinux içeriği) satırına bakın:

    scontext=staff_u:staff_r:gpg_pinentry_t:s0-s0:c0.c1023
                             ^^^^^^^^^^^^^^

Burada izin verilmeyen domain olarak gpg_pinentry_t görünüyor. Eğer sorunu incelemek için permissive moduna geçirmek isterseniz:

    semange permissive -a gpg_pinentry_t

komutuyla halledebilirsiniz. Bu sayede gerekli diğer özellikleri (AVC) toplayarak audit2allow yardımı ile yerel SELinux politikasını düzenleyebilirsiniz. Eğer ausearch ile başka AVC reddi görmüyorsanız artık domain’i permissive’den alabilirsiniz:

    semanage permissive -d gpg_pinentry_t
Bilgisayarınızı SELinux’un staff_r rolü ile kullanın

SELinux bazı hazır tanımlı roller ile gelir ve bunlar sayesinde hangi yetkinin alınıp hangilerinin yasaklanacağını belirler. Bir yönetici olarak staff_r rolünü kullanmanız gerekmekte. Bu sayede sudo kullanmadığınızda birçok sistem yapılandırmasına ve önemli dosyaya erişiminizi kısıtlayabilecektir. Öntanımlı olarak, hesaplar unconfined_r rolünde tanımlanır ve uygulamalarınız kısıtlama olmadan (ya da çok az kısıtlama) ile çalışır. Rol değişimi yaparak staff_r rolüne geçişiniz için aşağıdaki komutu çalıştırmanız yeterli:

    usermod -Z staff_u [kullanıcıadı]

Oturumunuzu kapatıp tekrar açtığınızda yeni rolünüzü id -Z komutuyla görebilirsiniz:

    staff_u:staff_r:staff_t:s0-s0:c0.c1023

sudo kullanırken de, ekstra bir parametre ile SELinux’a “sysadmin” rolüne geçtiğinizi hatırlatmalısınız:

    sudo -i -r sysadm_r

Ardından id -Z ile baktığınızda göreceğiniz rol:

    staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023

UYARI: bu geçişi yapmadan önce ausearch ve audit2allow komutlarını iyi öğrenmeniz gerek. Çünkü bazı uygulamalarınızın staff_r rolü ile çalışmama olasılığı var. Bu belge yazıldığı sırada öntanımlı staff_r rollerinde düzenleme yapmadığınızda çalışamayan uygulamaların bazıları şunlar:

  • Chrome/Chromium
  • Skype
  • VirtualBox

unconfined_r rolüne geri dönmek isterseniz, gerekli komut:

    usermod -Z unconfined_u [kullanıcıadı]

Ardından oturumunuzu kapatıp açarak kısıtlamasız alana girebilirsiniz.


Daha fazla kaynak

Bilişim güvenliği dipsiz bir kuyudur. Daha derine gitmek veya dağıtımınızdaki özellikleri daha da tanımak isterseniz aşağıdaki bağlantıları inceleyebilirsiniz:

Lisans

Bu çalışma ve çevirisinin lisans bilgisi: Creative Commons Attribution-ShareAlike 4.0 International License. Yazının orijinalinin linki: https://github.com/lfit/itpol/blob/master/linux-workstation-security.md