BSD çekirdeği denildiğinde birinci akla gelen dağıtımlardan FreeBSD olağan bilgisayarlarımızdan sunuculara, oradan da PlayStation üzere oyun konsollarına kadar hayli geniş yelpazede kullanılan işletim sistemlerinden biri. Güçlü network yapısı, stabilitesi ve sorunsuz yapısıyla kurumsal yapılarda epeyce tercih ediliyor. macOS temeli olan Darwin çekirdeğinde ve Windows’un TCP/IP altyapısında şahsen BSD kodlarından yararlandığını biliyor muydunuz?
Tarihçesine baktığımızda da birinci olarak Kaliforniya Berkeley Üniversitesi tarafından AT&T’nin özgün 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 halde AT&T’nin BSD geliştiricilerine geliştiricilerin kendi özgün kodlarını göstererek dava açtığı görülmüştü.
Çoğu defa Linux ile karşılaştırılmasına rağmen, büsbütün başka 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 kelam konusu olduğundaysa çoklukla birkaç dağıtımdan kelam edilir. Bunlardan en bilinenleri NetBSD ve FreeBSD’dir. NetBSD, 1993 yılında birinci kullanıma sunulan dağıtımlardan biri olması ve 57 farklı mimariye dayanak vermesiyle bilinirken, gelişmişlik ve kullanıcı dostu olma tarafından bakıldığında FreeBSD daha önde geliyor denebilir.
Biz de bu yazımızda FreeBSD nasıl kurulur ayrıntılıca değinmeye çalışacağız. Çünkü fark ettik ki, FreeBSD’nin son kullanıcının kullanabileceği formda nasıl kurulacağını anlatan Türkçe kaynaklar ya yok ya da olanlar da olağan kullanıcı için olmaktan çok farklı maksatlara uygun biçimde yazılmış. Şayet yazımızın başından sonuna kadar ayrıntılıca okursanız suram ve temel kullanım hakkında birçok bilgiye sahip olacaksınız. Lafı çok uzatmadan başlayalım.
Kurulum yapabilmemiz için birinci evvel FreeBSD’nin resmi web adresinden bize uygun olan ISO evrakı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 tıpkı 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 belgeye ilişkin sürüm bilgisi ve işlemci mimarilerini görüyoruz. Yalnızca hazır kurulmuş sanal makineleri deneyimlemek isteyenler “Virtual Machine Images” seçeneğinden çeşitli tiplerde disk kalıpları edinebilirken, Raspberry Pi üzere aygıtlara suram yapacaklar “SD Card Images” kısmından uygun mimariyi seçmeliler.
Biz olağan bilgisayarımıza suram yapacağımız için “Installer Images” kısmında yer alan ISO belgelerine göz atacağız. Burada 10 adet birbirinden farklı işlemci mimarisine değiniliyor ancak bizim konutlarımızda yer alan günümüz bilgisayarlarında yalnızca 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 jenerasyon bir Apple Mac aygıt kullanmıyorsanız ve 2003 sonrası bir işlemciye sahipseniz bilgisayarınız 64-bit takviyelidir. Bu nedenle bizim kuracağımız sistem “amd64” olacak. Buna tıklayalım ve devam edelim.
Sayfada ISO, “.XZ” ve CHECKSUM formatında farklı farklı belgeler olduğunu görüyoruz. Bizi ilgilendiren ise yalnızca “.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 muhtaçlığımız yok, “disc1” sistemi kurmak ve kullanmak için pek kâfi bir imaj. Seçelim ve indirmeyi başlatalım.
İndirme bittikten sonra USB belleğimize yazdırıp konseyime geçmeden çabucak öncesinde belge bütünlüğünü doğrulamamız gerekiyor. Bunu her belge için eşsiz olan “hash” bedellerini karşılaştırarak yapacağız. Yeniden tıpkı sayfaya gelip “CHECKSUM.SHA256” ile başlayan evraka tıklayıp indiriyoruz.
Normal kurallarda bir Linux sistem kullanıyorsanız bu evrak ile direkt ISO’nuzun bütünlüğünü denetim edebilirsiniz. Lakin ben şu anda Windows kullandığım için ilgili “checksum” belgesini not defteri ile açıyorum ve aradığım yepyeni hash bedellerine ulaşıyorum.
Daha sonrasında ise tek yapmam gereken ISO evrakına sağ tık yapıp 7-Zip CRC SHA menüsünden SHA256 bedelini hesaplatıp iki kıymeti karşılaştırmak. Not defterindeki paha ile 7-Zip’in gösterdiği aynıysa evrakımız düzgün bir formda inmiş demektir. Artık USB belleğimize yazdırıp suram kademesine geçebiliriz.
Eski tip DVD yahut USB yoluyla, hangisi olduğu fark etmeksizin bir işletim sistemi kuracağımız vakit, edindiğimiz ISO evrakını “bootable” yani “önyüklenebilir” bir formda yazdırmamız gerekiyor. Aksi halde bilgisayarımız rastgele bir önyüklenebilir ortamdan başlamadığı için konseyimi gerçekleştirmemiz mümkün olmuyor.
BSD ve birçok Linux dağıtımı kelam konusu olduğunda belleğe yazma süreci için benim önerdiğim tek yazılım Win32DiskImager diyebilirim. Daha evvel Rufus ve BalenaEtcher ile süreç yaptığım birçok Linux ve BSD heyetim belleğinin yanılgılı yazım yaptığını gördüğümden, Windows harici imajları yazdırmak için pek tavsiye etmiyorum. Sizler daha evvel 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 heyetimi gerçekleştirelim.
Kurulum sonrası program açılırsa kapatın. USB belleğinizi şimdi 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 sürecin gerçekleşeceği şoföre ilişkin uygun harfi seçse de, öteki disklerinizin silinme ihtimaline rağmen tekrar de denetim etmenizde yarar var.
Her şeyden emin olduğumuzda ISO evrakımızı yazdırmak için klasör işaretine basıyoruz. Karşımıza her zamanki belge seçme ekranı geliyor ama burada yalnızca “.img” uzantılıların işaretlenebildiğini görüyoruz. Halbuki 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 halde ISO yazma yeteneğine sahip.
Artık tek yapmamız gereken şey Write butonuna basarak belleğe yazma sürecini başlatmak. USB bellekteki bütün dataların silineceğine dair verilen uyarıyı da onayladıktan sonra süreç bitene kadar ne bilgisayara, ne de USB belleğe dokunmadan beklemeniz en uygunu olacaktır. Mühlet bilgisayarınızın ve belleğinizin suratına nazaran değişiklik gösterebilir. USB 3.0 ile ortalama 1-2 dakika sürecektir.
Artık konseyime büsbütün hazırız.
USB belleğimizi yazdırdıktan sonra çıkartalım ve ardından bilgisayarımızı kapatalım. Tekrar açmadan evvel hazırladığımız flash belleğin ve kablosuz ilişki kullanıyorsak heyetim 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 kademede tıpkı Windows heyetimi yapar üzere 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 nazaran 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ı” mevzumuza göz atabilirsiniz.
Ben süreçleri sanal makine üzerinden gerçekleştirmeyi tercih ettim, çünkü gerçek bilgisayarımda suram yaparken pek kaliteli imgeler çekmem haliyle mümkün değil. Siz heyetim yaparken de rastgele bir farklılık olmayacaktır.
Boot sürecini gerçekleştirdikten sonra aşağıdaki üzere bir ekranla müsabakanız gerekiyor. Burada sabırla 10 saniye boyunca bekleyelim. Kendisi suram ekranına bizi yönlendirecek.
Nihayet yükleyicideyiz, sağ-sol yahut TAB tuşlarını kullanarak Install‘a gelip “ENTER” ile devam edelim.
Bu ekranda bize klavye sistemimizi seçmemiz gerektiğini söylüyor. Hangi lisan ve cinsten klavye kullanıyorsak aşağı-yukarı ok tuşlarıyla o lisana 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 nizamını 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 halde yazılıyorsa sorun yok demektir. Lakin kimi Türkçe karakterler ? biçiminde gözükebilmekte.
Bizi tekrardan klavye sistemi 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. Şayet kurumsal ortamdaysanız ve bir domaine dahilseniz buraya bilişim yöneticinizin söylediğini, sıradan konut ortamındaysanız da ileride kullanıcı hesabı için belirleyeceğiniz isim hariç istediğiniz rastgele bir şey yazabilirsiniz. Ben akilgundogan biçiminde 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: Olağan koşullar 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 bu türlü bir şeye gereksinimimiz yok, aslında varsayılan olarak “base”i kurmama üzere bir lüksümüz olmadığından olağan 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 çünkü rastgele bir yanılgı yaşamamız durumunda çıktılar bize hayli yardımcı olacak.
- lib32 ve lib32-dbg: Windows’un bilakis 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 gereksinim 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 başkalarında olduğu üzere debug çıktıları sunuyor, kurmamıza gerek yok.
- ports: FreeBSD’de yazılımları uyumlu, düzgün bir halde kurabilmemizi sağlayan paket yöneticisine emsal yapıya “ports tree” deniliyor. Sıkıntısız bir heyetim ve tecrübe için işaretlemekte fayda var.
- src: Sistemin kaynak kodlarını oluşturan dizin ağacını dahil eder, şahsen gerek olmadığını düşünüyorum.
- tests: Rastgele bir teste muhtaçlığımız olmadığından kurulmasını istemiyorum.
Normal bir kullanıcı için aşağıdaki işaretlemeler kâfi olacaktır. Daha sonra “ENTER” ile devam edelim.
Disk yapılandırması kısmına geldik. 4 seçenek var, biz sırf birinci ikisinden birini seçeceğiz. ZFS evrak 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. Şayet “dual boot” biçimi bir suram yapacaksanız Manual sekmesinde gerekli kısımları oluşturmalısınız.
Ben direkt yalnızca FreeBSD yüklemek istiyorum. Bu yüzden yalnızca bir adet işletim sistemi kuracak formda adımları gerçekleştireceğim.
da0 olarak gözüken diskimizin FreeBSD’ye uygun kısımların oluşturulması için sıfırlanacağını ve evraklarımızın büsbütün silineceğini belirten bir ikazla karşılaştık. Şayet farklı bölümlemeler yahut “dual boot” heyetim yapacaksanız Partition, olağan halde diski silip devam edecekseniz Entire Disk diyebilirsiniz. Ben direkt sıfırlayıp devam ediyorum.
Disk kısmımın tipini seçmemiz gerekiyor. Şayet 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 suram başlayacak. Ama ben bu biçimde heyetim yapmak istemiyorum, “swap” alanını biraz daha yükselteceğim. Swap’ı Windows sistemlerdeki sanal bellek alanı üzere düşünebilirsiniz. Olağan kurallar altında sistemi kurmak için oluşturmak pek kaide olmasa da, RAM yetmediğinde yahut bilgisayar uykuya geçtiğinde sorun 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 lakin şimdilik bu türlü oluşturacağım, suram 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ğı üst tuşlarıyla kısımları seçerek silelim. Yalnızca freebsd-boot kısmının kalması kâfi. Geriye kalanları biz kendimiz oluşturacağız. Bunun için tekrar “TAB” ile Create‘e gelip “ENTER” diyelim.
İlk oluşturacağım “partition” yani disk kısmı sistemi kuracağım alan olacak. Burada Type kısmını düzgün bir halde yazmanız ehemmiyet arz ediyor çünkü hangi çeşitten disk kısmı (swap, depolama, boot) oluşturduğunuzu heyetim buna nazaran anlıyor. “Size”a ise kaç GB ayırmak istiyorsanız onu yazmalısınız.
Mountpoint ise sistemde oluşturduğumuz kısmın ne olarak kullanılacağını belirlememizi sağlıyor. / yaparak bu disk kısmının root folder olmasını istiyorum. Şayet /tmp ve /var üzere alt dizinleri farklı disklere dağıtmak istiyorsanız onun için başka kısımlar oluşturabilirsiniz. Ben başka kullanımları pek sevmediğimden tercih etmiyorum. Yaptığım formda oluşturduğunuz kısımda sistem büsbütün tek ünitede / altında yer alacak.
İkinci kısmı 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 süreçlerimiz bitti, artık Finish diyerek suramı başlatabiliriz.
Disk yapısı üzerinde değişiklikler yapılacağı ve belgelerin 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 suram başlayacak. USB belleğiniz, diskiniz ve işlemcinize bağlı olarak belgelerin kopyalanma suratı değişebilir lakin çok uzun sürmediği söylenebilir.
Dosyaların kopyalanması bittikten sonra karşımıza bu türlü siyah bir ekran çıkacak. Root kullanıcısına ilişkin parolanın belirlenmesini istiyor. Türkçe karakterler kullanmadan unutmayacağımız güçlü bir parola yazalım. Yazdığınız parola rastgele bir formda *** ile yahut olağan 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 ilişkisi gözüküyorsa bağlayabilirsiniz, gözükmüyorsa da olağan kablolu ilişkiden devam edebilirsiniz. Sistem açıldıktan sonra gereksiniminiz olan şoförleri kurarak bu sorunları aşabiliyorsunuz.
IPV4 standardına uygun bir biçimde ağ konfigürasyonunu yapalım mı diyor. Yes diyoruz.
DHCP üzerinden otomatik olarak IP adresi atamak isteyip istemediğinizi soruyor. Şayet lokal 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 tesir alanı ve DNS yapılandırmamızı ayarlamamızı istiyor. Konut kullanıcısı olduğumuz için Search‘ı olduğu üzere bırakıyoruz. DNS adresi olarak da tercih ettiğiniz rastgele bir DNS olabilir. Ben Google DNS kullanmak istedim. Burayı boş bırakırsanız yahut yanlışlı bedellerle doldurursanız internette gezinirken girdiğiniz domain IP adresine çözümlenemeyeceği için sitelere erişemezsiniz. Bu sebeple kıymetli 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. Aslında internete bağlıysanız otomatik olarak kendisi bu bilgiyi çekiyor.
Burada vakti 3 saat ileride kadar gösterebiliyor. Heyetim sonrası ayarlanabilecek kıymetsiz bir ayrıntı olduğu için Skip yahut Set Time diyerek ilerleyebiliriz.
Sistem açılışında hangi servislerin başlatılacağını bizlere soruyor. Burada karşımızda tekrar 7 adet seçenek var. Tek tek göz atacak olursak;
- local_unbound: Mahallî 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 bu türlü bir özelliğe gerek duymadım, zati Google DNS’lerini “Network Configuration” kademesinde seçmiştim.
- sshd: SSH protokolünün kullanılması için gerekli olan servis. Bu protokol, bilgisayarınıza uzaktan inançlı bir biçimde erişip terminal komutlarını çalıştırabilmenizi sağlar. Telnet’in şifreli ve inançlı halini düşünün, “sshd” ise bunu sağlayacak olan servis. Kurmayı tercih ediyorum.
- moused: FreeBSD birinci kurulduğunda rastgele 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 vaktinde otomatik olarak senkronize etmeye yarayan bir özellik. NTP ismi verilen protokolü kullanır. Gereksinim duymadığım için işaretlemiyorum ancak işaretlense de bir sorun olmaz.
- ntpd: “ntpdate” servisine emsal olarak birebir işi sistemin olağan ç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. Şayet işlemciniz destekliyorsa gereksinime nazaran düşük yahut yüksek frekans suratları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 muhtemel çökmeler ve yanılgıların dökümlerini /var/crash altında saklar. Rastgele bir sorun olması durumunda bu dökümlere bakarak tahlil üretilebilir. Bu nedenle dumpdev seçeneğini işaretlemekte fayda var diye düşünüyorum.
Kendimize uygun seçimleri yaptıktan sonra “OK” diyerek heyetimde ilerleyebiliriz.
Kurulumun nihayet sonlarına yaklaştığımızı gösteren “System Hardening” evresindeyiz. Bu kademe bizlere sistem güvenliği için aktifleştirebileceğimiz 11 hoş özellik sunuyor. İsterseniz bunların ne ne olduğunu süratlice açıklayalım.
- hide_uids: Öbür kullanıcılardan kapalı bir biçimde süreçler başlatabilmeye fayda. Bildiğiniz üzere FreeBSD üzere Unix-like dağıtımlar bir sistem üzerinde birçok kullanıcının çalışmasına uygun formda geliştirilmiştir. Kimi kullanıcıların oburlarının görmesini istemeyeceği kapalılık ve ehemmiyete sahip “process” yani süreçler olabilir. Bu özellik çalıştırılan servislerin ve yazılımların gizlenmesinde yardımcı olabilir. Benim bu türlü bir özelliğe mesken kullanıcısı olarak şahsen gereksinimim yok. İstemediğim bir ele geçirilme durumu yaşarsam da bu özellik yüzünden saldırgan art planda benden bilinmeyen süreçler yürütebilir. Bu nedenle işaretlemedim.
- hide_gids: “hide_uids” özelliğinin yaptığının birebirini yapar lakin tek bir farkla, süreçlerin belli kullanıcı kümelerinden gizlenebilmesini sağlar. Tek makine üzerinde çalışan farklı kullanıcı kümelerine sahipseniz ve birbirlerinin süreçlerini görmesinler istiyorsanız bu seçeneği etkin edebilirsiniz. Konut kullanıcısı için yeniden gereksiz olduğunu söylemeliyim.
- hide_jail: FreeBSD bilhassa sunucu olarak pek fazla kullanılan bir işletim sistemi olduğundan bu üslup kullanımlarda haliyle korsanların gayesi de olabiliyor. Bir sunucu üzerinde çalışan birden fazla servisten rastgele birisi ele geçirilirse başkalarının de etkilenmemesi için çoklukla sistem yöneticileri tarafından “jail” ismi verilen bir yapı kullanılır. Jail’ler bir nevi alt sistem üzere çalışırlar. Bu seçenekteki özellik sayesinde art planda çalıştırılan birtakım süreçler jail’lerden gizlenebilirler. Sunucu kuruyorsanız güvenlik manasında yararlı olabilir lakin olağan 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 fayda ancak konut kullanımlarında şahsi olarak pek önerdiğim söylenemez.
- proc_debug: Yetkisiz kullanıcıların süreçleri debug etmesini mahzurlar.
- 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. Zımnilik açısından birtakım durumlarda yarar sağlayabilir ancak ben gereksinim duymuyorum.
- disable_syslogd: Sistem loglarının dağıtılmasını ve kaydedilmesine yarayan “syslogd” aracının ağ üzerinden bağlantı kurmasını pürüzler. Kurumsal ortamlar kelam 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 temas kurması engellenir. Konut kullanıcısı için açılmış yahut açılmamış pek kıymeti yok diyebiliriz.
- disable_sendmail: Sendmail servisini devre dışı bırakmaya fayda.
- secure_console: Bu seçeneği etkinleştirmeniz durumunda şayet 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 ismi verilen bellek güvenliği özelliğini etkinleştirir. ASLR’nin ne işe yaradığını açıklayacak olursak şöyle örnek verebiliriz, olağan kurallarda programlar daima tıpkı adres nizamına sahip bir formda çalışırlar. Yazılımı debugger üzerinde çalıştırdığınızda tıpkı 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 faalken, FreeBSD üzere BSD türevlerinde kapalıdır. Etkinleştirmek için bu seçeneği işaretleyebilirsiniz. Arabellek taşması şekli güvenlik açıklarından külliyen olmasa da bir nebze korunmanızı sağlar.
Ben bu ayarlardan hiçbirini açmaya gerek duymadım. Direkt ilerleyeceğim.
Daha evvelce root kullanıcısına ilişkin bir parola belirlemiştik, artık de olağan işlerimiz için yeni bir kullanıcı hesabı oluşturmamız gerekiyor. Yes diyerek devam edelim.
Burada bizden kimi bilgiler isteyecek. Username kısmına kullanıcı ismimizi, Full Name‘e isim soyisim bilgimizi, Login group olarak belirtilen birinci seçeneği boş bırakıp ikincisine wheel yazıyoruz. Bu küme yeri geldiğinde root yetkilerine yükselebileceğimizi tabir etmesi bakımından kıymetli. Öbür seçeneklerin hepsini olduğu üzere 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 üzere parolamızı girerken bize girilip girilmediğini gösteren rastgele bir belirteç olmadığının altını çizelim. Bu nedenle düzgün bir formda yazdığınızdan emin olup parola belirleme sürecinden sonra da varsayılan ayarları koruyarak “Enter” ile devam edin.
En son bize tekrardan girdiğimiz bilgileri kabul edip etmediğimizi gösteriyor. Buna yes tabiri ile karşılık verirken diğer 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 evvel chroot ortamında son düzenlemeleri yapmak isteyip istemediğimizi soruyor. Yes diyelim. Bir ayar yapmayacak olsak da sistemi açmadan çabucak evvel birtakım terminal komutlarını denemiş oluruz.
Yaptığımız konfigürasyon değişikliklerini kaydedip çıkmak için exit yazıp “ENTER”a basıyoruz.
Kurulumun bütün kademelerinin tamamlandığını gösteren bir ekran karşımıza geliyor. Live CD modundan devam etmek istiyorsanız ilgili seçeneği, olağan sistemi başlatmak istiyorsanız da Reboot diyin. Bilgisayar kapanıp açıldıktan sonra FreeBSD’den başlayacak.
Sistem açılırken karşımıza bu türlü bir ekran gelecek. “1” diyerek FreeBSD’yi başlatalım.
Bizden kullanıcı ismimizi ve şifremizi girmemizi isteyecek. Girdikten çabucak sonra CLI ortamına düşeceğiz. FreeBSD dahili olarak rastgele bir masaüstü ortamıyla gelmediği için bunu kendimiz kurmak zorundayız.
İşlemlerimize başlamadan evvel internet ilişkimizi denetim edelim. ping google.com komutu ile Google’a ping isteği gönderiyorum. Yanıtlanıyorsa ilişkimizde bir sorun yok diyebiliriz. CTRL+C ile durdurabilirsiniz.
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 çabucak hemen her değişikliği yapmanıza imkan tanıdığı için root biçiminde işletim sistemini kullanmak güvenlik manasında epey risklidir. Biz Linux dağıtımlarından alışkın olduğumuz sudo isimli aracı kurup yapılandırarak bu sorunu aşacağız. Gereksinimimiz 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. Şayet uğraşmak istemiyorsanız komutu -y parametresiyle pkg install -y sudo biçiminde yazmanız durumunda size sormadan hepsine y yanıtı verilip suram gerçekleşecektir.
Aynı formda pkg install nano diyerek Nano metin editörümü de kuruyorum. Masaüstü ortamını çalıştırmak için gereken yapılandırma belgelerini düzenlerken sık sık bu araçtan faydalanacağız.
Bu adımları yaptıktan sonra exit diyerek “root” kullanıcısından çıkalım. sudo su diyerek olağan kullanıcımızın yetki düzeyini yükseltmeye çalıştığımızda “sudoers” evrakına ekli olmadığını söyleyen bir kusur alacağız. Bu belgemizi düzenlemek için için tekrardan su diyerek “root” oluyoruz ve visudo komutunu giriyoruz.
Açılan Vi editör yardımıyla “sudoers” evrakını güncelleyebiliriz. root ALL=(ALL:ALL) ALL yazan satırın çabucak altına akil kullanıcısını akil ALL=(ALL) ALL biçiminde ekliyorum. Son “ALL” sözünden çabucak evvelki boşluğu “TAB” tuşu ile bırakabilirsiniz.
Bunu en kolay 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 bu türlü yapmayıp çabucak alttaki # %wheel ALL=(ALL:ALL) ALL satırının başındaki # işaretini kaldırarak wheel kümesine da bu müsaadesi verebilirdik. Çünkü heyetim evresinde hatırlayacak olursanız kullanıcımızı wheel kümesine eklemiştik. Ben daha denetim edilebilir olduğu için direkt kullanıcımı yetkilendirmeyi tercih ettim.
Değişikliklerimizi kaydedip Vi editörden çıkmak için evvel klavyeden ESC’ye bastıktan sonra : işaretini yapıp wq yazarak enter basalım.
Artık sudo su komutu yardımıyla kendi kullanıcımızı kullanarak yüksek yetkilere ulaşabiliyoruz.
Masaüstü ortamını kurabilmek için öncesinde bir manzara sunucusuna sahip olmamız gerekiyor. Manzara sunucuları işletim sistemlerinde ekrandaki imajlar ve pencerelerin çizildiği, haberleşmenin sağlandığı en temel yapı diyebiliriz. Linux ve BSD dağıtımlarında çoklukla bu iş için sağlıklı çalışmasından dolayı X.Org tercih edilir. Biz de FreeBSD sistemimize Xorg kuracağız.
pkg install xorg komutuyla manzara 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.
Xorg heyetimi bittikten sonra, kullanıcı hesabımızı masaüstü ortamı heyetimi sonrası sağlıklı bir biçimde başlayabilmesi için görüntü kümesine almamız gerekiyor. FreeBSD’de kullanıcıları özel bir kümeye pw groupmod GrupAdı -m KullanıcıAdı halinde ekleyebiliyorsunuz.
pw groupmod görüntü -m akil komutu ile muvaffakiyetle görüntü kümesine hesabımı dahil ediyorum. Sistemi yine başlatıp id diyerek denetim ettiğimizde sürecimizin muvaffakiyetle gerçekleştiğini doğrulamış oluyoruz.
Bütün bu süreçleri yaptıktan çabucak 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. Öbürleri için de gereken süreçler kısmen değişebilmekle birlikte çoğunlukla benzeri.
pkg install -y mate komutunu veriyorum.
Ş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 çabucak sonra bize rc.conf içerisinde kimi düzenlemelerde bulunmamız gerektiğini söylüyor.
nano /etc/rc.conf ile sistem başlatılırken çalışacak olan komutları düzenleyelim. Varsayılan haliyle fotoğraftaki üzere bir rc.conf evrakına sahibiz.
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 halde açıklayacak olursak;
- dbus_enable: Çeşitli arayüzler (interfaces) ortasında proseslerin irtibat kurabilmesini sağlayan bir sistem servisidir. Mesela X manzara sunucusu üzerine kurduğunuz masaüstü ortamında pencerelerin ve programların düzgün bir halde çalışmasını “dbus” sağlar. Bu özellik ise D-Bus’ın faal 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 bağlantı kuran programlar, “hald” ile donanımda çeşitli fonksiyonları yerine getirirler. Örneğin bir flash bellek taktığınızda yahut çı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. Faal hale getirmek için bu seçeneği de “YES” olarak düzenlemeliyiz.
- slim_enable: Kurmuş olduğumuz Slim oturum yöneticisini etkinleştirmek için kullandığımız özellik.
Ayarları aşağıda gördüğünüz üzere yaptıktan sonra CTRL + S ve CTRL +X klavye kombinasyonlarıyla editörden çıkabilirsiniz.
Sistemi yine başlatıp kullanmaya başlamadan çabucak evvel son bir süreç yapmamız gerekiyor. X sunucusunun init (UNIX gibisi sistemlerde sistem kapanana kadar çalışmaya devam eden servis) konfigürasyon evrakına masaüstü ortamını başlatacak komutu girmeliyiz. Aksi halde “slim” oturum yöneticisi bizi karşılayacak ama 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.
Artık sistemi reboot komutuyla tekrar başlatıp grafik arayüzümüze kavuşabiliriz.
Oturum yöneticisi bizi karşıladığında kullanıcı ismimizi ve daha sonra parolamızı girelim. Türkçe karakterleri kabul etmeyebilir, bu durumla karşılaşırsanız parolanızı İngilizce klavye tertibine nazaran girerseniz sorun ortadan kalkacaktır.
MATE karşımızda. Bu haliyle biraz ilkel gözükse de düzenlendiği taktirde çok kusursuz bir masaüstü ortamı olduğunu söyleyebilirim. Esasen bu üslup özgür yazılımların en hoş yanı istediğiniz üzere özelleştirebilmeniz.
Arka planı değiştirip ayarlardan ekstra bir tema yüklemeden şöyle ortalama bir imaj elde etmek mümkün. Bütün adımları eksiksiz uyguladıysanız, tebrikler. Birinci FreeBSD sisteminizi kurdunuz.
Uzaktan bakıldığında FreeBSD üzere text-based konseyime sahip ve biraz Unix bilgisi isteyen işletim sistemlerinin yüklenmesi çok sıkıntı bir şey üzere gözükür. Fakat aslında hiç de o denli 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. Ancak bunun bile beşere çok şey kattığını söyleyebiliriz. Şayet rehberi büsbütün sabırla okuyup uyguladıysanız, BSD’ler ve genel olarak Unix gibisi 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 yalnızca CLI olan bir sisteme nasıl masaüstü ortamı kurabileceğinizi öğrendiniz. Umarız ki yararlı olmuştur. Tenkitleriniz için yorum yazabilir, sorularınız için Technopat Sosyal’de bahis açabilirsiniz.