Zawartość rozdziału:
Kolejnym punktem zabezpieczenia serwera jest wyłączenie nie używanych usług. Należy pamiętać, że mimo wyłączenia, programy obsługujące te usługi nadal będą istnieć na dysku i mogą posłużyć do włamania. Dlatego dobrą praktyką jest nie tylko ich wyłączenie, ale także całkowite odinstalowanie z systemu plików związanych z danymi usługami. I tak w każdym momencie można je z powrotem doinstalować, jeżeli tylko zaistnieje taka potrzeba.
Zanim przystąpimy do wyłączania usług musimy pamiętać jeszcze o jednej, bardzo istotnej rzeczy. Mianowicie, jako włączone należy pozostawić tylko usługi absolutnie niezbędne do pracy serwera. Im mniej włączonych usług, tym większe bezpieczeństwo serwera.
Rozdział ten jest podzielony na trzy części, z których pierwsza omawia proces inicjalizacji systemu, druga usługi uruchamiane z wykorzystaniem skryptów startowych z katalogów /etc/rc?.d, natomiast część trzecia jest poświęcona usługom kontrolowanym przez superdemon inetd.
W przypadku skryptów startowych wyłączenie usługi następuje głównie przez zmianę pierwszej litery skryptu z "S" na dowolną inną (oprócz "K"). W poniższych przykładach wyłączamy usługi poprzez zmianę nazwy skryptu na nazwę rozpoczynającą się znakiem "_" (podkreślenie). Oczywiście w każdym momencie możemy usługę włączyć na nowo - wystarczy usunąć z nazwy znak podkreślenia.
W przypadku usług kontrolowanych przez demon inetd wyłączenie którejś z nich następuje poprzez wprowadzenie znaku "#" (komentarz) na początku wiersza przed nazwą usługi.
Zmiany dokonywane przez poniższe zalecenia zostaną uwzględnione dopiero po restarcie systemu. Jeżeli zachodzi potrzeba natychmiastowego usunięcia usług z pamięci wystarczy uruchomić poniższe skrypty z parametrem stop, np.:
/etc/rc2.d/S88sendmail stop
Aby uaktywnić zmiany dokonywane w pliku /etc/inetd.conf, należy wysłać sygnał NOHUP do demona inetd.
pkill -1 inetd
Jeżeli zastosowaliśmy instalację typu "CORE", większość z informacji tutaj przedstawionych może okazać się zbędna. Mimo to staraliśmy się opisać wszystkie standardowe usługi kierując się uniwersalnym zastosowaniem tego podręcznika.
UWAGA!
Po wprowadzeniu zmian należy ponownie uruchomić serwer, a następnie uważnie prześledzić pliki logów /var/adm/messages
Nie mniej ważną czynnością jest sprawdzenie wszystkich uruchomionych procesów:
ps -elforaz usług sieciowych:
netstat -an
Jeżeli któraś z usług nie działa poprawnie lub nie została wyłączona (lub włączona) należy zweryfikować działania poprzedzające restart i ewentualnie uruchomić zatrzymane usługi (poprzez usunięcie znaku podkreślenia z nazwy skryptu).
Serwisy w systemie Solaris mogą być uruchamiane w dwojaki sposób. Pierwsza metoda polega na uruchomieniu demonów przy starcie systemu - działają one nieprzerwanie podczas pracy serwera (NFS, sendmail, syslog, cron itp.). Drugą jest uruchomienie usług na żądanie klienta poprzez superdemon inetd, który posiada tablicę z dostępnymi serwisami (ftp, telnet, niektóre usługi RPC, itp.).
Podczas startu systemu operacyjnego pierwszym uruchamianym procesem jest init. Innymi niezbędnymi do prawidłowego działania systemu procesami są: sched, pageout i fsflush.
sched jest odpowiedzialny za zarządzanie systemem operacyjnym oraz przełączanie się pomiędzy procesami.
init jest "rodzicem" (ID procesu = 1) dla wszystkich kolejnych procesów. Po uruchomieniu procesu init uruchamiane są kolejne skrypty niezbędne do prawidłowego działania systemu. Jest odpowiedzialny za uruchomienie pozostałych procesów. init uruchamia również system w odpowiednim trybie.
pageout jest odpowiedzialny za stronicowanie. Wymienia procesy z pamięci na dysk i na odwrót.
fsflush jest odpowiedzialny za zapisywanie danych na dysk. Demon ten wywołuje funkcję sync, które domyślnie co 30 sekund, powoduje zapisanie zbuforowanych bloków na dysk.
SUN Solaris można uruchomić w następujących trybach:
Tryb 0 | OpenBoot PROM Mode - tryb ten służy do przejścia do OpenBoot PROMu. Jądro systemu nie jest ładowane do pamięci. Zazwyczaj tryb ten używany jest do zainicjowania instalacji lub wyłączenia serwera. |
Tryb S | Single User Mode - tryb pojedynczego użytkownika |
Tryb 1 | Administrative Mode |
Tryb 2 | First Multiuser Mode - uruchomiana jest większość usług z wyjątkiem serwera NFS |
Tryb 3 | Tryb 2 + serwer NFS |
Tryb 4 | nie jest zaimplementowany |
Tryb 5 | Shutdown Mode - Zamyka system i wyłącza zasilanie systemu (SPARC) |
Tryb 6 | zamyka, a następnie restartuje system |
Zmianę trybu umożliwia np. polecenie init.
Skrypty startowe powyższych trybów znajdują się odpowiednio w katalogach:
/etc/rcS.d /etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rc3.d
Skrypty znajdujące się w katalogach /etc/rc*.d/ opisane są według następującego schematu:
<S|K><numer>nazwagdzie:
Wszystkie skrypty, które znajdują się w katalogach /etc/rc*.d/ są sztywnymi łączami do plików z katalogu /etc/init.d/.
Domyślnym trybem przy starcie systemu jest tryb 3 (normalny tryb wieloużytkownikowy + usługi sieciowe).
Warto wspomnieć, że powyższe skrypty są napisane w powłoce Bourne'a i wykonywane są za pomocą /sbin/sh, a nie jak wydawać by się mogło /usr/bin/sh. Różnica polega na dostępie do bibliotek. Podczas startu systemu biblioteki z /usr/lib mogą nie być dostępne dla procesu init, gdyż partycja /usr nie jest jeszcze zamontowana. Podobna sytuacja występuje z domyślną powłoką dla konta root, którą jest /sbin/sh, podczas gdy dla innych użytkowników jest /bin/sh.
Poniżej znajduje się opis wszystkich skryptów uruchamianych z katalogów /etc/rc?.d/ (w przypadku, gdy wybrana została instalacja typu "Entire Distribution"):
Zatrzymuje usługi uruchomione przez skrypty z wyższych poziomów.
Oprócz w trybie tym uruchamiane są następujące skrypty:
S10initpcmcia | Inicjuje PCMCIA |
S30rootusr.sh | Konfiguruje urządzenie "loopback" (czyli interfejs sieciowy 127.0.0.1), ustawia maskę podsieci, uzyskuje listę interfejsów sieciowych na podstawie plików /etc/hostname.*, uruchamia interfejsy sieciowe, opcjonalnie konfiguruje adres IP hosta uzyskując dane z serwera DHCP |
S33keymap.sh | Ładuje fonty i konfiguruje mapę klawiatury |
S35cacheos.sh | Jeżeli system plików / (root) jest typu cachefs, wówczas konfiguruje system jako "cache-only-client" |
S40standardmounts.sh | Montuje /proc, dodaje fizyczny swap, przemontowuje system plików root oraz /usr, czyści plik /etc/dfs/sharetab |
S41cachefs.root | Jeśli system plików root jest typu cachefs wówczas uruchamia demon cachefsd |
S42coreadm | Odtwarza konfigurację jądra |
S50devfsadm | Uruchamia demony: /usr/lib/devfsadm/devfseventd oraz /usr/lib/devfsadm/devfsadmd. W razie potrzeby rekonfiguruje pliki urządzeń /dev |
S70buildmnttab.sh | Montuje systemy: /var oraz /var/adm |
Zatrzymuje usługi uruchomione przez skrypty z wyższych poziomów.
Głównym zadaniem skryptów znajdujących się w tym katalogu jest zatrzymanie usług uruchomionych przez skrypty z wyższych poziomów.
Jedynym uruchamianym skryptem jest S01MOUNTFSYS, którego objaśnienie znajduje się w punkcie dot. /etc/rc2.d/.
Zatrzymuje usługi uruchomione przez skrypty z poziomu 3 oraz uruchamia następujące skrypty:
S01MOUNTFSYS | Montuje systemy plików, sprawdza obecność i poprawność kwot dyskowych, a następnie je uruchamia |
S05RMTMPFILES | Kasuje katalog /tmp i tworzy go na nowo. Jeżeli /tmp jest łączem symbolicznym kasuje jego zawartość. Kasuje również pliki: /etc/rem_name_to_major oraz /etc/nologin |
S20sysetup | Opcjonalnie wyświetla konfigurację systemu (/usr/sbin/prtconf) oraz wyświetla tzw. pliki znaków fabrycznych pliki z katalogu /etc/tm/*) |
S21perf | Opcjonalnie umożliwia zbieranie wiadomości odnośnie wydajności systemu. Więcej informacji na temat znajduje się w podręcznikach systemowych: sar(1) i sadc(1m). |
S30sysid.net | Jeżeli jest obecny plik /etc/.UNCONFIGURED uruchamia polecenie /usr/sbin/sysidconfig, sprawdza wszystkie interfejsy sieciowe, a następnie włącza je oraz przyporządkowuje adresy IP. Wymagany do prawidłowej pracy polecenia sys-unconfig, oraz przez klientów bezdyskowych |
S47asppp | W przypadku, gdy istnieje plik /etc/asppp.cf uruchamia demon obsługi protokołu ppp (aspppd). |
S69inet | Druga faza konfiguracji TCP/IP (po /etc/rcS.d/S30rootusr.sh). Ustawia wartość ISS, sprawdza obecność pliku /etc/defaultrouter i ustawia tablice routingu oraz domenę NIS. Następnie, w przypadku, gdy skrypt znajduje co najmniej dwa interfejsy sieciowe, ustawia host jako router, chyba, że istnieje plik /etc/notrouter lub host został skonfigurowany z użyciem DHCP. Ostatnią czynnością wykonywaną przez skrypt jest konfiguracja protokołu IP |
S70uucp | W razie potrzeby czyści zawartość katalogu /usr/spool/locks/* |
S71rpc | Tworzy katalog /tmp/.rpc_door, a następnie uruchamia demon rpcbind. Uruchamia również keyserv oraz usługi związane z NIS+ (lub NIS-YP) |
S71sysid.sys | Jeżeli jest obecny plik /etc/.UNCONFIGURED uruchamia polecenia: /usr/sbin/sysidsys, /usr/sbin/sysidroot, /usr/sbin/sysidpm. W razie potrzeby wykonuje restart systemu. Wymagany przez klientów bezdyskowych |
S72autoinstall | Używany przez Jumpstart. Jego głównym zadaniem jest restart systemu z odpowiednio ustawionym łańcuchem znaków: "FD=*" |
S72inetsvc | Uzyskuje nazwę systemu, czeka 5 sekund na demona NIS, uzyskuje nazwę domeny, zmienia wartości masek podsieci dla interfejsów sieciowych, opcjonalnie uruchamia in.named oraz uzyskuje dane od serwera DHCP, dodaje obsługę multicastingu oraz uruchamia inetd |
S73cachefs.daemon | Uruchamia demon cachefsd |
S73nfs.client | Uruchamia demony (/usr/lib/nfs/statd oraz /usr/lib/nfs/lockd) klienta NFS, oraz montuje wszystkie systemy plików typu cachefs lub nfs |
S74autofs | Uruchamia demon automatycznego montowania systemów plików /usr/lib/autofs/automountd, a następnie wykonuje polecenie /usr/sbin/automount |
S74syslog | Uruchamia demon /usr/sbin/syslogd. Jeśli plik /var/adm/messages nie istnieje, to go tworzy |
S74xntpd | Uruchamia demon xntpd wykorzystywany do obsługi protokołu NTP (synchronizacja czasu) |
S75cron | Obsługa poleceń: cron i at. Uruchamia demon cron |
S75savecore | Zarządzanie plikami zrzutu z pamięci systemu (core). Konfiguruje urządzenie /dev/dump, uruchamia demon savecore. Wykorzystywany głównie podczas awarii |
S76nscd | Odpowiedzialny za buforowanie najczęściej używanych informacji o użytkownikach jak np. hasło, grupa czy też bazy z adresami hostów. Przegląda plik /etc/nsswitch.conf i jego podstawie konfiguruje i uruchamia demon nscd |
S80kdmconfig | Sprawdza, czy nastąpiły zmiany w konfiguracji sprzętowej komputera (polecenie: /usr/openwin/bin/kdmconfig -t) |
S80PRESERVE | Zachowuje teksty z edytorów vi i ex po awarii (przesuwa pliki z katalogu /var/tmp/Ex* do katalogu /usr/preserve) |
S80lp | Uruchamia demon ubsługi wydruku (/usr/lib/lpsched) |
S80spc | Uruchamia demon /usr/lib/print/printd |
S85power | Uruchamia polecenie /usr/sbin/pmconfig |
S88sendmail | O ile nie istnieje tworzy /var/spool/mqueue, a następnie uruchamia demon sendmail |
S88utmpd | Demon odpowiedzialny za logowanie sesji wszystkich użytkowników (czasu trwania, miejsca inicjacji itp.). Uruchamia demon /usr/lib/utmpd |
S92volmgt | Uruchamia demon obsługi Volume Management (/usr/sbin/vold). Odpowiedzialny za automatyczne montowanie stacji dyskietek i CD-ROMu |
S93cacheos.finish | "Dokończenie" skryptu S73cachefs.daemon. Wymagany przez klientów bezdyskowych |
S99audit | Jeśli istnieje skrypt /etc/security/audit_startup wówczas go uruchamia, a następnie uruchamia demon audytu (/usr/sbin/auditd) |
S99dtlogin | Logowanie CDE |
S15nfs.server | NFS Server. Usuwa stare wpisy z pliku /etc/dfs/sharetab, wykonuje polecenie "/usr/sbin/shareall -F nfs", oraz uruchamia demony mountd i nfsd |
S76snmpdx | Simple Network Management Protocol. Uruchamia demon /usr/lib/snmp/snmpdx |
S77dmi | Sun Solstice Enterprise DMI Service Provider. Uruchamia demon /usr/lib/dmi/dmispd |
Poniżej znajduje się lista usług, których uruchamianie można zablokować:
NFS jest protokołem umożliwiającym współdzielenie systemów plików pomiędzy serwerami. Wykorzystuje RPC, a w bezpieczniejszej wersji - Secure RPC.
Jednak nawet w tej ostatniej wersji, pomimo ulepszonej metody uwierzytelniania i autoryzacji nie szyfruje połączenia, przez co usługa ta jest narażona na podsłuch.
O ile nie jest konieczne korzystanie z NFS, należy ten mechanizm wyłączyć:
mv /etc/rc2.d/S73nfs.client /etc/rc2.d/_S73nfs.client mv /etc/rc2.d/K28nfs.server /etc/rc2.d/_K28nfs.server mv /etc/rc3.d/S15nfs.server /etc/rc3.d/_S15nfs.server mv /etc/dfs/dfstab /etc/dfs/_dfstab
Warto zwrócić uwagę na skrypt /etc/rc2.d/S73nfsclient. Uruchamia on demony statd oraz lockd, które służą do blokowania plików na systemach NFS. Niestety, oba demony znajdują się na czarnej liście SANS - "Top Ten Security Threats". Demon mountd ze skryptu /etc/rc3.d/S15nfs.server również znajduje się na wspomnianej liście.
Jeden z najbardziej rozbudowanych MTA (czyli agentów dostarczania poczty).
Niestety, również jeden z najbardziej niebezpiecznych choćby ze względu na statystykę odkrywanych w nim dziur rocznie. Ze swojej strony zalecamy całkowite usunięcie programu Sendmail na rzecz systemów: Postfix lub Qmail.
Program Sendmail można wyłączyć w następujący sposób:
mv /etc/rc2.d/S88sendmail /etc/rc2.d/_S88sendmail
Jeżeli zależy nam na działaniu systemu pocztowego w obrębie serwera należy następujące polecenie wprowadzić do tablicy cron administratora (polecenie: EDITOR=/bin/vi; export EDITOR; crontab -e root):
0,15,30,45 * * * * /usr/lib/sendmail -q
Jeżeli jednak decydujemy się na pozostawienie programu Sendmail jako głównego MTA należy zainstalować program smap (jest on częścią pakietu FireWall Tool Kit), który pomoże zwiększyć jego bezpieczeństwo. Dodatkowo, należy ściągnąć i przekompilować ostatnią wersję programu sendmail, oraz (ważne!) dokładnie zaznajomić się z dołączoną do niego dokumentacją i wyłączyć przy kompilacji wszystkie zbędne usługi.
Usługa ta może być źródłem wielu problemów związanych z bezpieczeństwem. Jeżeli nie jest konieczne korzystanie z niej należy ją usunąć z systemu.
Wyłączenie usługi nastąpi przez wykonanie polecenia:
mv /etc/rc2.d/S92volmgt /etc/rc2.d/_S92volmgt
Umożliwia automatyczne montowanie lokalnych i odległych systemów plików. Jego głównym zastosowaniem jest współpraca z systemem NFS, lecz nie tylko (np. może montować katalogi domowe użytkowników z /export/home pod katalogiem /home).
Mechanizm AutoFS korzysta z RPC, dlatego też, jeżeli wyłączymy usługi RPC, AutoFS nie będzie działał poprawnie.
Jeżeli nie jest niezbędne używanie tej usługi, należy ją również wyłączyć:
mv /etc/rc2.d/S74autofs /etc/rc2.d/_S74autofs
Usługi RPC są mechanizmami bardzo pożytecznymi, ale z drugiej strony mogą być użyte do włamania do systemu.
Jeżeli nie używamy ani nie udostępniamy żadnych usług, których zastosowanie wymaga RPC możemy wówczas je wyłączyć. Należy jednak pamiętać, że aplikacje takie jak CDE lub DiskSuite korzystają z RPC, więc taką decyzję należy uzależnić od zainstalowanych aplikacji na konkretnym systemie.
Aby wyłączyć usługi RPC obsługiwane przez demon rpcbind, wystarczy wyłączyć skrypt startowy uruchamiający wspomniany demon, który nasłuchuje na porcie 111.
mv /etc/rc2.d/S71rpc /etc/rc2.d/_S71rpc
Jeżeli konieczne jest używanie rpcbind, należy bezwzględnie zainstalować jego udoskonaloną wersję autorstwa Wietse'a Venemy (patrz punkt: 1.11).
W przypadku, gdy do systemu nie jest dołączona drukarka, ani nie będzie on korzystał z usług drukowania, należy wyłączyć skrypty:
mv /etc/rc2.d/S80lp /etc/rc2.d/_S80lp mv /etc/rc2.d/S80spc /etc/rc2.d/_S80spc
Power Management jest odpowiedzialny za obsługę zarządzania energią.
O ile nie jest konieczne używanie tego typu mechanizmu, można go wyłączyć:
mv /etc/rc2.d/S85power /etc/rc2.d/_S85power mv /etc/rc2.d/K07dmi /etc/rc2.d/_K07dmi mv /etc/rc3.d/S77dmi /etc/rc3.d/_S77dmi
Demon ten jest odpowiedzialny za buforowanie informacji przechowywanych w tablicach passwd, hosts itp.
Serwer ten może być źródłem problemów, dlatego też można go wyłączyć.
Należy jednak pamiętać, że w przypadku "dużych" systemów działających z wykorzystaniem NIS/NIS+ jego wyłączenie może spowodować znaczny spadek wydajności.
mv /etc/rc2.d/S76nscd /etc/rc2.d/_S76nscd
UWAGA!
Powyższy demon jest wymagany do poprawnej pracy pakietu Netscape.
Ogólnie można powiedzieć, że korzystanie z graficznego interfejsu użytkownika na serwerze (czy to jest CDE, OpenWindows czy też KDE) nie jest dobrym pomysłem. O ile jest to możliwe, należy w ogóle nie instalować serwera X11 oraz menadżerów okien.
Należy również pamiętać, że jeżeli decydujemy się na instalację CDE, to wymagane jest włączenie RPC, które do bezpiecznych również nie należą.
Wyłączenie środowiska graficznego umożliwia komenda:
mv /etc/rc2.d/S99dtlogin /etc/rc2.d/_S99dtlogin
Służy głównie do buforowania żądań NFS, przez co jest możliwe znaczne przyspieszenie operacji związanych z tym protokołem.
Można bez obaw wyłączyć, o ile nie używamy NFS:
mv /etc/rc2.d/S93cacheos.finish /etc/rc2.d/_S93cacheos.finish mv /etc/rc2.d/S73cachefs.daemon /etc/rc2.d/_S73cachefs.daemon
Demon crond umożliwia okresowe wykonywanie poleceń. Jeżeli nie korzystamy lub nie potrzebujemy takiej usługi, można ją wyłączyć:
mv /etc/rc3.d/S75cron /etc/rc3.d/_S75cron
Jeżeli nie korzystamy z protokołu PPP, należy wyłączyć demon, który go obsługuje:
mv /etc/rc2.d/S47asppp /etc/rc2.d/_S47asppp
Podobnie jak w przypadku PPP, należy wyłączyć UUCP:
mv /etc/rc2.d/S70uucp /etc/rc2.d/_S70uucp
Skrypt ten przenosi wszelkie zachowane pliki z sesji edytora vi do katalogu /var/preserve. Można wyłączyć w razie potrzeby. Można wyłączyć w razie potrzeby.
mv /etc/rc2.d/S80PRESERVE /etc/rc2.d/_S80PRESERVE
NTP może być źródłem problemów związanych z bezpieczeństwem systemu, i kierując się właśnie takimi względami, można go wyłączyć.
Jeżeli jednak jest konieczna synchronizacja czasu pomiędzy serwerami należy korzystać z polecenia rdate, którego okresowe wykonywanie można ustawić w tablicy cron.
mv /etc/rc2.d/S74xntpd /etc/rc2.d/_S74xntpd
Aby umożliwić synchronizację czasu, następującą linijkę należy dodać do tablicy crontab konta root:
0 * * * * /usr/bin/rdate nazwa_serwera_pocztowego >/dev/null 2>&1
Jeżeli nie korzystamy z Simple Network Management Protocol, należy wyłączyć obsługę tego protokołu.
mv /etc/rc2.d/K07snmpdx /etc/rc2.d/_K07snmpdx mv /etc/rc3.d/S76snmpdx /etc/rc3.d/_S76snmpdx
Jeżeli nie obsługujemy klientów bezdyskowych, ani nie planujemy użycia polecenia sys-unconfig następuje skrypty można bez obaw wyłączyć:
mv /etc/rc2.d/S30sysid.net /etc/rc2.d/_S30sysid.net mv /etc/rc2.d/S71sysid.sys /etc/rc2.d/_S71sysid.sys mv /etc/rc2.d/S72autoinstall /etc/rc2.d/_S72autoinstall
O ile nie jest konieczne korzystanie z usług inetd, zalecamy całkowite wyłączenie superdemona poprzez wstawienie znaku komentarza (#) przed linią uruchamiającą inetd w pliku /etc/rc2.d/S72inetsvc.
Jak wspomnieliśmy wcześniej inetd jest superserwisem, który na żądanie uruchamia odpowiednie usługi, np. telnet, ftp czy finger. Solaris domyślnie udostępnia 35 serwisów, z których większość jest poważnym zagrożeniem dla bezpieczeństwa naszego systemu. Głównym (i jedynym) plikiem konfiguracyjnym demona jest plik /etc/inetd.conf.
Pierwszym etapem poprawnej konfiguracji demona inetd jest wyłączenie wszystkich zbędnych usług. Jeżeli dojdziemy do wniosku, że można wyłączyć wszystkie usługi, wówczas można całkowicie wyłączyć demon inetd, co zostało omówione w punkcie 5.2.18.
Następnie musimy zająć się dokładną kontrolą dostępu do tych usług. Narzędziem, które stało się koniecznym uzupełnieniem superserwisu inetd w większości systemów unixowych jest program TCP Wrapper. Umożliwia on ścisłą kontrolę dostępu do udostępnianych usług dla określonych hostów lub sieci.
Można również całkowicie zrezygnować z serwisu inetd i tcp_wrappera stosując xinetd. Jest on udoskonaleniem powyżej opisanej kompozycji. xinetd oferuje również rozbudowane opcje kontroli dostępu i logowania zdarzeń.
Poniższe podpunkty omawiają wyłączenie wszystkich standardowych usług dostępnych poprzez inetd:
Są to usługi, których nie powinno się obecnie używać. Zamiast nich należy stosować SSH (OpenSSH, OSSH, LSSH) lub rozwiązania bazujące na hasłach jednorazowych (np. S/KEY). Istnieją również odpowiedniki wykorzystujące SSL (np. SSLTelnet, MZTelnet), lecz ich popularność nie jest aż tak duża, jak SSH.
O ile jest to możliwe należy unikać usługi anonimowego ftp, a w szczególności możliwości kopiowania plików na serwer przez anonimowych użytkowników. Jeżeli już jest to konieczne, należy koniecznie zastosować technikę "chroot" oraz umieścić dane ftp na osobnej partycji.
Zastosowanie techniki "chroot" w przypadku usługi ftp jest też zalecane również dla zwykłych użytkowników.
Zaszłość z sieci DARPA, a dokładniej mówiąc "praprzodek" DNS. Protokół ten nie powinien być już w ogóle używany.
Rodzina usług bazujących na uwierzytelnianiu z użyciem adresów IP. Jeżeli nazwa hosta próbującego nawiązać połączenie znajduje się w /etc/hosts.equiv lub w pliku ~/.rhosts wówczas połączenie zostaje nawiązane bez żądania podania hasła. Usługi te nie szyfrują połączenia. Podatne są również na podszywanie się pod adresy IP, ataki z przechwyceniem sesji oraz - w przypadku kompromitacji jednego z zaufanych hostów - kaskadową utratę zaufania.
Usługi te zdecydowanie należy wyłączyć.
Remote Executions Of Command, działa na zasadzie podobnej jak wspomniane wcześniej usługi rsh czy rlogin, z tym wyjątkiem, że zamiast plików /etc/hosts.equiv i ~/.rhosts używa pliku ~/.netrc. Z podobnych przyczyn jak w przypadku rsh i rlogin, również i ta usługa nie powinna być używana.
Usługa ta umożliwia powiadamianie użytkowników o nadejściu nowej poczty.
O ile użytkownicy nie pracują bezpośrednio na konsoli, a pocztę elektroniczną sprawdzają używając protokołów POP3 lub IMAP, usługę można wyłączyć.
Za pomocą tej usługi jest możliwa konwersacja pomiędzy dwoma użytkownikami (z których jeden może pochodzić z hosta odległego). Pomimo, że nie ma bezpośrednich zagrożeń wynikających z używania tej usługi, zalecane jest jej wyłączenie z innych powodów - ktoś może np. uzyskać cenne informacje podszywając się pod osobę, którą nie jest, wyłudzić hasło dostępowe itp.
Unix-To-Unix copy protocol. Usługa przestarzała, zastąpiona przez protokoły smtp oraz nntp. Nie powinno się jej już używać.
Trivial ftp jest uproszczoną wersja protokołu ftp. Nie zawiera żadnego mechanizmu uwierzytelniania, a dzięki swojej prostocie jest często używana np. przez klientów bezdyskowych do załadowania systemu.
Jeżeli jej obecność jest konieczna, to należy ją udostępnić tylko wybranym hostom i ograniczyć dostęp do tylko jednego katalogu, np. /tftpboot oraz uruchamiać z opcją "-s", która będzie wymuszała zmianę katalogu, tylko w przypadku, gdy on istnieje.
Wyświetla informacje o zalogowanych użytkownikach. Ponieważ informacje te mogą ułatwić potencjalnemu intruzowi odgadywanie haseł, zalecane jest wyłączenie tej usługi. W zamian można zainstalować bezpieczniejsze wersje demona finger, które nie wyświetlają zbyt dużej ilości informacji.
Udostępnia całemu światu informacje o uruchomionych procesach. Bezwzględnie należy wyłączyć tą usługę.
Podobnie jak systat (patrz punkt: 5.3.10) netstat udostępnia informacje o bieżących połączeniach sieciowych.
Jeżeli zależy nam na bezpieczeństwie systemu, usługi tej nie należy nigdy uruchamiać.
Umożliwia synchronizację zegarów systemowych pomiędzy różnymi hostami. Obsługa tego protokołu powinna być wyłączona, ewentualnie zastąpiona przez xntp.
Dość często usługa ta jest mylona z ICMP Echo Request. Była zaprojektowana jako narzędzie pozwalające rozwiązywać problemy z siecią. Jej działanie jest bardzo proste: odsyła wszystko, co się do niej wyśle.
Ponieważ może być wykorzystana w ataku Denial Of Service, usługa ta powinna być wyłączona.
Podobnie jak usługa powyższa, również i ta była zaprojektowana z myślą o wykorzystaniu w rozwiązywaniu problemów z działaniem sieci. Odrzuca wszystko, co się do niej wyśle.
Również powinna być wyłączona.
Działa podobnie jak time (patrz punkt: 5.3.12), jedynie z tym wyjątkiem, że wysyła czas w czytelnej postaci.
Powinna być wyłączona.
Generator znaków ASCII. Usługa dość często wykorzystywana w atakach typu Denial Of Service. Po otwarciu połączenia przez host zdalny wysyła strumień danych aż do momentu zamknięcia połączenia.
Bezwzględnie należy tą usługę wyłączyć.
Poniżej znajduje się lista usług RPC uruchamianych za pomocą superdemona inetd:
sadmind | Demon ten działa w połączeniu z Solstice Admin Suite i umożliwania zdalną administrację (dodawania użytkowników i grup, zmianę haseł itp.). Niestety, usługa ta była w przeszłości źródłem problemów związanych z bezpieczeństwem. Powinna być wyłączona |
rquotad | Remote quota daemon. Obsługa kwot dyskowych przez NFS. Jeżeli nie korzystamy z tego rodzaju mechanizmu należy go wyłączyć |
rusersd | Remote network username server. Pozwala odległym serwerom na przeglądanie listy użytkowników na lokalnej maszynie. Usługa ta powinna być wyłączona |
sprayd | Spray server. Usługa używana głównie do testowania oraz symulacji obciążenia sieci. Jeżeli z niej nie korzystamy, wówczas należy ją wyłączyć |
rwalld | Write to all users on remote systems. Rozszerza działanie polecenia wall na systemy odległe. Jeżeli nie musimy wysyłać komunikatów wall jednocześnie do kilku systemów opcja ta powinna być wyłączona |
rstatd | Udostępnia informacje o wydajności systemu (efekt działania tej usługi można zobaczyć jako pasek obciążenia systemu w CDE). Usługę tę można wyłączyć |
rexd | Remote Execution Server. Usługa działająca na podobnej zasadzie jak login i rexec (patrz punkty: 5.3.3 oraz 5.3.4). Powinna być zdecydowanie wyłączona |
ttdbserverd | Sun Tooltalk Database Server. Pozwala na wymianę danych między aplikacjami oraz umożliwia skojarzenie konkretnych plików z aplikacjami (tak jak jest to np. w MS Windows). Generalnie jest wymagane przez CDE, lecz jest możliwe uruchomienie CDE bez usługi ToolTalk. Dlatego też można tą usługę wyłączyć |
ufsd (tcp/udp/1008) | W chwili obecnej jest częścią niekompletnego pakietu. Należy ją wyłączyć |
kcms_server | Kodak Color Management Daemon. Wykorzystywany głównie do tuningu konsol graficznych w studiach animowanych. Bardzo rzadko używany (o ile w ogóle). Również można wyłączyć |
fs (tcp/7100) | X11 font server. Jeżeli nie planujemy udostępniania innym serwerom fontów, usługę tę można zablokować |
cachefsd | Demon odpowiedzialny za buforowanie plików często używanych przez system. O ile nie korzystamy z cachefs, usługę tę można wyłączyć |
kerbd | Kerberos daemon - odpowiedzialny za zatwierdzanie zapytań RPC używających uwierzytelniania opartej na zasadzie przepustek. Jeżeli nie używamy, należy wyłączyć |
printer (tcp/515) | Obsługa serwera wydruku zgodna ze standardem BSD. Można zablokować, jeżeli nie mamy potrzeby korzystania z takiej usługi |
gssd | Generic Security Service Daemon. Odpowiedzialny za identyfikację obu stron nawiązujących połączenie, zapewnia integralność przesyłanych danych oraz umożliwia szyfrowanie danych. Jest dodatkowym poziomem bezpieczeństwa związanym z kerbd dla Secure RPC. Jeżeli z niego nie korzystamy, można wyłączyć |
dtspcd | Daemon for the CDE Subprocess Control Service. Jeżeli nie używamy CDE można go bez obaw wyłączyć |
rpc.cmsd | Calendar Manager. Zarządza bazą danych lokalnych kalendarzy. Może być źródłem problemów związanych z bezpieczeństwem. Dlatego też należy ją wyłączyć |
![]() |
![]() |
![]() |