Anasayfa Makale FreeBSD Nasıl Kurulur?

FreeBSD Nasıl Kurulur?

freebsd

BSD çekirdeği denildiğinde ilk akla gelen dağıtımlardan FreeBSD normal bilgisayarlarımızdan sunuculara, oradan da PlayStation gibi oyun konsollarına kadar oldukça geniş yelpazede kullanılan işletim sistemlerinden biri. Güçlü network yapısı, stabilitesi ve problemsiz yapısıyla kurumsal yapılarda oldukça tercih ediliyor. macOS temeli olan Darwin çekirdeğinde ve Windows’un TCP/IP altyapısında bizzat BSD kodlarından yararlandığını biliyor muydunuz?

Tarihçesine baktığımızda da ilk olarak Kaliforniya Berkeley Üniversitesi tarafından AT&T’nin orijinal UNIX kaynak kodları kullanılarak geliştirilen BSD, daha sonraları kendi başına bir sistem çekirdeği olacak kadar gelişim göstermişti. Açık kaynak ve özgür olması nedeniyle ironik bir şekilde AT&T’nin BSD geliştiricilerine geliştiricilerin kendi özgün kodlarını göstererek dava açtığı görülmüştü.

Çoğu kez Linux ile karşılaştırılmasına karşın, tamamen ayrı bir yapıya sahip. Kullandığı C kütüphaneleri, çeşitli yardımcı araçların neredeyse hepsi GNU yerine Berkeley tarafından geliştirilmiş yazılımlardan oluşuyor. Bu çekirdek söz konusu olduğundaysa genellikle birkaç dağıtımdan söz edilir. Bunlardan en bilinenleri NetBSD ve FreeBSD’dir. NetBSD, 1993 yılında ilk kullanıma sunulan dağıtımlardan biri olması ve 57 farklı mimariye destek vermesiyle bilinirken, gelişmişlik ve kullanıcı dostu olma yönünden bakıldığında FreeBSD daha önde geliyor denebilir.

Biz de bu yazımızda FreeBSD nasıl kurulur detaylıca değinmeye çalışacağız. Zira fark ettik ki, FreeBSD’nin son kullanıcının kullanabileceği şekilde nasıl kurulacağını anlatan Türkçe kaynaklar ya yok ya da olanlar da normal kullanıcı için olmaktan ziyade farklı amaçlara uygun şekilde yazılmış. Eğer yazımızın başından sonuna kadar detaylıca okursanız kurulum ve temel kullanım hakkında birçok bilgiye sahip olacaksınız. Lafı çok uzatmadan başlayalım.

ISO Dosyalarının İndirilmesi

Kurulum yapabilmemiz için ilk önce FreeBSD’nin resmi web adresinden bize uygun olan ISO dosyasını edinmemiz gerekiyor. Bunun için ilgili web sitesine gidiyoruz ve “Download FreeBSD” veya “Get FreeBSD” yazan butonlardan birine tıklıyoruz. Her ikisi de bizi aynı sayfaya götürüyor.

Burada en bize İngilizce olarak kısa kısa birtakım bilgiler verirken, biraz aşağısında indireceğimiz dosyaya ait sürüm bilgisi ve işlemci mimarilerini görüyoruz. Sadece hazır kurulmuş sanal makineleri deneyimlemek isteyenler “Virtual Machine Images” seçeneğinden çeşitli tiplerde disk kalıpları edinebilirken, Raspberry Pi gibi cihazlara kurulum yapacaklar “SD Card Images” kısmından uygun mimariyi seçmeliler.

Biz normal bilgisayarımıza kurulum yapacağımız için “Installer Images” bölümünde yer alan ISO dosyalarına göz atacağız. Burada 10 adet birbirinden farklı işlemci mimarisine değiniliyor fakat bizim evlerimizde yer alan günümüz bilgisayarlarında sadece 3’ünü kullanıyoruz. Bunlar; “amd64”, “i386” ve “armv7” diyebiliriz. i386 yani Intel 386 mimarisi 32-biti, AMD64 masaüstü tarafındaki 64-biti (x86-x64), armv7 ise ARM mimarisine uyumlu olduğunu gösteriyor. Muhtemelen yeni nesil bir Apple Mac cihaz kullanmıyorsanız ve 2003 sonrası bir işlemciye sahipseniz bilgisayarınız 64-bit desteklidir. Bu nedenle bizim kuracağımız sistem “amd64” olacak. Buna tıklayalım ve devam edelim.

freebsd

Sayfada ISO, “.XZ” ve CHECKSUM formatında farklı farklı dosyalar olduğunu görüyoruz. Bizi ilgilendiren ise sadece “.iso” uzantılı olanlar. Bu sebeple karşımızda ise “disc1” ile “dvd1” olmak üzere iki seçenek var. “disc1” bir sistemin kurulması için en temel paketleri içerirken, “dvd1” için biraz daha internete bağlı olması pek mümkün olmayan ortamlara uygun olarak tasarlanmış çok sayıda paket içeren sürüm diyebiliriz. “dvd1” kalıbına ihtiyacımız yok, “disc1” sistemi kurmak ve kullanmak için gayet yeterli bir imaj. Seçelim ve indirmeyi başlatalım.

FreeBSD ISO seçimiİndirme bittikten sonra USB belleğimize yazdırıp kuruluma geçmeden hemen öncesinde dosya bütünlüğünü doğrulamamız gerekiyor. Bunu her dosya için benzersiz olan “hash” değerlerini karşılaştırarak yapacağız. Yine aynı sayfaya gelip “CHECKSUM.SHA256” ile başlayan dosyaya tıklayıp indiriyoruz.

