FreeBSD, gerçek bir alternatif

ArticleCategory:

SystemAdministration

AuthorImage:

Georges Tarbouriech

TranslationInfo:[Author and translation history]

original in en Georges  

en to tr Murat Kaplan  

AboutTheAuthor:

Georges uzun zamandır bir Unix kullanıcısı. Bu büyük sistemin serbest sürümlerini çok seviyor.

Abstract:

Evet, şu anda LinuxFocus okuyorsunuz! Bununla birlikte, oldukça ilgi çeken, bir çok belirleyici özelliği olan başka serbest Unix'ler de var. Bu makale bir başka serbest Unix ile ilgili bir incelemedir: FreeBSD.

ArticleIllustration:

freebsd

ArticleBody:[The article body]

Niçin FreeBSD ?

Serbest Unix'lerden söz edilirken insanlar daima "Linux"'u düşünürler. Tabii ki Linux yaygın ve herkes (yada hemen hemen herkes) adını duymuştur. Yeni kullanıcıların sayısı giderek artıyor ve medya ("özelleştirilenler" yada diğerleri) etrafta daha fazla "gürültü" yapıyor. Bu başarının ana gerekçelerinden biri Linux'un özellikle en yaygın bilgisayar mimarisi olan Intel tabanlı makinelerde çalıştırılıyor olması. Elbette Unix'in arkasındaki fikirlerden biri "işlemci bizi ilgilendirmez" olduğundan beri diğer bir çok işlemciyle çalışabiliyor. Bununla birlikte, Linux geliştirilmiş çok daha "güvenilir" bir işlemcide o kadar başarılı olmayabilir, yada, en azından, bunun olması daha uzun zaman alabilir.
Ancak serbest Unix Linux ile sınırlı değildir: BSD "ailesi" de var. Üç çeşidi var: FreeBSD, NetBSD ve Open BSD. BSD, "Berkeley Software Distribution" yerine kullanılmıştır. Unix tarihi hakkında daha fazla bilgi isterseniz article 176 'ya bakabilirsiniz. (Bu makale BSD ile Sistem V arasındaki farklardan bahsetmez: bunun için bir kitap gerekir.)
Her bir çeşidi kendine özgü özelliklere sahiptir:

  1. NetBSD yeryüzündeki (nerdeyse) her ortamda, oldukça eski olanları da içermek üzere, çalışır: 30 yada 40 farklı ortam diyelim. NetBSD önceden bahsedilenlere delil sağlar: Unix işlemciyle ilgilenmez. Eğer işte yada evde hoş, eski "bir parça hurda"'nız varsa (sadece o değil tabi!) doğru seçimdir. Kişisel olarak, birkaç yıl Amiga yada Intel makinalarda kullandım ve çok memnundum.
  2. OpenBSD en güvenli Unix'lerden biri olarak bilinir. Sunucular için idealdir ve doğal olarak farklı işlemcilerle de çalışır. Büyük olasılıkla sanal ortamda sunucu olarak en çok kullanılmış sistemdir. Her nekadar evlerde bulunması umulmadık bir şeyse de herkes neye benzediğini bilir...
  3. FreeBSD öncekilerin bir "karışımı"'dır. Özellikle Intel va Alpha işlemciler için ayrılmıştır ve OpenBSD'nin güvenlik felsefesinin bir parçasını "miras olarak" almıştır. Linux'ta olduğu gibi, Intel işlemcilerle çalışması en yaygın BSD'lerden biri yapar. Ev kullanıcıları için iyi bir seçimdir. Bu işte kullanamayacağınız anlamına gelmez!
FreeBSD ile ilgili bir şey daha var: bu insanlar işlerini Mac OS X'in serbest yazılım kısmı için Apple ile "paylaştırırlar". Ve, ben de OS X'i çok severim... Aklımdayken, karışık algılanmasın: her ne kadar OS X BSD tabanlıysa da, FreeBSD ile çalışan için çekirdeğinde hiçbirşey yoktur. O NeXTstep üzerinde kullanılan bir Mach çekirdeği, OS X'in "babası": açıkça, NeXTstep 80'lerin sonunda doğduğunda , bu çekirdek bir parça gelişmişti.
Şimdi biz tanıştık... bir parça daha derinleşelim.

