SELinux podniesie poziom bezpieczeństwa

Przygotowuję się do instalacji serwera FTP i WWW opartego na Linuksie. Chciałbym go lepiej zabezpieczyć. Słyszałem, że istnieje coś co nazywa się SELinux. Czym różni się on od zwykłego Linuksa i jakie może mi dać korzyści?

Żeby udzielić odpowiedzi na pytanie trzeba zrozumieć czym jest SELinux (czyli Security Enhanced Linux), a to nie jest takie proste. SELinux w skrócie, to technologia, która pozwala na podniesienie poziomu bezpieczeństwa Linuksa jako całości. Nie jest to więc osobny system operacyjny, a dodatek, który może stanowić uzupełnienie każdego systemu spod znaku "pingwina" opartego na jądrze 2.6.x. (SELinux dla jądra 2.4 nie jest już rozwijany).

Polecamy:Linux: Vsys - następca SUDO?

Zobacz również:

Technologia SELinux bazuje na koncepcji wymuszonej kontroli dostępu (MAC - Mandatory Access Control), która jest odwrotnością stosowanej w typowych Linuksach (w Windowsie zresztą również) uznaniowej kontroli dostępu (DAC - Discrectionary Access Control). Jaka jest różnica pomiędzy tymi dwoma mechanizmami kontroli dostępu? DAC stosuje politykę bezpieczeństwa biorąc pod uwagę tożsamość obiektów (np. użytkowników) i ich prawo (autoryzację) do dostępu do poszczególnych zasobów systemu (np. plików, katalogów). W DAC-u taki użytkownik ma prawo przekazywania swoich uprawnień procesom, które uruchamiane są w jego kontekście (szczególnie niebezpieczne w przypadku użytkownika "root").

Polecamy: Dziewięć zasad wytrawnego administratora Uniksa

Tak więc główną wadą DAC-a jest to, że nie bierze on pod uwagę przykrego faktu, że aplikacje uruchamiane w systemie zawierają błędy, luki, mogą być końmi trojańskimi lub zawierać inny kod złośliwy umożliwiający przejęcie kontroli nad procesem oraz późniejszą eskalację uprawnień. Nie wie też, że użytkownicy systemu poprzez swoje działania - wynikające często z niewiedzy - mogą spowodować całkiem dotkliwe spustoszenia nierozważnie przyznając innym obiektom różne uprawnienia. Faktyczny administrator bezpieczeństwa nie ma możliwości określania polityki bezpieczeństwa dla systemu (niezależnej od rangi użytkownika). Inaczej jest z mechanizmem MAC. Tutaj po określeniu polityki bezpieczeństwa systemu przez administratora bezpieczeństwa żaden użytkownik nie ma możliwości jej obejścia (nawet "root") - reguły MAC aplikowane są po regułach DAC. SELinux wprowadza zatem mechanizmy MAC w Linuksie.

Polecamy: Bezpieczny Linux - jak utwardzić system

Sama konfiguracja SELinux-a nie jest sprawą banalną, więc warto poświęcić na nią odrobinę czasu. Najprościej SELinux-a uruchomić na Fedorze Core lub RedHacie (ewentualnie jego darmowym klonie CentOS-ie). Robi się to już z poziomu instalatora systemu i nie ma potrzeby modyfikacji tuningu jądra i instalacji dodatkowych pakietów. Na stronach twórców poszczególnych dystrybucji linuksowych można znaleźć liczne HOWTO na temat sposobu instalacji i konfiguracji, np:

1. Fedora Core (http://fedoraproject.org/wiki/SELinux)

2. Gentoo (http://gentoo-wiki.com/HOWTO_SELinux)

3. Debian (http://wiki.debian.org/SELinux/Setup)

Zapewnienie odpowiedniego poziomu bezpieczeństwa w SELinux-ie odbywa się poprzez budowanie odpowiednich reguł polityki, które tworzone są w makro języku "M4" (pomoc dostępna jest z poziomu systemu operacyjnego - "info m4"). Nie jest jednak tak źle i nie trzeba męczyć się tworząc polityki z tzw. palca. Istnieją narzędzia, które mogą w tym pomóc:

1. SETools - (Tresys Technology) -http://oss.tresys.com/projects/setools

2. SEEdit - (Hitachi Software) -http://seedit.sourceforge.net/

Zalet uruchomienia SELinux-a jest wiele - wynikają one z wprowadzenia reguł MAC. W Twoim przypadku, jeżeli na jednym serwerze uruchamiasz kilka usług, które będą dostępne z zewnątrz, powinieneś poważnie rozważyć skonfigurowanie SELinux-a. Nawet jeżeli ktoś wykorzysta podatność serwera FTP i przejmie nad nim kontrolę, nie będzie mógł przejąć serwera WWW, a także nie będzie stanowił zagrożenia dla samego systemu jako całości. Instalując SELinux-a musisz wziąć pod uwagę, że wpłynie on w pewnym stopniu na wydajność systemu - obciążenie szacuje się na ok. 7-9%. Warto też wiedzieć, że SELinux może zostać uruchomiony w dwóch trybach - tzw. "premissive" (czasami też zwany "Warn") oraz "enforcement". Pierwszy, to tryb monitorowania (zalecany w fazie testów) pozwalający na sprawdzenie tego, co będzie działo się w systemie gdy zostanie włączony tryb ochrony (czyli "enforcement"). Przed wprowadzeniem systemu w tryb "enforcement" dobrze też sprawdzić, czy poszczególne aplikacje nie będą miały problemu z uruchomieniem (obecność wpisów "denier" w logach). Przydatne jest również narzędzie "audit2allow" poprzez które, w trybie "Warn" można uruchomić dowolną aplikację i przy tej okazji automatycznie wygenerować odpowiednie reguły pozwalające na jej prawidłowe funkcjonowanie.

W razie problemów pomocy można szukać min. na poniższych witrynach:

1.http://www.nsa.gov/selinux

2.http://www.linux-books.us/centos_0005.php (poradnik do ściągnięcia)

3.http://selinux.sourceforge.net

4.http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/

5.http://www.redhat.com/mailman/listinfo/fedora-selinux-list (Lista dyskusyjna)

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200