FreeBSD hash kontrolüNormal şartlarda bir Linux sistem kullanıyorsanız bu dosya ile direkt ISO’nuzun bütünlüğünü kontrol edebilirsiniz. Ama ben şu anda Windows kullandığım için ilgili “checksum” dosyasını not defteri ile açıyorum ve aradığım orijinal hash değerlerine ulaşıyorum.

Daha sonrasında ise tek yapmam gereken ISO dosyasına sağ tık yapıp 7-Zip CRC SHA menüsünden SHA256 değerini hesaplatıp iki değeri karşılaştırmak. Not defterindeki değer ile 7-Zip’in gösterdiği aynıysa dosyamız düzgün bir şekilde inmiş demektir. Artık USB belleğimize yazdırıp kurulum aşamasına geçebiliriz.

FreeBSD SHA256 ile bütünlük kontrolü

FreeBSD Kurulum ISO’sunu USB Belleğe Yazdırma

Eski tip DVD veya USB yoluyla, hangisi olduğu fark etmeksizin bir işletim sistemi kuracağımız zaman, edindiğimiz ISO dosyasını “bootable” yani “önyüklenebilir” bir şekilde yazdırmamız gerekiyor. Aksi halde bilgisayarımız herhangi bir önyüklenebilir ortamdan başlamadığı için kurulumu gerçekleştirmemiz mümkün olmuyor.

BSD ve birçok Linux dağıtımı söz konusu olduğunda belleğe yazma işlemi için benim önerdiğim tek yazılım Win32DiskImager diyebilirim. Daha önce Rufus ve BalenaEtcher ile işlem yaptığım birçok Linux ve BSD kurulum belleğinin hatalı yazım yaptığını gördüğümden, Windows harici imajları yazdırmak için pek tavsiye etmiyorum. Sizler daha önce deneyimlediğiniz farklı programlar varsa onları da tercih edebilirsiniz. Bu sebeple anlatımı Win32DiskImager üzerinden yaptım.

Win32DiskImager’i resmi olarak yayınlandığı SourceForge adresinden edinip kurulumu gerçekleştirelim.

Kurulum sonrası program açılırsa kapatın. USB belleğinizi henüz bağlamadıysanız bilgisayara takın ve tekrar çalıştırın. Win32DiskImager her ne kadar takılı belleği kendisi algılayıp işlemin gerçekleşeceği sürücüye ait uygun harfi seçse de, başka disklerinizin silinme ihtimaline karşın yine de kontrol etmenizde fayda var.

Her şeyden emin olduğumuzda ISO dosyamızı yazdırmak için klasör işaretine basıyoruz. Karşımıza her zamanki dosya seçme ekranı geliyor fakat burada sadece “.img” uzantılıların işaretlenebildiğini görüyoruz. Oysa bizim işimiz ISO ile, yani işaretlediğimiz kısmı “*.*” olarak değiştirip kalıbımızı seçiyoruz. Merak etmeyin, Win32DiskImager sağlıklı bir şekilde ISO yazma yeteneğine sahip.

FreeBSD, ISO dosyasını seçme

Artık tek yapmamız gereken şey Write butonuna basarak belleğe yazma işlemini başlatmak. USB bellekteki bütün verilerin silineceğine dair verilen uyarıyı da onayladıktan sonra işlem bitene kadar ne bilgisayara, ne de USB belleğe dokunmadan beklemeniz en iyisi olacaktır. Süre bilgisayarınızın ve belleğinizin hızına göre değişiklik gösterebilir. USB 3.0 ile ortalama 1-2 dakika sürecektir.

Artık kuruluma tamamen hazırız.

USB Bellekten Boot ve Kurulum Aşamaları

USB belleğimizi yazdırdıktan sonra çıkartalım ve akabinde bilgisayarımızı kapatalım. Tekrar açmadan önce hazırladığımız flash belleğin ve kablosuz bağlantı kullanıyorsak kurulum esnasında büyük ihtimalle Wi-Fi kartımız tanınmayacağı için internet kablosunun takılı olduğundan emin olalım.

Kuruluma başlayabilmek için bu aşamada aynı Windows kurulumu yapar gibi hazırladığımız medyadan “boot” etmemiz gerekiyor. Bunun için boot menüsüne erişmeniz gerekiyor. Menüye erişmek için basmanız gereken tuşlar ise anakart üreticisine ve modeline göre değişebilmekte. Sizler kendi bilgisayarınızda hangi tuşu kullanmanız gerektiğini bilmiyorsanız hazırlamış olduğumuz “Boot Menüsü Kısayol Tuşları Veritabanı” konumuza göz atabilirsiniz.

Ben işlemleri sanal makine üzerinden gerçekleştirmeyi tercih ettim, zira gerçek bilgisayarımda kurulum yaparken pek kaliteli görüntüler çekmem haliyle mümkün değil. Siz kurulum yaparken de herhangi bir farklılık olmayacaktır.

Boot işlemini gerçekleştirdikten sonra aşağıdaki gibi bir ekranla karşılaşmanız gerekiyor. Burada sabırla 10 saniye boyunca bekleyelim. Kendisi kurulum ekranına bizi yönlendirecek.

FreeBSD kurulum boot ekranı

Nihayet yükleyicideyiz, sağ-sol veya TAB tuşlarını kullanarak Install‘a gelip “ENTER” ile devam edelim.