Free BSD'yi bulmak ve yüklemek

Serbest yazılımların çoğu gibi FreeBSD, FreeBSD sanal yöresinden çekilebilir. Açıkçası, bu hızlı bir bağlantı gerektirir. Endişelenmeyin: yeryüzünün her yerinde CD'lerini bulabilirsiniz.
Güncel sürümü (bu makale yazılırken) 4.6. Makale i386 sürümünden söz ediyor.
FreeBSD'yi CD-ROM 'dan (yada başka şekilde) yüklemek basittir... grafik arayüz olmadığında bile! Bu durumda onun yerine ncurses kullanırsınız. Sadece açıklamaları takip edersiniz ve FreeBSD sabit diskinize kurulur. Doğal olarak, sabit diskinizi bölümlemeniz, ağ yada çekirdekle ilgili birkaç yeni şeyi -seçimsel olarak- ayarlamanız gerekecek. Sonra, adından da belli olduğu gibi, yükleme işlerinin çoğunu yapmak için çok iyi bir araç olan "sysinstall" ile tanışacaksınız. Bütün paketleri yükleyebilir yada bağzılarını seçebilirsiniz. İstediğiniz zaman diğerlerini bir şekilde ekleyebilirsiniz.
Paketlerin yönetimi de çok basittir. Örneğin Solaris'te olduğu gibi "pkg" buyruğunu kullanabilir, yada "port"'ları yeğleyebilirsiniz. Kısaca, port'lar make ve make install ile derlemek için paketçiklerken, pkg buyruğu Linux'daki rpm yada deb buyruklarına benzer. Başka bir deyişle: hiçbirşey karışık yada zor değildir.
Linux ile karşılaştırmak için, yüklemeniz gereken Linux uyumlu bir paketi ekleyelim: Linux uygulamasını derleyip çalıştırmanıza izin verecek.
Bir kez daha, herşey açık, ve her adımı açıklayan çok iyi bir el kitabı da hazırlanmış. Üstelik, artık çeşitli dillerde var.
Bu gerekçelerle, bunun için çok fazla zaman harcamak için hiç bir sebep yok.

FreeBSD ayarları

Bir kez daha, herşeyi anlatmayacağız. Bilinmesi en önemli şey temel dosyaların nerede olduğu. Doğal olarak onları /etc dizini altında bulacaksınız. rc.birşey şeklinde adlandırılmışlar ve bir çok farklı kısım yönetilebilir: genel ayarlar, ateşduvarı, ağ, sysctl, vb.
İsminden de belli olduğu gibi en önemlilerinden biri konfigürasyonun yapıldığı rc.conf dosyası. Bu dosyada sisteme olsa da olmasa da bazı sistem süreçlerinin (sshd, sendmail, vb), başlamasını, ateşduvarınızın tipini, çekirdek güvenlik seviyesinin durumunu, IPv6'nın durumunu vb söyleyebilirsiniz. Burada birçok seçenek bulunur ve hepsinin ön tanımlı durumunu /etc/defaults/rc.conf. dosyalarında bulabilirsiniz. Karışık gelmesin: bu dosya örnekleri değil, ön tanımlı kurulumu içerir. /etc/rc.conf bu ön tanımlı kurulumun üzerine yazılır. Başka bir deyişle, /etc/defaults/rc.conf dosyasını /etc/rc.conf olarak kopyalamayın, yada değiştirmeye çalışmayın. Değişiklikler /etc/rc.conf dosyasında yapılmalıdır.
Bilgi için, sysinstall da yapılan seçimler otomatik olarak /etc/rc.conf içine yerleştirilir (network kart ayarları, hostname, secure level, vb)
Çok önemli bir not: FreeBSD'de başlangıçta /etc/inetd.conf içindeki hiçbir servis aktif değildir. Yani, ilk başlangıçta, inetd 'den yönetilen bütün süreçler kapalıdır. Benim mütevazi önerim, bu bütün Unix sistemlerinde zorunlu olmalı. Her nasılsa, iyi bir nokta!
Öteki rc dosyaları ateşduvarı yada syssctl'yi yada diğerlerini ayarlamanızı sağlar. Bu doğal olarak bize FreeBSD ince ayarında yol gösterir.

