Solaris Administrator's Security Guide

Zawartość rozdziału:

  1. Instalacja systemu

2. Instalacja systemu

2.1. Odłączenie hosta od sieci komputerowej

Pierwszym krokiem - o ile nie będziemy korzystać podczas instalacji systemu z sieci komputerowej - jest fizyczne odłączenie hosta od sieci.

Zapobiegnie to włamaniom, które mogą mieć miejsce zaraz po zakończeniu instalacji, gdy system nie jest jeszcze zabezpieczony, a usługi sieciowe (zwłaszcza RPC) są udostępnione całemu światu.


2.2. Hasło zabezpieczające OpenBoot PROM

Jeżeli system instalujemy na platformie SPARC, należy włączyć korzystanie z hasła w otoczeniu OpenBoot PROM:

ok setenv security-mode command
lub
ok setenv security-mode full

a następnie ustawić hasło poleceniem:

ok setenv security-password <password to set>
security-password = 

Powyższe ustawienie zapobiegnie przypadkowemu bądź umyślnemu zatrzymaniu pracy serwera za pomocą kombinacji klawiszy STOP-A lub próbom uruchomienia systemu z płyty CD. Zamiast opcji "command" w poleceniu "security-mode" można zastosować "full", lecz w tym przypadku nie będzie możliwy restart systemu bez podania hasła. Opcja "command" spowoduje wymuszanie podawania hasła przy każdorazowej próbie uruchomienia systemu z dodatkowymi opcjami, przy czym normalny restart nie wymaga podawania hasła.


2.3. Skąd instalować?

Optymalnie bezpiecznie - z oryginalnego nośnika CD. W celu rozpoczęcia instalacji w OpenBoot PROM wydajemy polecenie:

ok boot cdrom - install
Należy upewnić się również, że opcja auto-boot jest ustawiona następująco:
ok setenv auto-boot? true

W przypadku platformy INTEL należy skorzystać z dołączonej dyskietki Configuration Assistant.

Jeżeli decydujemy się na instalację systemu z użyciem sieci komputerowej, należy pamiętać, że gdy połączenie z install-serwerem nie jest fizycznie odseparowane od sieci publicznej to od momentu rozpoczęcia instalacji serwer jest narażony na ataki z sieci (patrz: punkt 2.1).


2.4. Initial czy Upgrade?

Bezapelacyjnie instalacja typu initial. W przeciwieństwie do instalacji typu upgrade uniemożliwi ona pozostawienie "tylnych drzwi" z poprzedniej wersji systemu.


2.5. Ilość partycji

Ze względów bezpieczeństwa zalecamy utworzenie co najmniej następujące partycje:

/ (pliki konfiguracyjne, punkty montowania itp.)
/var (dzienniki zdarzeń, poczta elektroniczna, etc.)
/usr (oprogramowanie systemowe)
/export/home (katalogi domowe użytkowników)
/usr/local lub /opt (oprogramowanie dodatkowe)
swap (pamięć wirtualna)

Partycja / powinna zawierać tylko pliki konfiguracyjne serwera oraz katalog domowy administratora. Ze względu na fakt, że przepełnienie tej partycji jest krytyczne dla całego systemu, prawa zapisu do niej powinien posiadać wyłącznie użytkownik root. W praktyce jej wielkość rzędu 150 MB jest w zupełności wystarczająca.

/usr, /usr/local (lub /opt) - partycje te powinny być przeznaczone do instalacji oprogramowania. Zaleca się, aby partycja /usr była - po zakończeniu instalacji - montowana w trybie read-only. Dzięki temu można utrudnić modyfikację oryginalnego oprogramowania przez potencjalnych intruzów. Partycja /usr/local (lub /opt) ma służyć głównie instalacji dodatkowego oprogramowania, jak np. GNUgzip, GNUmake, Perl itp. Ponieważ w praktyce zawartość takich partycji może być często zmieniana, utworzenie jej jako osobnej do /usr niesie ze sobą wiele korzyści.

Partycja /var służy głównie do zapisu dzienników zdarzeń, poczty elektronicznej itp. Przeważnie jest to partycja o stosunkowo dużej wielkości - głównie ze względu na logi. Jeżeli jednak logi będą wysyłane na inny serwer, a system nie będzie używany jako serwer poczty elektronicznej czy grup newsowych - nie ma wówczas potrzeby na poświęcanie dużej ilości miejsca na powyższą partycję.

Z kolei konta użytkowników są umieszczane na partycji /export/home, którą (np. gdy używany będzie system NIS+) można eksportować poprzez NFS. Niestety, używanie NFS nie bez echa może odbić się na ogólnym bezpieczeństwie systemu.