Bu ekranda bize klavye düzenimizi seçmemiz gerektiğini söylüyor. Hangi dil ve türden klavye kullanıyorsak aşağı-yukarı ok tuşlarıyla o dile gelip “SPACE” yani “boşluk” tuşuyla işaretlemeyi yapalım ve “ENTER” diyelim. Ben Türkçe Q klavye kullandığım için bunu seçiyorum.

Klavye düzenini seçtikten sonra seçimin başarılı olup olmadığından emin olmak için test etmemiz gerekiyor. “ENTER” diyerek devam edelim ve deneyelim. Bastığımız tuşlar düzgün bir şekilde yazılıyorsa problem yok demektir. Fakat bazı Türkçe karakterler ? şeklinde gözükebilmekte.

FreeBSD klavye seçimi

Bizi tekrardan klavye düzeni menüsüne attı, en üstteki Continue with tr.kbd keymap seçeneğine gelip “ENTER” diyoruz. Tabi öncesinde alt taraftaki seçim menüsünün Select kısmında olduğundan emin olun. Cancel yazan seçenek seçimlerimizi iptal eder. Bu kısımda “TAB” ile gezinebilirsiniz.”

Kurulum bize makinemizin ağda tanımlanabilmesi için bir hostname yazmamız gerektiğini söylüyor. Eğer kurumsal ortamdaysanız ve bir domaine dahilseniz buraya bilişim yöneticinizin söylediğini, sıradan ev ortamındaysanız da ileride kullanıcı hesabı için belirleyeceğiniz isim hariç istediğiniz herhangi bir şey yazabilirsiniz. Ben akilgundogan şeklinde adımı soyadımı yazdım.

Belki de FreeBSD kurarken en çok dikkat etmemiz gereken yerlerden birine geldik. Karşımızda 7 adet seçenek bulunuyor. Bunların ne olduğunu kısaca açıklayacak olursak;

  • base-dbg: Normal şartlar altında “base” sistemi oluşturan yapıdır diyebiliriz. Sonunda eklenen “-dbg” ibaresi ise debugging yapacaksanız bu seçeneği de kurmanız gerektiğini gösteriyor. Bizim şu an böyle bir şeye ihtiyacımız yok, zaten varsayılan olarak “base”i kurmama gibi bir lüksümüz olmadığından normal hali burada seçenek olarak sunulmamış.
  • kernel-dbg: İşletim sisteminde kod parçaçıklarının donanım üzerinde koşmasına yardımcı olan low-level yazılıma “kernel” yani çekirdek diyoruz. Kernel olmazsa bir işletim sistemi çalışmaz. Burada ekstra debug çıktılarını da bize gösterdiği için “kernel-dbg”ı seçmeyi tercih ettim zira herhangi bir hata yaşamamız durumunda çıktılar bize oldukça yardımcı olacak.
  • lib32 ve lib32-dbg: Windows’un aksine BSD ve Linux çekirdeği kullanan x64 (x86-x64/AMD64) işletim sistemleri 32-bit yazılımları çalıştırmak için ek uyumluluk kütüphanelerine ihtiyaç duyarlar. FreeBSD’de bu “lib32” yardımıyla sağlanır. Bu seçeneği işaretlemezseniz 32-bit programları kullanamazsınız. “-dbg” olanı ise diğerlerinde olduğu gibi debug çıktıları sunuyor, kurmamıza gerek yok.
  • ports: FreeBSD’de yazılımları uyumlu, düzgün bir şekilde kurabilmemizi sağlayan paket yöneticisine benzer yapıya “ports tree” deniliyor. Sorunsuz bir kurulum ve deneyim için işaretlemekte yarar var.
  • src: Sistemin kaynak kodlarını oluşturan dizin ağacını dahil eder, şahsen gerek olmadığını düşünüyorum.
  • tests: Herhangi bir teste ihtiyacımız olmadığından kurulmasını istemiyorum.

Normal bir kullanıcı için aşağıdaki işaretlemeler yeterli olacaktır. Daha sonra “ENTER” ile devam edelim.

Disk yapılandırması kısmına geldik. 4 seçenek var, biz yalnızca ilk ikisinden birini seçeceğiz. ZFS dosya sistemini kullanmak isteyenler birinciyi seçebilir. Ben ZFS kullanmayı tercih etmediğim için ikinci seçenek olan Auto (UFS) olanı seçeceğim. Otomatik disk yapılandırması seçeneğinin diskinizin tamamını sileceğini unutmayın. Eğer “dual boot” tarzı bir kurulum yapacaksanız Manual sekmesinde gerekli bölümleri oluşturmalısınız.

Ben doğrudan sadece FreeBSD yüklemek istiyorum. Bu yüzden sadece bir adet işletim sistemi kuracak şekilde adımları gerçekleştireceğim.

da0 olarak gözüken diskimizin FreeBSD’ye uygun bölümlerin oluşturulması için sıfırlanacağını ve dosyalarımızın tamamen silineceğini belirten bir uyarıyla karşılaştık. Eğer farklı bölümlemeler veya “dual boot” kurulum yapacaksanız Partition, normal şekilde diski silip devam edecekseniz Entire Disk diyebilirsiniz. Ben doğrudan sıfırlayıp devam ediyorum.

Disk bölümümün türünü seçmemiz gerekiyor. Eğer bilgisayarınız UEFI destekliyorsa GPT, desteklemiyorsa MBR seçmeniz gerekiyor. OK diyerek daha sonra devam edelim.