FreeBSD ince ayarı

İnce ayar için en iyi araç sysctl'dir (Linux'ta da öyle!). Buyruk satırından özel değerleri belirterek kullanabilir, yada sysctl.conf dosyası oluşturabilirsiniz. (buyruk satırından yapılan denemeler haricinde tavsiye edilir)
Örneğin, makinanız "gateway" olarak kullanılacaksa, sysctl ip yönlendirmesini sysctl -w net.inet.ip.forwarding=1 buyruğu ile yapılmasını sağlar. Daha iyi bir güvenlik için, arayüzün yerini tutan bir ip adresine sahip arayüzden gelen paketler sysctl -w net.inet.ip.check_interface=1 komutuyla kontrol edilebilir. Sisteminizin birçok durumdaki davranışını sysctl'yi kullanarak kontrol edebilirsiniz: man sayfasına bakın. Açıkçası, bunları sysctl.conf dosyasına yazmak isterseniz, argümanlarını sysctl buyrukları olmadan dosyaya ekleyin. Dosya variable = value formatını kullanır. Bu durmda yukarıdaki örnek şu hale gelir:
net.inet.ip.forwarding=1
net.inet.ip.check_interface=1
Doğal olarak kendi sysctl.conf dosyanız, çekirdek seviyesinden başlayarak nerdeyse, hemen hemen herşeyi kontrol etmeniz için iki satırdan çok daha fazlasını içerecek!
Bu makalenin başında, güvenlik seviyelerinden bahsettik. -1 'den 3'e dört farklı seviye vardır. -1 güvenli olmayan seviyeyi, 3 ise en yüksek güvenlik seviyesini belirtir. Bir güvenlik seviyesi seçilmeden ne yaptığının anlaşılmış olması önerilir. -1 yada 0 'dan farklı seviyeleri kullanmak bir sistemin beklendiği gibi çalışmamasına sebep olabilir. Örneğin seviye 1, X sunucusunu kullanmanızı uygun bir şekilde önleyebilir. Örneğin çekirdek modüllerini yüklemeye yada kaldırmaya çalıştığınızda sistem tarafından uyarılırsınız.
Bununla beraber, bu yüksek güvenlik seviyeleri yüksek güvenlik gereksinimleri olan özel bir sunucu için kullanışlı olabilir. Ev kullanıcısı için 0 seviyesinde tutulmalıdır ama bu sizin için fazla olabilir...
chflags buyruğu güvenlik seviyeleriyle bağlantılıdır. Bu buyruğu da araştırın, man sayfasını okuyun: çok güçlü bir buyruktur.
Bu şekilde devam edersek makale "securing FreeBSD" olacak, sonraki bölüme geçelim.

FreeBSD 'nin sürümünü yükseltmek

Diyelim ki FreeBSD 4.5 CD takımını aldınız. Bir kaç gün sonra, FreeBSD 4.6 sürümü çıktı. Kötü şans!
Endişelenmeyin: FreeBSD bir güncelleme sistemi olan CVS ile birlikte gelir. CVS yada CVSup buyruklarını kullanabilirsiniz. İlkinin kullanımı daha kolayken ikincisi daha beceriklidir. Bu araçlarla yeni kaynak ağacı içerilecek şekilde uyumlu hale getirilir.
Sonra, yeni bütün paketleri make buildworld'u kullanarak derlemeniz gerecek. Bunu nasıl yapacağınız el kitabında oldukça iyi bir şekilde açıklanmış. Önemli olan nokta, her zaman güncellemeyle yepyeni bir sistem sahibi olmanızı sağlar.
Bununla birlikte, hepsi bu kadar değil. Serbest yazılıma gelince, nerdeyse her zaman aksaklıklar bulunabilir ve oldukça hızlı bir şekilde çözülür. Serbest olmayan sistemlerde bir aksaklık çözülmeden kalabilirken, farklı olarak (ve bir günde) serbest yazılım içindeki insanlar ışık hızıyla tepki verirler ve sizi yamalarla donatırlar. Aslında neler olduğunu kontrol etmek sizin işinizdir. FreeBSD sanal yöresi sürümlerine göre önerileri içeren bir güvenlik bölümü içerir. Oradan bilmeniz gerekenleri yazan .asc dosyalarını (text dosyaları) -problemin tanımı ve çözümünü içeren- indirebilirsiniz. Diğer sanal yöreler de bu bilgiyi size sağlar. Adını anmak gerekirse, örneğin, linuxsecurity, CERT, vb.
Tabii ki bunun anlamı sisteminizi güncellemenizin gerektiğidir.

