FreeBSD ® to wolny (od wolności) system uniksopodobny z rodziny BSD powstały w 1993 roku. FreeBSD jest zaawansowanym system operacyjnym dla nowoczesnych serwerów, komputerów biurkowych oraz tzw. Embedded Computer Platforms. Kod FreeBSD ulegał (i wciąż ulega) ciągłemu udoskonaleniu i optymalizacji. Jest rozwijany i utrzymywany przez duży zespół deweloperów z całego świata. FreeBSD zapewnia imponujące funkcje bezpieczeństwa i wydajność na światowym poziomie, dlatego jest wykorzystywany przez wiele firm, które korzystają z tego systemu na co dzień: Yahoo Inc., Netcraft etc. Jak większość systemów UNIX®, FreeBSD stanowi doskonałą platformę dla wielu usług internetowych, w tym: Anonimowy FTP, Serwer Proxy, Router, Firewall, system wykrywania włamań (IDS) i wiele innych. Planując instalację warto zapoznać się ze stroną; http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/. Pomijając ten krok, prawdopodobnie będzie konieczna ponowna instalacja.
Bezpieczeństwo
FreeBSD zawiera wiele mechanizmów zwiększających poziom bezpieczeństwa. Wykorzystując narzędzie freebsd-update(8) możemy w łatwy sposób zaktualizować system (tzw. binarna aktualizacja) bez konieczności kompilacji czegokolwiek w systemie (UWAGA! dotyczy to systemów z jądrem GENERIC!) . Po drugie, narzędzie to wspiera możliwość aktualizacji pomiędzy wersjami np. z 8.1 do 8.2-RC2 itd. Portaudit(1) umożliwia sprawdzenie, czy zainstalowane pakiety nie znalazły się na liście pakietów z lukami bezpieczeństwa. Zobacz również dokument FreeBSD VuXML. Istnieje projekt TrustedBSD, którego celem jest opracowanie rozszerzeń zwiększających poziom bezpieczeństwa FreeBSD i spełnienie wymagań CommonCriteria. Projekt pozwala programistom na dostosowanie modelu bezpieczeństwa dla określonych środowisk, od tworzenia polityki do „utwardzania” systemu. Administratorzy mogą śledzić dostęp do plików, wykonane polecenia, aktywność sieciową a także szereg innych nietypowych zachowań systemu. Projekt TrustedBSD składa się z następujących komponentów:
- listy kontroli dostępu Access Control Lists,
- audyt zdarzeń event auditing oraz OpenBSM (używany w systemach Solaris i Mac OS X)
- rozszerzone atrybuty systemu plików UFS 2 (extended attributes and UFS 2),
- dokładna kontrola przywilejów fine-grained capabilities,
- modularny framework dyskowy GEOM
- GBDE zapewnia ochronę kryptograficzną systemów plików w warstwie GEOM.
- narzucona kontrola dostępu Mandatory Access Control (MAC),
- implementacja dołączalnych modułów uwierzytelniania (PAM) OpenPAM.
Domyślnie FreeBSD używa algorytmu MD5 do szyfrowania haseł (ze względu na kod źródłowy algorytmu DES, który nie mógł być eksportowany poza USA, rozwiązaniem okazało się podzielenie bibliotek szyfrujących, które obecnie wspierają DES, MD5 i Blowfish). Ntalkd, comsat, i finger działają w tzw. sandbox; inaczej mówiąc umieszczone są wewnątrz zestawu wirtualnych ścian. Wykorzystując mechanizm sysctl(8), jądro może pracować z pięcioma (od -1 do 3, właściwie od 1 do 3. (-1/0 insecure level)) różniącymi się funkcjami, poziomami zabezpieczeń, oferującymi między innymi brak możliwości zapisu i odczytu dla /dev/mem oraz /dev/kmem, moduły jądra (zobacz kld(4)) nie mogą zostać załadowane bądź usunięte, reguły filtra pakietów (zobacz ipfw(8), ipfirewall(4), i pfctl(8)) nie mogą zostać zmienione w jakikolwiek sposób i wiele więcej. W połączeniu z ulepszeniami systemu plików, takich jak snapshots, FreeBSD oferuje listy kontroli dostępu zwane Access Control Lists. Ta funkcja umożliwia administratorowi skorzystanie z bardziej wyrafinowanego modelu zabezpieczeń. Więcej informacji możemy znaleźć czytając oficjalny Handbook (http://www.freebsd.org/doc/handbook/security.html) bądź stronę podręcznika security(7).
Warto odnotować, że w wydaniu FreeBSD 9.0 pojawi się Capsicum służący do bezpiecznej izolacji wrażliwych procesów. Capsicum może okazać się przydatnym, lekkim narzędziem w procesie zwiększenia bezpieczeństwa systemu operacyjnego.
System portów
System portów FreeBSD umożliwia bezproblemową instalację i aktualizację ponad 20000 programów. Zwany jest również drzewem portów (ang. ports tree), kolekcją portów (ang. ports collection) lub krótko portami (ang. ports). Jest pierwowzorem systemów portów w rodzinie systemów BSD. Został przejęty i jest dalej niezależnie rozwijany (stosowanie do potrzeb danych projektów) przez NetBSD (pkgsrc) i OpenBSD (ports). Każdy port zawiera wszystkie łaty niezbędne dla oryginalnego źródła aplikacji, aby skompilować kod i uruchomić go w systemie FreeBSD.
Każdy port posiada plik `Makefile`, który automatycznie pobierze kod źródłowy aplikacji, albo z lokalnego dysku twardego, bądź wykorzystując CD-ROM lub przez FTP, rozpakuje go i nałoży wszystkie potrzebne łaty. Wydanie polecenia `make install` zainstaluje aplikację i zarejestruje ją w systemie pakietów (przykład: # cd /usr/ports/x11-wm/ratpoison/; make install, aby zainstalować menadżer okien ratpoison).
Postępowanie takie daje możliwość dostosowania wszystkich możliwych opcji (przykład: # make config, oczywiście nie wszystkie porty mają dodatkowe, możliwe do ustawienia opcje/funkcje!). Jednakże czas kompilacji tak dużych programów jak KDE, GNOME czy OpenOffice.org może być po prostu zbyt długi (nie mówiąc już o innych potrzebnych zasobach, takich jak pamięć operacyjna i dyskowa). Sytuację ratują gotowe pakiety binarne, które można łatwo zainstalować wykorzystując pkg_add(1) (np. # pkg_add -r ratpoison, żeby zainstalować menadżer okien ratpoison). Zarówno pakiety jak i porty mają swoje zalety, więc ich wykorzystanie zależy głównie od własnych preferencji.
Konieczne jest regularne aktualizowanie drzewa portów za pomocą programu cvsup lub szybszego i bezpieczniejszego portsnap(8). Portsnap może również posłużyć do wygodnej instalacji systemu portów (ściągnięcie i rozpakowanie).
System portów FreeBSD jest bardzo rozbudowany i nie ma tu miejsca na jego szczegółowe omówienie. Więcej informacji można znaleźć w podręczniku użytkownika i stronach man ports i portsnap. Bardzo przydatne są dodatkowe narzędzia takie jak: portupgrade, portmaster lub pakiet bsdadminscripts (# pkg_add -r bsdadminscripts; zawierający ciekawe narzędzie pkg_upgrade – więcej na stronie podręcznika) do aktualizacji portów i pakietów, bądź psearch do łatwego wyszukiwania interesujących nas aplikacji (np. $ psearch firefox).
UWAGA! Aktualizując zainstalowane aplikacje, należy pamiętać o dokładnym przejrzeniu pliku /usr/ports/UPDATING, zawierającego specjalne adnotacje dotyczące pakietów/portów, które wymagają specjalnego podejścia podczas procesu aktualizacji.
Dokumentacja
Jak wszystkie znaczące systemy z rodziny BSD, FreeBSD jest bardzo dobrze udokumentowany. Do dyspozycji użytkownika są m.in.: strony man, wyśmienity podręcznik użytkownika opisujący dosłownie każdy aspekt dotyczący korzystania i konfiguracji FreeBSD, obszerne FAQ, fora oraz książki i ciekawie napisane artykuły. Z uwagi na popularność systemu, nie brakuje również materiałów w języku polskim. Tak zorganizowany system dokumentacji stanowi doskonałą pomoc dla osób chcących poznać FreeBSD.
Po zainstalowaniu
Po udanej instalacji FreeBSD, warto skonfigurować różne dostępne opcje[1], warto także pobrać system portów, zapoznać się z częściami podręcznika użytkownika, które opisują często wykonywane czynności oraz poznać podstawy administrowania systemem. Niektórzy będą zapewne chcieli zmienić domyślną powłokę csh na inną, np. na BASH. W portach jest wiele powłok do wyboru. Pomocne wskazówki na temat optymalizacji wydajności zawiera strona man tuning(7).
Użytkownicy, którzy potrzebują płatnej pomocy technicznej lub szukają produktów związanych z FreeBSD, powinni zapoznać się z ofertą firm i konsultantów. Dla osób zainteresowanych instalacją środowiska graficznego istnieją odpowiednie strony;
- GNOME http://www.freebsd.org/gnome/
- KDE on FreeBSD http://freebsd.kde.org/
- Środowiska graficzne; http://www.freebsd.org/doc/handbook/x11-wm.html
Podsumowanie
Info
- Najnowsze wydanie: 9.0, 8.2 (Production), 7.4 (Legacy)
- Nadchodzące wydanie: 8.3 (Schedule under construction)
- Current: 10.0
- Format pakietów: tgz
- Menedżer pakietów: pkg_add/delete/info…(1) zestaw narzędzi służących do manipulacji pakietami binarnymi, system portów, BSD Ports Manipulator (BPM) graficzny menedżer kolekcji portów etc.
- Architektura: alpha, arm, armel, i386, ia64, mips, mipsel, sparc64, pc98, powerpc, powerpc64, ps3, x86_64, xbox
- Desktop: Blackbox, Enlightenment, Fluxbox, GNOME, IceWM, KDE, LXDE, Openbox, WMaker, Xfce etc.
Plusy
- Bardzo wysokie bezpieczeństwo
- FreeBSD is Free
- Kompletny system operacyjny oparty na 4.4BSD
- Ponad trzydzieści lat ciągłego rozwoju i audytu kodu (szybkość, stabilność i niezawodność)
- Błyskawiczna reakcja na znalezione błędy
- Projekt TrustedBSD (zaawansowane funkcje bezpieczeństwa)
- Mechanizm jail(8)
- Najpopularniejszy system BSD
- Dobra dokumentacja, dużo samouczków i artykułów, w tym po polsku
- Zaawansowany system portów + narzędzia ports-mgmt
- 22898 aplikacji dostępnych w portach (stan na Grudzień 2011 r)
- Obsługa wirtualnego bufora ramki
- System plików ZFS (więcej; http://wiki.freebsd.org/ZFS)
- Czytelne i dobrze skomentowane skrypty startowe w stylu BSD
- Niskie wymagania sprzętowe
- Zgodność binarna z Linuksem (obsługa Adobe Flash Player itp.), SCO UNIX, *BSD, Solaris
Minusy
- Brak graficznych konfiguratorów (są takie w PC-BSD i DesktopBSD, które są oparte na FreeBSD)
- Mniej popularny niż GNU/Linux, mniejsza społeczność
- Mniejsze wsparcie dla różnych (nietypowych) urządzeń, sprzętu
- Problemy z ACPI; suspend/resume[2]
- Tekstowy instalator może być utrudnieniem dla początkujących użytkowników (wersja 9.0 wprowadza bsdinstall; http://www.freebsd.org/doc/handbook/bsdinstall-start.html, natomiast instalator PC-BSD zwany pc-sysinstaller, umożliwia graficzną instalację FreeBSD)
- Pracochłonny w dostosowywaniu tzw. Desktopu(jedynie na początku użytkowania)
- Opinia systemu trudnego, będącego nie na czasie
Więcej informacji
- Oficjalna strona FreeBSD
- Oficjalne Forum; http://forums.freebsd.org/
- Zdobywanie FreeBSD; http://www.freebsd.org/where.html
- Opis FreeBSD na Wikipedii po polsku i angielsku
- FreeBSD@DistroWatch
- Wspierane wydania FreeBSD; http://www.freebsd.org/security/security.html#sup
- Informacje o wydaniach; http://www.freebsd.org/releases/
- Dokumentacja luk bezpieczeństwa w kolekcji Portów; http://www.vuxml.org/freebsd/
- Wyszukiwanie portów; http://www.freebsd.org/ports/searching.html
- FreshPorts; http://www.freshports.org/
- Korzystanie z kolekcji portów (pl); http://freebsd.therek.net/handbook/ports-using.html
- [1] Post-installation; http://www.freebsd.org/doc/handbook/install-post.html
- [2] Bieżące problemy; http://lists.freebsd.org/pipermail/freebsd-acpi/2011-December/007369.html , TODO; http://www.freebsd.org/projects/acpi/)

JakiLinux