Gerekli bölümlemeleri otomatik olarak yaptı ve karşımıza getirdi. Finish dersek hepsi onaylanacak ve kurulum başlayacak. Fakat ben bu şekilde kurulum yapmak istemiyorum, “swap” alanını biraz daha yükselteceğim. Swap’ı Windows sistemlerdeki sanal bellek alanı gibi düşünebilirsiniz. Normal şartlar altında sistemi kurmak için oluşturmak pek şart olmasa da, RAM yetmediğinde veya bilgisayar uykuya geçtiğinde problem yaşanmaması için RAM miktarınızın iki katı kadar olması tavsiye edilir.

Burada otomatik olarak kendisi 1 GB oluşturmuş, ben sanal makineme 2.5 GB’a yakın RAM verdiğim için “swap” alanı da en az 2 GB olsun istiyorum. Aslında stabil olması için 5 GB yapmam gerekir fakat şimdilik böyle oluşturacağım, kurulum sonrası daha büyük alan ayırmak istersek bunu yapmamız mümkün.

“TAB” tuşuyla Delete kısmına gelelim ve aşağı yukarı tuşlarıyla bölümleri seçerek silelim. Sadece freebsd-boot bölümünün kalması yeterli. Geriye kalanları biz kendimiz oluşturacağız. Bunun için yine “TAB” ile Create‘e gelip “ENTER” diyelim.

İlk oluşturacağım “partition” yani disk bölümü sistemi kuracağım alan olacak. Burada Type kısmını düzgün bir şekilde yazmanız önem arz ediyor zira hangi türden disk bölümü (swap, depolama, boot) oluşturduğunuzu kurulum buna göre anlıyor. “Size”a ise kaç GB ayırmak istiyorsanız onu yazmalısınız.

Mountpoint ise sistemde oluşturduğumuz bölümün ne olarak kullanılacağını belirlememizi sağlıyor. / yaparak bu disk bölümünün root folder olmasını istiyorum. Eğer /tmp ve /var gibi alt dizinleri farklı disklere dağıtmak istiyorsanız onun için ayrı bölümler oluşturabilirsiniz. Ben ayrı kullanımları pek sevmediğimden tercih etmiyorum. Yaptığım şekilde oluşturduğunuz bölümde sistem tamamen tek birimde / altında yer alacak.

FreeBSD disk bölümleme

İkinci bölümü ise “swap” alanı olarak ayırıyorum. Type olarak bu nedenle freebsd-swap yazmamız gerekiyor. Boyutu ortalama 2GB veriyorum ve Mountpoint‘i boş bırakarak OK diyerek devam ediyorum.

Disk bölümleme işlemlerimiz bitti, artık Finish diyerek kurulumu başlatabiliriz.

Disk yapısı üzerinde değişiklikler yapılacağı ve dosyaların kalıcı olarak silineceği belirtiliyor. Üç seçeneğimiz var; Commit diyerek devam etmek, Revert & Exit ile eski haline çevirip çıkmak, Back ile menüye dönmek.

Biz Commit diyoruz. Bu adımdan sonra nihayet kurulum başlayacak. USB belleğiniz, diskiniz ve işlemcinize bağlı olarak dosyaların kopyalanma hızı değişebilir fakat çok uzun sürmediği söylenebilir.

FreeBSD sistem dosyaları kopyalanıyor

Dosyaların kopyalanması bittikten sonra karşımıza böyle siyah bir ekran çıkacak. Root kullanıcısına ait parolanın belirlenmesini istiyor. Türkçe karakterler kullanmadan unutmayacağımız güçlü bir parola yazalım. Yazdığınız parola herhangi bir şekilde *** ile veya normal gözükmeyecek bu nedenle biraz daha dikkatli olmalısınız.

Ağ ayarlarımızı yapılandırmamız için network arayüzümüzü seçmemiz gerekiyor. Sizde Wi-Fi bağlantısı gözüküyorsa bağlayabilirsiniz, gözükmüyorsa da normal kablolu bağlantıdan devam edebilirsiniz. Sistem açıldıktan sonra ihtiyacınız olan sürücüleri kurarak bu problemleri aşabiliyorsunuz.

IPV4 standardına uygun bir şekilde ağ konfigürasyonunu yapalım mı diyor. Yes diyoruz.

DHCP üzerinden otomatik olarak IP adresi atamak isteyip istemediğinizi soruyor. Eğer yerel ağınızda sabit IP belirlemek istiyorsanız No, modeminizden otomatik olarak alsın diyorsanız Yes seçeneğinden devam etmeniz gerekiyor.

Bu sefer IPv6 protokolüne uygun ayarlamalar yapmak isteyip istemediğimizi soruyor. Halihazırda ülkemizde birçok operatör IPV6 desteklemediği için ben No diyerek devam ediyorum. TurkNet gibi müşterilerine IPV6 sunan bir internet servis sağlayıcı kullanıyorsanız Yes seçeneğinden ilerleyebilirsiniz.

Burada bağlı olduğumuz etki alanı ve DNS yapılandırmamızı ayarlamamızı istiyor. Ev kullanıcısı olduğumuz için Search‘ı olduğu gibi bırakıyoruz. DNS adresi olarak da tercih ettiğiniz herhangi bir DNS olabilir. Ben Google DNS kullanmak istedim. Burayı boş bırakırsanız veya hatalı değerlerle doldurursanız internette gezinirken girdiğiniz domain IP adresine çözümlenemeyeceği için sitelere erişemezsiniz. Bu sebeple önemli bir ayar olduğunu hatırlatalım.

Şimdi de bölgemizi seçmemiz ve tarih saat ayarlarımızı yapmamız gerekiyor. Türkiye Avrupa olarak geçtiği için Europe‘a geliyoruz ve Turkey diyoruz.