FreeBSD'yi güncellemek

İyi bilinen zayıflıkları sisteminizde tutmak istemezsiniz, değil mi? Öteki serbest Unix'ler gibi FreeBSD size yamalarını sağlar. Gidip bu yamaları alın ve uygulayın. Linux kullanıcıları için ana fark uyumlu paket yerine kaynak yamasının alınmasıdır. Bunun anlamı, yamasını yaptıktan sonra çekirdeği tekrar derlemek zorunda kalacak olmanız. Bu tabi ki makinanıza yüklenen kaynak kodu kastediyor. Bu Linux altında doğru, ancak insanlar sıklıkla yamanmış çekirdekler için en azından düzeltilmiş uygulamalar için değiştirilmiş rpm 'leri indirirler.
Linux ile FreeBSD arasındaki en önemli fark çekirdekle gelir. FreeBSD, BSD 4.4 üzerine kurulmuştur ve Linux dünyasındaki kadar çeşitli çekirdek sürümleri yoktur. Bu sebeple kararlı bir çekirdektir ama tabi ki çok büyük zaman sonucunda oluşmuştur hatta modüllerden bile yararlanılabilir. Bunun dezavantajı, sisteminizi olabildiğince güvenlikli durumda tutmak istiyorsanız çekirdeğinizi Linux'ta olduğundan çok daha sık derlemenizin gerekecek olmasıdır.
Her neyse, ben bu felsefeyi Linux'dakine tercih ederim ama bu sadece benim görüşüm. Diyelim ki, üç farklı çekirdeği çalışır halde kararlı tutabileceğini düşünmüyorum. Uygulamaların da, özellikle de güvenlikle ilgili olanların, bir sürümden diğerine eklenmelerinin gerekli olduğu anlamı da çıkmaz. Bir diğer örnek paket filtreleme sistemi olabilir: 3 çekirdek sürümü, 3 farklı paket filtreleme sürümü! Ve benzerleri.
İnsanların bu büyük işi yapmalarına saygı duyarım ama bu doğru yolu mu? İyileştirme daima buna gereksinim duyar ama her zaman herşeyi değiştirmek uygun mu? !
Tabii ki gereksinimlerinizi karşılamak için de yeni bir çekirdek derleyebilirsiniz ve o zaman Linux altındaki gibi olur. Bunu yapmanın yolu el kitabında oldukça ayrıntılandırıldığından başka konulara geçelim.

Uygulamalar