Ostatnia partycja - swap - będzie wykorzystywana w systemie jako pamięć wirtualna oraz szybka partycja /tmp. Jej wielkość proponuje się przeważnie jako 2-krotność posiadanej pamięci RAM. Ze swojej strony zalecamy jednak uwzględnienie wymagań oprogramowania, które ma być zainstalowane na serwerze, a ściślej mówiąc - jego "pamięciożerności". W przypadku dużych aplikacji może okazać się konieczne przeznaczenie większej ilości miejsca na tą partycję.

Dodatkowo, zalecamy również stworzenie osobnych partycji dla każdej z "większych usług" (serwer WWW, serwer anonimowego ftp, itp.) osobnej partycji, której wielkość należy dostosować do konkretnych potrzeb. Ze względów wydajnościowych zalecamy również włączenie loggingu, który może znacznie przyspieszyć operacje dyskowe.


2.6. Wybór pakietów do instalacji

Przede wszystkim należy instalować tylko te pakiety, które są niezbędne do pracy serwera. Im większa ilość oprogramowania zainstalowanego na serwerze (zwłaszcza typu SUID czy SGID), tym większe prawdopodobieństwo przejęcia praw administratora przez intruza.

Z punktu widzenia bezpieczeństwa, optymalną instalacją jest to instalacja typu "CORE", choć i ten rodzaj instalacji zawiera dużo zbędnych pakietów, które należy usunąć po zakończeniu instalacji.

Ze swojej strony zalecamy instalację typu "CORE" (gdy środowisko graficzne jest zbędne) lub "END USER" (w przypadku gdy chcemy korzystać z systemu X-Windows), a następnie dodanie wszystkich niezbędnych pakietów. O ile system musi być wyposażony w OpenWindows lub CDE, dużo wygodniej jest wybrać te pakiety przy użyciu opcji "Customize" w trakcie instalacji, niż później, ręcznie przy użyciu komendy pkgadd. To samo dotyczy podręczników systemowych (pakiety SUNWdoc (Documentation Tools) oraz SUNWman (On-Line Manual Pages)).

Następujące pakiety również powinny być zainstalowane (pomimo, że nie znajdują się nawet w wersji "CORE") :

SUNWfns      Federated Naming System

[oraz z grupy: System and network administration]
SUNWadmc     System Administration Core Libraries
SUNWadmfw    System & Network Administration Framework

SUNWfns jest wymagany przez program snoop, natomiast SUNWadmc oraz SUNWadmfw są niezbędne do popranwego działania polecenia showrev.

Dodatkowo, aby móc kompilować programy należy doinstalować następujące pakiety:

[grupa: Programming tools and libraries]
SUNWbtool    CCS tools bundled with SunOS 
SUNWlibm     Sun WorkShop Bundled libm 
SUNWlibms    Sun WorkShop Bundled shared libm 
SUNWsprot    Solaris Bundled tools 

SUNWtoo      Programming Tools 
SUNWlibC     Sun Workshop Compilers Bundled libC 
SUNWlibCf    SunSoft WorkShop Bundled libC (cfront version) 
SUNWhea      SunOS Header Files 
SUNWarc      Archive Libraries 

Pełna lista pakietów wraz z krótkim opisem (w przypadku platformy INTEL) znajduje się w dokumencie SUN Solaris 7 (INTEL platform) packages list.


2.7. Restart systemu


2.8. Hasło superużytkownika

Bezapelacyjnie jego długość powinna wynosić co najmniej 8 znaków, przy czym zalecane jest używanie w nim oprócz liter i cyfr - znaków specjalnych. Hasło roota powinno być zupełnie przypadkowe i nie przypominać żadnego sensownego słowa. Należy również pamiętać o jego zmianie, przynajmniej raz na 2 miesiące.

UWAGA!
Do czasu zmiany katalogu domowego konta root zalecamy logowanie się tylko w trybie tekstowym. Logowanie z użyciem CDE powoduje duże "zaśmiecanie" katalogu domowego superużytkownika, którym - w tym momencie instalacji - jest katalog główny. Zmiana katalogu domowego na inny nie wpływa na bezpieczeństwo systemu, jednakże pozwala utrzymać porządek w katalogu głównym oraz ułatwia korzystanie z narzędzi badających integralność systemu plików.


2.9. Przejrzenie logów instalatora

Jedną z najważniejszych czynności, jakie powinno się wykonać po pierwszym starcie systemu jest przejrzenie logów programu instalacyjnego, które zostały umieszczone w pliku:

/var/sadm/system/logs/install_log

Zawiera on cenne informacje o przebiegu instalacji. Jeżeli znajdują się w nim komunikaty o błędach - należy je właściwie przeanalizować. W najgorszym przypadku instalację należy powtórzyć (oczywiście najpierw należy dowiedzieć się, co spowodowało błędy i jak ich uniknąć).



Poprzedni rozdział Spis treści Następny rozdział