+03 saat biçiminin bize uyup uymadığını söylüyor. Kabul ederek devam edelim. Türkiye GMT+3 yaz saati dilimini kullanıyor.

Gün, ay, yıl seçimini yapıyoruz. Zaten internete bağlıysanız otomatik olarak kendisi bu bilgiyi çekiyor.

Burada zamanı 3 saat ileride kadar gösterebiliyor. Kurulum sonrası ayarlanabilecek önemsiz bir detay olduğu için Skip veya Set Time diyerek ilerleyebiliriz.

Sistem açılışında hangi servislerin başlatılacağını bizlere soruyor. Burada karşımızda yine 7 adet seçenek var. Tek tek göz atacak olursak;

  • local_unbound: Yerel DNS önbelleklerini kullanmayı sağlar. İnternet servis sağlayıcılarınıza güvenmiyorsanız bu seçeneği işaretleyerek DNS sorgularınızın localinize dönüp yanıtlanmasını sağlayabilirsiniz. Ben böyle bir özelliğe gerek duymadım, zaten Google DNS’lerini “Network Configuration” aşamasında seçmiştim.
  • sshd: SSH protokolünün kullanılması için gerekli olan servis. Bu protokol, bilgisayarınıza uzaktan güvenli bir şekilde erişip terminal komutlarını çalıştırabilmenizi sağlar. Telnet’in şifreli ve güvenli halini düşünün, “sshd” ise bunu sağlayacak olan servis. Kurmayı tercih ediyorum.
  • moused: FreeBSD ilk kurulduğunda herhangi bir masaüstü ortamıyla gelmediği için konsolda fare kullanmak istiyorsanız bu servisi işaretlemelisiniz.
  • ntpdate: Sistem ve ağ saatinizi önyükleme zamanında otomatik olarak senkronize etmeye yarayan bir özellik. NTP adı verilen protokolü kullanır. İhtiyaç duymadığım için işaretlemiyorum fakat işaretlense de bir problem olmaz.
  • ntpd: “ntpdate” servisine benzer olarak aynı işi sistemin normal çalışması sırasında yapan bir daemon (sistem süreci) diyebiliriz. Ben seçmedim lakin isteğe bağlı olarak kullanılabilir.
  • powerd: İşlemci frekansını dinamik olarak ayarlamaya yarayan bir servis. Eğer işlemciniz destekliyorsa ihtiyaca göre düşük veya yüksek frekans hızlarıyla bilgisayarınızı kullanarak güçten tasarruf edebilirsiniz. Laptoplarda işe yarayan bir özellik olsa da ben kullanmayı pek tercih etmiyorum.
  • dumpdev: Sistem kernel’ı üzerinde yaşanan olası çökmeler ve hataların dökümlerini /var/crash altında saklar. Herhangi bir sorun olması durumunda bu dökümlere bakarak çözüm üretilebilir. Bu nedenle dumpdev seçeneğini işaretlemekte yarar var diye düşünüyorum.

Kendimize uygun seçimleri yaptıktan sonra “OK” diyerek kurulumda ilerleyebiliriz.

FreeBSD sistem konfigürasyonu

