3.2. Bezpieczeństwo bez ściemniania

Bezpieczeństwo jest jednym z ważniejszych wymagań stawianych systemom obecnie. Jest również bardzo ważne dla mnie. Dlatego poczyniłem pewne kroki aby uczynić ten system bezpiecznym.

3.2.1. Kroki mające na celu uczynić system bezpieczniejszym

Od początku v-q tworzone jest przy wykorzystaniu C++ i Standardowej Biblioteki Wzorców (ang. STL). Staram się nie wymyślać koła od początku, kiedy jest to możliwe korzystam ze znanego i sprawdzonego oprogramowania. STL i C++ zawierają znane i sprawdzone algorytmy i struktury danych.

Staram się aby kod był jak najprostszy, nie zaciemniam kodu w żaden sposób :-) Prostota projektu, prostota kodu. Staram się również utrzymywać aktualną dokumentację w kodzie, jednakże uważam, że prostszy kod jest lepszy niż obszerniejsza dokumentacja.

Używam automatów do generowania kodu. Dla przykładu dlatego zdecydowałem się używać CORBA - automatyzuje proces tworzenia protokołu komunikacji pomiędzy demonami.

Od wersji 5 tworzone są i wykonywane testy jednostkowe tak często jak to jest możliwe. Dla każdego wykrytego błędu tworzony jest test przed próbą naprawiania go. Ma to zapewnić, że raz wykryty błąd nie pojawi się ponownie.

Najważniejszą rzeczą, którą robię aby uczynić ten system bezpiecznym i stabilnym jest wykorzystywanie go na własnych serwerach.

3.2.2. Ograniczanie dostępu do gniazd sieciowych

Jednym z kroków, które można wykonać aby zabezpieczyć system jest ograniczenie dostępu do gniazd sieciowych tworzonych przez demony w celu komunikacji.

Katalog contrib/service zawiera przykładowe skrypty pozwalające uruchamiać demony pod nadzorem daemontools (zobacz http://cr.yp.to aby dowiedzieć się czegoś więcej na temat tego pakietu). Jak możesz zauważyć wszystkie demony uruchamiane są z argumentem:

-ORBIIOPAddr "unix:/var/vq/sockets/$PROG.sock"

Argument ten mówi implementacji CORBA, że do komunikacji mają być używane gniazda Uniksa, które reprezentowane są w systemie jako pliki. Można za pomocą chmod ograniczyć do nich dostęp. Uruchom

chmod 700 /var/vq/sockets

aby ograniczyć dostęp do wszystkich procesów tylko do procesów uruchomionych przez właściciela katalogu /var/vq/sockets.

Jeżeli chcesz umożliwić procesom, uruchamianym przez różnych użytkowników, dostęp do demonów zalecane jest abyś utworzył specjalną grupę, która będzie miała dostęp do plików reprezentujących gniazda Uniksa. Do tej grupy dodaj wszystkich użytkowników, którzy mają mieć dostęp.

Hosted by: BerliOS Logo SourceForge.net Logo