Her zaman söylendiği gibi, serbest yazılım uygulamalarının büyük çoğunluğu (hepsi değilse de) FreeBSD altında çalışır. Yukarıda bahsedilen portlara yada paketlere gereksiniminiz olmaz. Ulaşılabilen paketlerin çoğunu yazılımın türü ne olursa olsun derleyebilirsiniz.
Masaüstü ortamı bağımlıları için Gnome ve KDE, dağıtımlar tarafından içerilirler. Aynı şey pencere yöneticileri için de geçerlidir. Büyük GNUstep çatısı FreeBSD altında da oldukça iyi çalışır. Derlemek için daha yeni bir gcc sürümüne gereksiniminiz varsa sorun değil, o da dağıtımın içindedir! Sadece uygun paketi edinip yeni derleyiciyle derleyin. Açıkçası GNUMail.app, Gorm.app yada ProjectBuilder.app gibi GNUstep uygulamaları da oldukça iyi çalışır.
Gerçekten Linux altında çalıştırdığınız bütün yazılımlar ve diğer birçoğu FreeBSD için de edinilebilir.
Örneğin FreeBSD güvenlik hakkında bir demet araçla birlikte gelir. Monitoring, managing ve benzeri araçlar dağıtımın bir parçasıdırlar.
Ateşduvarları, proxy'ler, port tarayıcıları, IDS, vb. 'ye de ulaşılabilir. Örneğin IPsec yada ipfw'den birini seçebilirsiniz. Nessus, nmap, portsentry, vb. 'yi kullanabilirsiniz. Birçoğu dağıtımın bir parçasıdır ve sizi son sürümlerini edinip derlemenizden alıkoyacak hiçbir şey yoktur.
Masa üstü ortamı yada pencere yöneticilerinden bahsettik ama X Pencere Sistemi'nin çalışabilmesi için ne gerektiğini söylemedik. Şu anda XFree 4.* ön tanımlıdır. Bilgi olarak, FreeBSD 4.5'e kadar XFree 3.* ön tanımlıydı. Yani, dağıtımda XFree 4.*'a sahiptiniz ama yükleme sürecinde XFree 3.* seçiliydi . Artık XFree 4.* ön tanımlı ama isterseniz hala 3.* sürümünü kullanabilirsiniz.

Donanım

i386 'lardan bahsederken, donanımların çoğuyla, biraz eski de olsalar FreeBSD altında çalışılabileceğini söyleyelim. Örneğin eski bir 3Com combo network kartı siz ifconfig byruğunda ortam tipini girer girmez çalışacaktır. Bir BNC bağlantısı kullanıyorsanız /etc/rc.conf 'daki ifconfig satırının sonuna media 10base2/BNC eklemeniz yeterlidir.
Bağzı eski görüntü kartları için de aynı durum geçerli: XFree 4.* kullanmak problemlerin çoğunu çözecektir. Bu daha eski ATI kartlar için ise kısmen doğrudur.
Her neyse, emin olmak için FreeBSD sanal yöresindeki donanım notlarına başvurabilirsiniz.

Güvenlik

Şu ana kadar ateşduvarı, port tarayıcısı vb. gibi birkaç araçtan bahsettik. FreeBSD birçok başka güvenlik aracıyla birlikte gelir. OpenSSH, OpenSSL, Kerberos, MD5, vb. bu dağıtımların bir kısmıdır. Doğal olarak, bu araçlar olmadan yaşayamazsınız ve yeni görülmüş zayıglıkları da kontrol etmelisiniz.
Güncel bir örnek çok dikkatli olmanın önemini gösterir. Örneğin, diyelim ki, OpenSSH'da bulunan bir açık hakkında uyarıldınız. Doğru davranış sanal yöresine gidip uygun sürümünü indirmektir.
Evet, ancak bu yeterli değildir! Lütfen paketleri kontrol edin.
OpenSSH örneği keyfi bir örnek gibi alınmamalı: birkaç hafta önce biri orjinal yerine bozuk sürümü yerleştirdi. Doğal olarak insanlar OpenSSH ile odukça hızlı etkileştiler. Her nasılsa kullnıcılar geçen bu kısa sürede tam kontrol yapmadan bu "kötü" sürümü yüklediler. Bu sebeple, checksum 'ın kullanılması gerekli... ve kontrolü gerekli.
Bu makalenin bakış açısının dışında da olsa bir tavırdan önce güvenlik konusunda ısrar edelim.

İletişim

FreeBSD altında ağ işlemleri oldukça gelişti. IPv6 uygulaması oldukça başarılı. İletişimin yeni anlamı bir kenarda bırakılmış değil. ADSL yada kablo modem kullanıyorsanız ayarları oldukça kolay.
Bugün birçok ISP, PPPoE kullanıyor. FreeBSD bunu oldukça basit bir şekilde yönetiyor: ppp.conf'da birkaç satır işi görüyor. PPPoA (ATM) için şimdilik sadece Alcatel modem destekleniyor. Bu çok yakın gelecekte değişecektir (belki şu sıralarda başka desteklenen modemler de vardır).