Kurulumun nihayet sonlarına yaklaştığımızı gösteren “System Hardening” evresindeyiz. Bu aşama bizlere sistem güvenliği için aktifleştirebileceğimiz 11 güzel özellik sunuyor. İsterseniz bunların ne ne olduğunu hızlıca açıklayalım.

  • hide_uids: Diğer kullanıcılardan gizli bir şekilde süreçler başlatabilmeye yarar. Bildiğiniz gibi FreeBSD gibi Unix-like dağıtımlar bir sistem üzerinde birçok kullanıcının çalışmasına uygun şekilde geliştirilmiştir. Bazı kullanıcıların diğerlerinin görmesini istemeyeceği gizlilik ve öneme sahip “process” yani süreçler olabilir. Bu özellik çalıştırılan servislerin ve yazılımların gizlenmesinde yardımcı olabilir. Benim böyle bir özelliğe ev kullanıcısı olarak şahsen ihtiyacım yok. İstemediğim bir ele geçirilme durumu yaşarsam da bu özellik yüzünden saldırgan arka planda benden gizli işlemler yürütebilir. Bu nedenle işaretlemedim.
  • hide_gids: “hide_uids” özelliğinin yaptığının aynısını yapar lakin tek bir farkla, süreçlerin belirli kullanıcı gruplarından gizlenebilmesini sağlar. Tek makine üzerinde çalışan farklı kullanıcı gruplarına sahipseniz ve birbirlerinin süreçlerini görmesinler istiyorsanız bu seçeneği aktif edebilirsiniz. Ev kullanıcısı için yine gereksiz olduğunu söylemeliyim.
  • hide_jail: FreeBSD özellikle sunucu olarak pek fazla kullanılan bir işletim sistemi olduğundan bu tarz kullanımlarda haliyle korsanların hedefi de olabiliyor. Bir sunucu üzerinde çalışan birden fazla servisten herhangi birisi ele geçirilirse diğerlerinin de etkilenmemesi için genellikle sistem yöneticileri tarafından “jail” adı verilen bir yapı kullanılır. Jail’ler bir nevi alt sistem gibi çalışırlar. Bu seçenekteki özellik sayesinde arka planda çalıştırılan bazı süreçler jail’lerden gizlenebilirler. Sunucu kuruyorsanız güvenlik anlamında faydalı olabilir lakin normal kullanıcıya hitap etmiyor.
  • read_msgbuf: Yetkisi olmayan kullanıcıların “dmesg” aracıyla kernel çıktılarını görüntülemesini engelleyen bir seçenek. Çok kullanıcılı ortamlarda güvenlik açısından işe yarar fakat ev kullanımlarında şahsi olarak pek önerdiğim söylenemez.
  • proc_debug: Yetkisiz kullanıcıların süreçleri debug etmesini engeller.
  • random_pid: Yeni oluşturulan süreçlerin rastgele PID numaralarına sahip olmasını sağlar. İsteğe bağlı olarak seçilebilir.
  • clear_tmp: Sistem her açıldığında /tmp dizinini otomatik olarak temizler. Gizlilik açısından bazı durumlarda fayda sağlayabilir fakat ben ihtiyaç duymuyorum.
  • disable_syslogd: Sistem loglarının dağıtılmasını ve kaydedilmesine yarayan “syslogd” aracının ağ üzerinden iletişim kurmasını engeller. Kurumsal ortamlar söz konusu olduğunda sistemdeki olağan dışı hareketler “syslogd” yardımıyla toplanan loglarla anlaşılabilir. Bu seçenek işaretlendiğinde “syslogd” yazılımı -ss parametresiyle çalıştırılarak ağ üzerinden bağlantı kurması engellenir. Ev kullanıcısı için açılmış veya açılmamış pek önemi yok diyebiliriz.
  • disable_sendmail: Sendmail servisini devre dışı bırakmaya yarar.
  • secure_console: Bu seçeneği aktifleştirmeniz durumunda eğer tek kullanıcı ile sistemi önyüklerseniz “root” parolasını girmenizi ister.
  • disable_ddtrace: “ddtrace” Dinamik olarak servislerin ve sistemin durumunu izlemeye yarayan bir süreçtir. Bu seçeneği işaretlemeniz durumunda “ddtrace” kapanır.
  • enable_aslr: Address Layout Randomization adı verilen bellek güvenliği özelliğini aktifleştirir. ASLR’nin ne işe yaradığını açıklayacak olursak şöyle örnek verebiliriz, normal şartlarda programlar hep aynı adres düzenine sahip bir şekilde çalışırlar. Yazılımı debugger üzerinde çalıştırdığınızda aynı komutların her seferinde farklı adreslerde çalışmaya başladığını görüyorsanız ASLR’nin kullanılmış olduğunu söylemek mümkündür. 64-bit Windows sistemlerde varsayılan olarak desteklenen programlarda kullanılması için aktifken, FreeBSD gibi BSD türevlerinde kapalıdır. Aktifleştirmek için bu seçeneği işaretleyebilirsiniz. Arabellek taşması tarzı güvenlik açıklarından tamamıyla olmasa da bir nebze korunmanızı sağlar.

Ben bu ayarlardan hiçbirini açmaya gerek duymadım. Doğrudan ilerleyeceğim.

FreeBSD system hardening seçenekleri

Daha önceden root kullanıcısına ait bir parola belirlemiştik, şimdi de normal işlerimiz için yeni bir kullanıcı hesabı oluşturmamız gerekiyor. Yes diyerek devam edelim.

Burada bizden bazı bilgiler isteyecek. Username kısmına kullanıcı adımızı, Full Name‘e isim soyisim bilgimizi, Login group olarak belirtilen ilk seçeneği boş bırakıp ikincisine wheel yazıyoruz. Bu grup yeri geldiğinde root yetkilerine yükselebileceğimizi ifade etmesi bakımından önemli. Diğer seçeneklerin hepsini olduğu gibi bırakıp “Enter” ile devam ediyoruz.

En son parolamız girmemiz için Enter password diye soracak. “root” parolasını belirlerken yaptığımız gibi parolamızı girerken bize girilip girilmediğini gösteren herhangi bir belirteç olmadığının altını çizelim. Bu nedenle düzgün bir şekilde yazdığınızdan emin olup parola belirleme işleminden sonra da varsayılan ayarları koruyarak “Enter” ile devam edin.

FreeBSD kullanıcı oluşturma

En son bize tekrardan girdiğimiz bilgileri kabul edip etmediğimizi gösteriyor. Buna yes ifadesi ile cevap verirken başka kullanıcı eklemeyi isteyip istemediğimiz sorusuna ise no diyerek “Enter”a basıyoruz.

Kurulumun sonlandığını gösteren ekran karşımıza geldi. Exit diyerek çıkalım.

El ile yeni sistem açılmadan önce chroot ortamında son düzenlemeleri yapmak isteyip istemediğimizi soruyor. Yes diyelim. Bir ayar yapmayacak olsak da sistemi açmadan hemen önce bazı terminal komutlarını denemiş oluruz.

Yaptığımız konfigürasyon değişikliklerini kaydedip çıkmak için exit yazıp “ENTER”a basıyoruz.

FreeBSD chroot ortamı

Kurulumun bütün aşamalarının tamamlandığını gösteren bir ekran karşımıza geliyor. Live CD modundan devam etmek istiyorsanız ilgili seçeneği, normal sistemi başlatmak istiyorsanız da Reboot diyin. Bilgisayar kapanıp açıldıktan sonra FreeBSD’den başlayacak.

FreeBSD kurulum sonu reboot

Gerekli Programların ve Masaüstü Ortamının Kurulması

Sistem açılırken karşımıza böyle bir ekran gelecek. “1” diyerek FreeBSD’yi başlatalım.

FreeBSD boot ekranı

Bizden kullanıcı adımızı ve şifremizi girmemizi isteyecek. Girdikten hemen sonra CLI ortamına düşeceğiz. FreeBSD dahili olarak herhangi bir masaüstü ortamıyla gelmediği için bunu kendimiz kurmak zorundayız.

FreeBSD ilk açılış, CLI ekran

İşlemlerimize başlamadan önce internet bağlantımızı kontrol edelim. ping google.com komutu ile Google’a ping isteği gönderiyorum. Yanıtlanıyorsa bağlantımızda bir problem yok diyebiliriz.  CTRL+C ile durdurabilirsiniz.

FreeBSD Google'a ping

su komutu yardımıyla root hesabımın şifresini girerek root yetkilerine ulaşıyorum. Bu kullanıcı Unix-like sistemlerde en yüksek haklara sahip olan zat diyebiliriz. Sistemde hemen hemen her değişikliği yapmanıza imkan tanıdığı için root şeklinde işletim sistemini kullanmak güvenlik anlamında oldukça risklidir. Biz Linux dağıtımlarından alışkın olduğumuz sudo adlı aracı kurup yapılandırarak bu problemi aşacağız. İhtiyacımız olduğu durumlarda root olmak yerine halihazırdaki kullanıcımızla sudo kullanarak yetki isteyen komutları yürütebileceğiz.

FreeBSD’de haşir neşir olacağımız paket yöneticisi pkg. pkg install sudo diyerek aracımızın kurulumunu gerçekleştiriyoruz. Karşımıza çıkan seçeneklerin hepsine y diyerek devam ediyoruz. Eğer uğraşmak istemiyorsanız komutu -y parametresiyle pkg install -y sudo şeklinde yazmanız durumunda size sormadan hepsine y cevabı verilip kurulum gerçekleşecektir.

FreeBSD sudo kurulumu

Aynı şekilde pkg install nano diyerek Nano metin editörümü de kuruyorum. Masaüstü ortamını çalıştırmak için gereken yapılandırma dosyalarını düzenlerken sık sık bu araçtan faydalanacağız.

FreeBSD nano editör kurulumu

Bu adımları yaptıktan sonra exit diyerek “root” kullanıcısından çıkalım. sudo su diyerek normal kullanıcımızın yetki seviyesini yükseltmeye çalıştığımızda “sudoers” dosyasına ekli olmadığını söyleyen bir hata alacağız. Bu dosyamızı düzenlemek için için tekrardan su diyerek “root” oluyoruz ve visudo komutunu giriyoruz.

Açılan Vi editör yardımıyla “sudoers” dosyasını güncelleyebiliriz. root ALL=(ALL:ALL) ALL yazan satırın hemen altına akil kullanıcısını akil ALL=(ALL)  ALL şeklinde ekliyorum. Son “ALL” ifadesinden hemen önceki boşluğu “TAB” tuşu ile bırakabilirsiniz.

Bunu en basit haliyle açıklayacak olursak akil kullanıcısının sudo kullanarak yüksek haklarla her komutu çalıştırabilmesine imkan tanıyor. Aslında böyle yapmayıp hemen alttaki # %wheel ALL=(ALL:ALL) ALL satırının başındaki # işaretini kaldırarak wheel grubuna da bu izni verebilirdik. Zira kurulum aşamasında hatırlayacak olursanız kullanıcımızı wheel grubuna eklemiştik. Ben daha kontrol edilebilir olduğu için doğrudan kullanıcımı yetkilendirmeyi tercih ettim.

Değişikliklerimizi kaydedip Vi editörden çıkmak için önce klavyeden ESC’ye bastıktan sonra : işaretini yapıp wq yazarak enter basalım.

FreeBSD visudo ile sudoers düzenleme

Artık sudo su komutu yardımıyla kendi kullanıcımızı kullanarak yüksek yetkilere ulaşabiliyoruz.

FreeBSD sudo kullanarak yüksek haklara geçiş

Masaüstü ortamını kurabilmek için öncesinde bir görüntü sunucusuna sahip olmamız gerekiyor. Görüntü sunucuları işletim sistemlerinde ekrandaki görüntüler ve pencerelerin çizildiği, haberleşmenin sağlandığı en temel yapı diyebiliriz. Linux ve BSD dağıtımlarında genellikle bu iş için sağlıklı çalışmasından ötürü X.Org tercih edilir. Biz de FreeBSD sistemimize Xorg kuracağız.

pkg install xorg komutuyla görüntü sunucusu kurulumunu gerçekleştiriyoruz. Çok sayıda paket indirip yükleyeceği için biraz uzun sürebilir, çayımızı kahvemizi alıp sabırla bekliyoruz.

FreeBSD Xorg görüntü sunucusu kurulumu

Xorg kurulumu bittikten sonra, kullanıcı hesabımızı masaüstü ortamı kurulumu sonrası sağlıklı bir şekilde başlayabilmesi için video grubuna almamız gerekiyor. FreeBSD’de kullanıcıları özel bir gruba pw groupmod GrupAdı -m KullanıcıAdı şeklinde ekleyebiliyorsunuz.

pw groupmod video -m akil komutu ile başarıyla video grubuna hesabımı dahil ediyorum. Sistemi yeniden başlatıp id diyerek kontrol ettiğimizde işlemimizin başarıyla gerçekleştiğini doğrulamış oluyoruz.

FreeBSD video grubuna kullanıcı ekleme

Bütün bu işlemleri yaptıktan hemen sonra, tercih ettiğimiz bir masaüstü ortamı kurmamız gerekiyor. Ben MATE sevdiğim için rehberde anlatımı bu DE üzerinden yapmayı tercih ettim. Diğerleri için de gereken işlemler kısmen değişebilmekle beraber çoğunlukla benzer.