Kaynakyazı

Sağlanan el kitabı edinilebilen tek kaynakyazı değil. FreeBSD sanal yöresinde bir SSS (Sıkça Sorulan Sorular), bir yükleme rehberi, vb bulabilirsiniz. Bir başka önemli bilgi kaynağı da http://www.freebsd-howto.com adresinde bulunabilir.

Sırada ne var?

Bu FreeBSD'nin oldukça kısa bir incelemesi. Bu sistem, diğer serbest Unix'ler gibi oldukça ilginçtir. Birkez denenmeyi oldukça hak eden birçok çok önemli özelliği var. Ne yazık ki bir çok önemli özelliğine değinilmedi ve bu makale tam bir inceleme olamaz.
FreeBSD, "Windowsumsu" Linux dağıtımlarına göre biraz daha fazla Unix bilgisi gerektirsede kullanım kolaylığı aynen kalır.
Hiç Unix bilgisine sahip olmayan insanlar tabi ki sistem güncellemesinden sonra sık sık çekirdek derlemek zorunda kalınca zorluklar yaşayabilirler. Ancak bu "biraz" zaman alsa da öğrenmenin iyi bir yoludur. İnsanlar başlangıçta geliştirenlerinin Unix'i, sıradan yada ev kullanıcıları için değil, geliştirenler için ürettiklerini unutmuş gibi görünüyorlar.
Neyse ki serbest ve sahibi olmayan Unix'ler bu temel yaklaşımı değiştirdiler. Bu olasılığın gerçekleşmesini sağlayan bir çok geliştiririciye teşekkürler. Seksenlerde bugünün Linux kullanıcılarının çoğu, sadece yükleme işlemleri yüzünden Unix'den kaçıyorlardı. Dağıtımlar bantlarla geliyordu ve yükleme safhası bütün bir çalışma gününü alabiliyorken, ayarlar en az sonraki güne gereksinim duyuruyordu. Buna uygulama ayarları dahil değil! Ve bugün, Unix'i Mac OS X gibi bir sistemle hatta Unix'i bilmeden bile kullanabilirsiniz. Doksanların başından beri "baba" OS X, NeXTstep ile bu bir gerçek.
Konu dışı görünebilir, ama NeXTstep serbest ve sahibi olmayan Unix'lere, ve bazı diğerlerine yol göstemiştir! Unix'i ev kullanıcılarına getirmek bir meydan okumaydı ve sonunda bu gerçekleşti. Bu meydan okumanın içinde yer alan, ücretli yada ücretsiz çalışan bütün insanlara tebrikler. Karşılıksız olarak çalışanlar özellikle çok daha fazla teşekkürü ve anılmayı hak ediyorlar ;-)
FreeBSD'nin Apple ile "paylaşılması" bana çok güzel görünüyor. Her biri diğerinden doğru şekilde yararlanıyor. Sahibi olmayan yazılımlar daima - yüksek sesle "bağrılmadan"- serbest yazılımlar olarak kullanıldı. Apple serbest yazılım kullandığını açıkça söyler ve SGI yapar. Bağzı diğerleri aynı şeyi yapıyor görünüyorlar... ama açığa vurulmamış gerekçelerle. Her neyse, oranın bütün "oda" olmak isteyenler hariç herkes için bir "oda" olduğunu düşünmeye devam edeceğim.
Linux hakkındaki "gürültü" diğer serbest Unix'leri karanlıkta bırakıyor: şimdiye kadar, çok iyi. Bu parlak bir tarafı olabilir... ve bu benim neden FreeBSD kullandığımın da temel sebebi. Linux kullanmaya da doğal olarak devam ediyorum (başka birçokları gibi): çeşitliliği severim!
Canınız FreeBSD'yi bir denemek isterse bu makale boşuna olmayacak. Kendiniz deneyecek ve burada bahsedilmeyen birçok şey keşfedeceksiniz.
Size söyledim: önemli bir zamanda yaşıyoruz!