pkg install -y mate komutunu veriyorum.

FreeBSD Mate masaüstü ortamı kurulumu

Şimdi de sistem açıldığında siyah ekranla karşılaşmamak ve masaüstü ortamını manuel olarak başlatmak zorunda kalmamak için bir “oturum yöneticisi” kuracağız. Benim tavsiyem “slim” olacaktır, hem hafif hem de oturum yöneticisi özelinde konfigürasyon için ekstra bir şey yapmanız gerekmiyor. pkg install -y slim. Paket yüklendikten hemen sonra bize rc.conf içerisinde bazı düzenlemelerde bulunmamız gerektiğini söylüyor.

FreeBSD Slim kurulumu

nano /etc/rc.conf ile sistem başlatılırken çalışacak olan komutları düzenleyelim. Varsayılan haliyle resimdeki gibi bir rc.conf dosyasına sahibiz.

FreeBSD varsayılan rc.conf dosyası

Biz buraya hem “slim” için hem de MATE’in düzgün çalışması için üç satırlık bir ekleme yapacağız. Bunların ne olduğunu kısa bir şekilde açıklayacak olursak;

  • dbus_enable: Çeşitli arayüzler (interfaces) arasında proseslerin iletişim kurabilmesini sağlayan bir sistem servisidir. Mesela X görüntü sunucusu üzerine kurduğunuz masaüstü ortamında pencerelerin ve programların düzgün bir şekilde çalışmasını “dbus” sağlar. Bu özellik ise D-Bus’ın aktif hale gelmesini sağlar.
  • hald_enable: Sistemin donanımı kullanabilmesi için gerekli olan erişimi sağlayan özelliğe HAL (Hardware Abstraction Layer) denilir. D-Bus ile iletişim kuran programlar, “hald” ile donanımda çeşitli işlevleri yerine getirirler. Örneğin bir flash bellek taktığınızda veya çıkardığınızda, eski bilgisayarınızda CD yuvasını açtırdığınızda bu işi Unix-like sistemlerde HAL görür. Aktif hale getirmek için bu seçeneği de “YES” olarak düzenlemeliyiz.
  • slim_enable: Kurmuş olduğumuz Slim oturum yöneticisini aktifleştirmek için kullandığımız özellik.

Ayarları aşağıda gördüğünüz gibi yaptıktan sonra CTRL + S ve CTRL +X klavye kombinasyonlarıyla editörden çıkabilirsiniz.

FreeBSD rc.conf Düzenlemesi

Sistemi yeniden başlatıp kullanmaya başlamadan hemen önce son bir işlem yapmamız gerekiyor. X sunucusunun init (UNIX benzeri sistemlerde sistem kapanana kadar çalışmaya devam eden servis) konfigürasyon dosyasına masaüstü ortamını başlatacak komutu girmeliyiz. Aksi halde “slim” oturum yöneticisi bizi karşılayacak fakat kurduğumuz MATE açılmayacaktır.

Bunun için nano .xinitrc diyoruz ve içerisine exec mate-session yazıp CTRL +S, CTRL +X ile kaydedip çıkıyoruz.

FreeBSD .xinitrc Düzenlemesi

Artık sistemi reboot komutuyla yeniden başlatıp grafik arayüzümüze kavuşabiliriz.

Oturum yöneticisi bizi karşıladığında kullanıcı adımızı ve daha sonra parolamızı girelim. Türkçe karakterleri kabul etmeyebilir, bu durumla karşılaşırsanız parolanızı İngilizce klavye düzenine göre girerseniz problem ortadan kalkacaktır.

FreeBSD Slim oturum yöneticisi

MATE karşımızda. Bu haliyle biraz ilkel gözükse de düzenlendiği taktirde çok harika bir masaüstü ortamı olduğunu söyleyebilirim. Zaten bu tarz özgür yazılımların en güzel yanı istediğiniz gibi özelleştirebilmeniz.

FreeBSD Mate masaüstü ortamı 1

Arka planı değiştirip ayarlardan ekstra bir tema yüklemeden şöyle ortalama bir görüntü elde etmek mümkün. Bütün adımları eksiksiz uyguladıysanız, tebrikler. İlk FreeBSD sisteminizi kurdunuz.

FreeBSD Mate masaüstü ortamı 2

Sonuç

Uzaktan bakıldığında FreeBSD gibi text-based kuruluma sahip ve biraz Unix bilgisi isteyen işletim sistemlerinin yüklenmesi aşırı zor bir şey gibi gözükür. Ama aslında hiç de öyle değil. Anlatım boyunca yaptığımız bütün adımlar dikkat ederseniz önümüze gelenleri okuyup uygun seçeneği seçmek ve birkaç program yüklemekten ibaret. Fakat bunun bile insana çok şey kattığını söyleyebiliriz. Eğer rehberi tamamen sabırla okuyup uyguladıysanız, BSD’ler ve genel olarak Unix benzeri sistemler hakkındaki birçok temel bilgiyi artık biliyorsunuz.

Sıfırdan FreeBSD kurmayı, hangi güvenlik ayarlarının hangi durumlarda kullanılması gerektiğini, çeşitli sistem servislerini aktifleştirmeyi ve sadece CLI olan bir sisteme nasıl masaüstü ortamı kurabileceğinizi öğrendiniz. Umarız ki faydalı olmuştur. Eleştirileriniz için yorum yazabilir, sorularınız için Technopat Sosyal’de konu açabilirsiniz.