ęłęóAdministracja
systemami komputerowymi
Bezpieczeństwo
systemów
ęłęó
SPIS TREŚCI
1.Wstęp 5
Podstawowe
pojęcia z zakresu ochrony danych 5
Atak na
bezpieczeństwo danych 5
Usługi
ochrony danych - zapewniają uzyskanie pewnych gwarancji w zakresie wiarygodności
systemu komputerowego 5
Mechanizmy
zabezpieczające 5
Typy możliwych
ataków 6
Sposoby włamywania
się do systemów 6
3.1.Przechwytywanie
hasła 6
3.1.1.Przechwytywanie
hasła w nieszyfrowanych protokołach 6
3.1.2.Przechwytywanie
hasła z wykorzystaniem "koni trojańskich" 7
3.2.Suid,
sgid 7
3.3.Buffer
overrun 8
Backdoor
9
3.5.IP
spoofing 9
3.6.IP
source routing 9
3.7.Przykład
włamania do systemu 10
4.Potencjalne
"dziury" w zabezpieczeniach systemu - przykładowa lista
niebezpiecznych usług. 11
4.1.R-commands
11
4.2.Sendmail
12 1.Wstęp
Pojęcie
bezpieczeństwa systemów komputerowych dotyczy zarówno bezpieczeństwa
pojedynczego systemu jak i całej sieci, czyli ochrony informacji krążących pomiędzy
węzłami sieci, oraz danych zgromadzonych w bazach dostępnych za jej pośrednictwem.
Szerokie zastosowanie technik internetowych wprowadza nie znane wcześniej zagrożenia
bezpieczeństwa systemów informatycznych: włamania do systemów, wirusy,
spamming, blokowanie działania itd. Wzrasta więc znaczenie ochrony danych i
uwierzytelniania obiektów krążących w sieci. Włamania do systemów
informatycznych przynoszą znaczne straty finansowe i utratę zaufania do
instytucji, której powierzono poufne informacje. Środki ochrony, zmniejszające
ryzyko uzyskania dostępu do danych przez osoby nieupoważnione, można ogólnie
podzielić na dwie kategorie:
· ograniczenie dostępu do zasobów systemu zgodnie z
ustaloną polityką ochrony organizacji
· kodowanie informacji (utajnianie) za pomocą metod
kryptograficznych.
· Podstawowe pojęcia z zakresu ochrony
danych
· Atak na bezpieczeństwo danych
· ataki aktywne, dążące do modyfikacji strumienia
informacji lub tworzenia fałszywych informacji. W działaniach tych mieszczą się:
podszywanie się pod osobę uprawnioną i blokowanie działania (denial of service)
· ataki pasywne, polegające na podsłuchiwaniu i
monitorowaniu przesyłanych informacji. Celem ataku pasywnego maże być dążenie
do ujawnienia treści wiadomości lub uzyskanie informacji o samym ruchu
informacji
· Usługi ochrony danych - zapewniają uzyskanie pewnych
gwarancji w zakresie wiarygodności systemu komputerowego
· poufność - ochrona przed atakiem pasywnym
· uwierzytelnianie - zapewnienie autentyczności
informacji i osób: zagwarantowanie, że informacja pochodzi z takiego źródła,
które jest przy niej wymienione lub też osoba jest tą, za którą się podaje
· nienaruszalność - zapewnienie integralności
komunikacji, tzn. tego, że informacja jest odbierana w takiej postaci, w jakiej
została wysłana
· niezaprzeczalność - niemożliwość zaprzeczenia
faktowi wysłania lub odebrania informacji
· kontrola dostępu - możliwość kontrolowania dostępu
do informacji (systemów) drogą identyfikacji i uwierzytelniania
· dyspozycyjność - ograniczenie skutków ataku w
sferze dostępności informacji
· Mechanizmy zabezpieczające
· szyfrowanie wiadomości
· uwierzytelnianie informacji (podpisy cyfrowe)
· ochrona antywirusowa
· identyfikacja i uwierzytelniane osób uprawnionych
· Typy możliwych ataków
· przerwanie (ang. interruption) - uniemożliwienie
korzystania z zasobów sieci
· modyfikacja (ang. modification) - wprowadzenie
zmian przez osoby nieuprawnione
· przychwycenie (ang. interception) - uzyskanie
dostępu do zasobów przez osoby nieuprawnione
· podrobienie (ang. fabrication) - wprowadzenie
fałszywych danych do systemu komputerowego
· Sposoby włamywania się do systemów
Istnieje
wiele metod pozwalających potencjalnemu "hackerowi" na włamanie się
do systemu. Bazują one zwykle na błędach w oprogramowaniu systemowym, złej
konfiguracji systemu, używaniu niebezpiecznych protokołów oraz bardzo często na
tak zwanym czynniku ludzkim, czyli naiwności użytkowników systemu. Poniższy
rozdział prezentuje przegląd najbardziej typowych metod włamywania stosowanych
przez "hackerów".
3.1.Przechwytywanie hasła
Najprostszą
metodą włamania się do systemu jest przechwycenie hasła jego użytkowników lub
nawet administratora. Istnieją dwie metody przechwytywania haseł: wykorzystanie
nieszyfrowanych protokołów oraz używanie tak zwanych "koni trojańskich".
3.1.1.Przechwytywanie hasła w nieszyfrowanych protokołach
Nawet
obecnie bardzo wiele protokołów komunikacji, szczególnie starych, nie
wykorzystuje żadnych technik szyfrowania danych, a mechanizm autoryzacji dostępu
do zasobów systemu opiera się głównie o hasło przesyłane w sposób jawny najczęściej
na samym początku połączenia. Do takich protokołów należą między innymi bardzo
popularne i szeroko stosowane protokoły takie jak:
· telnet
· ftp
· rsh
· pop3
oraz imap
· http
We
wszystkich wymienionych protokołach klient łączy się ze zdalnego komputera z
serwerem używając do tego zwykłych socketów, a transmisja danych przebiega
poprzez wiele routerów oraz segmentów sieci i ponieważ nie jest w żaden sposób
szyfrowana (wyjątek stanowią odpowiednie modyfikacje tych protokołów
wykorzystujące SSL - Secure Socket Layer) może zostać bardzo łatwo "podsłuchana".
Wykorzystywane są w tym celu specjalne narzędzia, zwane potocznie
"snifferami", które mogą zostać umieszczone bezpośrednio na routerze
(routerem bywa czasem komputer, na przykład zwykły PC pracujący pod kontrolą
systemu Linux, wyposażony w kilka interfejsów sieciowych), lub w segmencie
sieci, przez który przechodzą pakiety interesującej włamywacza transmisji.
Sniffer ma za zadanie śledzić połączenia na konkretny port serwera (np. telnet)
wyłapując pakiety przeznaczone dla serwera (przykładowo w pojedynczym segmencie
sieci ethernet pakiety docierają do wszystkich komputerów i dzięki odpowiedniej
konfiguracji interfejsu sieciowego można odbierać pakiety o dowolnym adresie
docelowym) i zapisywać te bajty z transmisji, które zawierają wpisywane przez użytkownika
login oraz hasło. W przypadku protokołu telnet wystarczy zapisać kilkanaście
pierwszych bajtów wysyłanych przez klienta, podczas gdy w protokole POP3 nazwa
użytkownika przekazywana jest bezpośrednio po komendzie USER, a hasło po
komendzie PASS. Dzięki sprytnie napisanemu snifferowi hacker może uzyskać tą
metodą hasło konkretnego użytkownika. Metoda ta wymaga jednak umieszczenia
sniffera (sniffer do poprawnego działania wymaga odpowiednio wysokich uprawnień)
na drodze prowadzącej do serwera lub najlepiej bezpośrednio w segmencie sieci,
w którym znajduje się serwer.
3.1.2.Przechwytywanie hasła z wykorzystaniem
"koni trojańskich"
Najprostszą
metodą przechwycenia czyjegoś hasła jest umieszczenie na komputerze, z którego
ta osoba się loguje do systemu programu "udającego" standardowy
program logowania (np. login). Może to wyglądać w sposób następujący: Załóżmy, że
podczas logowania na komputerze baranek wyświetlany jest następujący
komunikat:
Welcome to BARANEK.
Please enter your login and password.
login:
Hacker loguje
się na komputerze i pisze program, który wykonuje następujące czynności:
· wyświetla
identyczny komunikat (należy uważać przy tym na wszelkie zmiany
standardowego komunikatu, które mogą ułatwić wykrycie konia trojańskiego)
· oczekuje
na wprowadzenie nazwy użytkownika oraz hasła (hasło oczywiście nie może pojawiać
się na ekranie)
· wypisuje
na ekranie komunikat login incorrect aby użytkownik pomyślał, że wpisał niepoprawne
hasło
· zapisuje
login oraz hasło do pliku
· kończy
działanie oraz wylogowuje użytkownika, co powoduje wyświetlenie prawdziwego już
komunikatu logowania
Tego typu
konie trojańskie mogą być oczywiście znacznie bardziej wyrafinowane - w
skrajnym przypadku mogą to być odpowiednio zmodyfikowane programy klientów login,
telnet, ftp lub ssh.
3.2.Suid, sgid
Częstą
metodą wykorzystywaną do włamywania się do systemów komputerowych są programy
typu suid lub sgid. Są to programy, które mają ustawiony w atrybutach
odpowiedni bit, dzięki czemu wykonują się na uprawnieniach swojego właściciela
lub grupy. Jest to bardzo szybka i łatwa droga do uzyskania uprawnień
konkretnego użytkownika lub nawet administratora. Hackerzy wykorzystują w tym
celu błędy w samych programach, które z racji spełnianych funkcji muszą być
typu suid, lub błędy w konfiguracji systemu (np. demona ftp, nfs...) dzięki
którym możliwe staje się utworzenie pliku wykonywalnego z ustawionym bitem
suid, dla którego właścicielem jest ktoś inny (np. administrator).
Aby
uchronić się przed włamaniami z wykorzystaniem suid'ów należy przede wszystkim
kontrolować to, które programy mają ustawiony ten bit oraz czy jest to sensowne
i konieczne. Należy unikać nadawania takich uprawnień programom pochodzącym z
niepewnych źródeł, a także programom takim jak: skrypty shellowe (istnieje możliwość
przerwania działania takiego skryptu i uzyskania shell'a wykonywanego na
uprawnieniach administratora), skrypty cgi (możliwość ich wykonywania nawet bez
posiadania konta na danym komputerze).
Dodatkowo
należy zwrócić uwagę na to jakie programy lub polecenia wywoływane są przez
program z ustawionym bitem suid - w szczególności czy program ten nie korzysta
przy wywoływaniu poleceń ze zmiennych środowiskowych (mogą one zostać zmienione
przez hackera) ani ścieżek względnych.
3.3.Buffer overrun
Podczas włamań
do systemów bardzo często wykorzystywane są błędy w programach wykonywanych na
uprawnieniach administratora polegające na braku odpowiedniej kontroli ilości
danych wprowadzanych do buforów wejściowych. Przykładem może być tutaj program login, który jest odpowiedzialny za logowanie
użytkowników. Celowe przepełnienie bufora wejściowego, na przykład w funkcji
oczekującej na hasło użytkownika, może powodować nieprzewidziane (lub wręcz
zamierzone ale zupełnie nieprawidłowe) zachowanie programu. Spowodowane jest to
tym, że bufory wejściowe są najczęściej tablicami lokalnymi, które są alokowane
na stosie podczas wykonywania konkretnej funkcji i ich przepełnienie powoduje
nadpisanie innych zmiennych.
W
typowych systemach struktura stosu podczas wywoływania funkcji jest następująca:
. . .
|
Bufor
|
inne zmienne lokalne
|
|
adres powrotu
|
|
. . .
|
Przepełnienie
bufora może być wykorzystane przez hackera na kilka sposobów:
· Program
w wyniku nadpisania zmiennych lokalnych lub adresu powrotu zakończy się z błędem
(segmentation fault). Jeżeli był to program taki jak np. login (dotyczy
to raczej jego starszych wersji) to na dysku zostanie zapisany plik core,
który może zawierać rozkodowane hasło użytkownika lub inne informacje pomocne w
dalszym włamywaniu się do systemu.
· Dzięki
znajomości struktury ramki stosu w konkretnej funkcji wejściowej danego
programu suid, hacker może zmodyfikować jego działanie w ten sposób, że przepełniając
bufor nadpisze adres powrotu z funkcji tak, aby wskazywał na jego kod i dzięki
temu uzyska możliwość wykonywania swoich poleceń na uprawnieniach
administratora.
Aby
ustrzec się przed tego typu atakami należy przede wszystkim:
· Używać
najnowszych wersji kluczowych dla systemu programów.
· Wyłączyć
zrzucanie pliku core dla programów wykonywanych na uprawnieniach
administratora.
· Backdoor
Angielskim
terminem backdoor określa się pozostawione przez hackera po włamaniu
"tylne furtki", czyli programy suid'owe (najczęściej jest to kopia
shell'a), które umożliwiają mu ponowne wejście do systemu nawet w przypadku
zmiany hasła przez administratora i wprowadzeniu dodatkowych zabezpieczeń. Taki
backdoor bardzo łatwo jest utworzyć wykonując, już po uzyskaniu uprawnień
administratora, kilku prostych poleceń. Przykładowo może być to:
$ cp /bin/sh /tmp/cde.tmp
$ chmod 4755 /tmp/cde.tmp
W wyniku
wykonania powyższych poleceń wykonanie polecenia "/tmp/cde.tmp" po
ponownym zalogowaniu do systemu spowoduje natychmiastowe uzyskanie uprawnień
administratora.
Oczywiście
backdoor może być znacznie bardziej wyrafinowanym programem niż tylko
kopia shell'a. Może to być na przykład odpowiednia modyfikacja któregoś z
demonów systemowych umożliwiająca wejście do systemu przez określony port TCP.
W
przypadku gdy administrator zauważy włamanie do systemu powinien poszukać
pozostawionych przez włamywacza backdoor'ów. Należy w tym celu przeszukać
cały system plików pod kątem programów suid. Można to zrobić poleceniem:
find / -perm +4000 -print
Dostaniemy
w ten sposób listę wszystkich programów suid w systemie. Wszelkie podejrzane
mogą być pozostawionymi przez hackera "tylnymi furtkami".
3.5.IP spoofing
Niektóre
protokoły jako jednej z metod autoryzacji dostępu używają adresu źródłowego IP
pakietów. Przykładem jest protokół RSH oraz wszystkie tak zwane R-polecenia. Użytkownik
tworzy w swoim katalogu domowym plik o nazwie .rhosts, w którym
umieszcza nazwy, bądź adresy IP komputerów, z których możliwy jest dostęp bez
podawania hasła. Może to zostać wykorzystane przez włamywacza w ten sposób, że
zmodyfikuje on wysyłane przez swój komputer pakiety tak, aby w polu adresu źródłowego
zawierały adres IP "zaufanego" komputera. Takie
"podszywanie" się pod adres IP innego komputera jest możliwe wtedy,
gdy komputer hackera znajduje się w tej samej podsieci IP co
"zaufany" komputer. Aby się przed tym ustrzec można kontrolować
oprócz adresów IP również adresy MAC interfejsów sieciowych. Służą do tego narzędzia
takie jak np. arpwatch. Niestety współczesne karty sieciowe umożliwiają,
po przestawieniu ich w specjalny tryb pracy, wysyłanie pakietów właściwie z
dowolnym adresem MAC. Jest to jednak zawsze pewnym utrudnieniem dla
potencjalnego włamywacza. Ze względu jednak na łatwość włamania tą metodą nie
należy stosować obecnie autoryzacji dostępu bazującej na numerze IP.
3.6.IP source routing
IP
source routing to
mechanizm wbudowany w protokół TCP/IP umożliwiający komputerowi wysyłającemu
pakiety IP określenie trasy, którą musi dany pakiet przejść poprzez
wyspecyfikowanie adresów IP kolejnych routerów na drodze do komputera
docelowego.
Z drugiej
strony w zabezpieczeniach systemu komputerowego często stosuje się techniki
takie jak firewall albo podział na interfejsy zaufane (trusted)
oraz publiczne. Tymczasem IP source routing daje hackerowi możliwość
skierowania swoich pakietów taką trasą, aby dotarły one do serwera interfejsem
zaufanym mimo, że domyślna trasa pakietów pochodzących "z zewnątrz"
prowadzi przez interfejs zaufany. Czasami metoda taka pozwala nawet na ominięcie
firewall'a.
3.7.Przykład włamania do systemu
Aby włamać
się do systemu komputerowego hacker musi zazwyczaj wykorzystać kilka różnych
metod. Poniższy przykład włamania dotyczy rzeczywistego włamania jakie miało
miejsce w jednej z krakowskich amatorskich sieci osiedlowych.
Celem włamania
był komputer o nazwie gruchot pełniący w sieci funkcję serwera IRC,
serwera Quake oraz Quake2, DHCP, zapasowego DNS, oraz będący równocześnie bramką
(bridge) pomiędzy segmentami sieci. Był to system o następujących
parametrach:
· Procesor:
Pentium 75
· Pamięć:
24MB RAM, 2GB HDD
· System
operacyjny: Red Hat Linux 6.2
· Jądro:
2.2.17 z wkompilowaną funkcją bridge
· Standardowe
oprogramowanie systemu
· Dwa
interfejsy sieciowe Ethernet: eth0, eth1, tworzące interfejs wirtualny
brg0, który miał przydzielony globalny adres IP
Włamywacz
zalogował się na komputer przez konto jednego z użytkowników, który wybrał
sobie zbyt proste i łatwe do odgadnięcia hasło. Ponieważ nie znał on dokładnie
konfiguracji systemu próbował początkowo różnych metod takich jak uruchamianie
gotowych programów, tzw. Exploits, które są łatwo dostępne na stronach o
tematyce hackerskiej. Ostatecznie włamał się do systemu za pomocą bardzo
prostej metody.
W
katalogu /tmp utworzył skrypt shell'owy o nazwie cool, którego zadaniem
było tworzenie shell'a suid'owego wykonującego się na uprawnieniach
administratora. Jednak aby skrypt zadziałał poprawnie hacker musiał wykonać na
uprawnieniach administratora. Posłużył się w tym celu programem dump -
narzędziem występującym w systemie RedHat Linux i służącym do tworzenia kopii
systemu plików na inny nośnik, lub poprzez sieć. Program ten został zainstalowany
w trakcie automatycznej instalacji wielu pakietów jaka ma miejsce podczas
instalacji systemu Red Hat Linux i przez niedopatrzenie administratora nie
został ani zablokowany ani odinstalowany. Program ten był tzw. suid'em i
dodatkowo napisany był wyjątkowo nierozważnie. Miał on bowiem możliwość zdalnej
komunikacji z innym komputerem poprzez protokół RSH, przy czym do uruchamiania
komendy rsh wykorzystywał on zmienną środowiskową RSH_PATH. Hacker
zmodyfikował więc zmienną RSH_PATH tak, aby wskazywała na skrypt /tmp/cool
i uruchomił z program dump z odpowiednim parametrem, który z kolei wywołał
na uprawnieniach administratora skrypt hackera, a ten utworzył w katalogu /tmp
kopię interpretera poleceń bash z ustawionym bitem suid. Dzięki temu
prostemu zabiegowi włamywacz uzyskał uprawnienia administratora.
Po tym włamaniu
hacker uruchomił inny skrypt, który miał za zadanie wymazać z plików log
informacji o jego działaniach, uniemożliwiając tym samym jego wyśledzenie. Na
szczęście dzięki przezorności administratora sieci osiedlowej wszystkie połączenia
przychodzące z zewnątrz były monitorowane na głównym serwerze sieci, a ten jako
już znacznie lepiej zabezpieczony nie stał się ofiarą ataku. Administrator miał
więc do dyspozycji pełny log z komunikacji pomiędzy komputerem hacker'a
a komputerem gruchot, który został przesłany do administratora sieci, z
której pochodził włamywacz i wobec hackera zostały wyciągnięte konsekwencje.
Tymczasem dla komputera gruchot został zablokowany dostęp z zewnątrz i
obecnie komputer ten udostępnia jedynie usługi lokalne.
4.Potencjalne
"dziury" w zabezpieczeniach systemu - przykładowa lista
niebezpiecznych usług.
4.1.R-commands
Do
klasycznych unix'owych r-commands zaliczamy rsh, rlogin, rcp, rexec. Komendy te
zostały stworzone, aby pozwolić użytkownikowi logować się na zdalnych maszynach
bez transmisji hasła przez sieć w celu jego autentykacji. Zaprojektowano je w
ten sposób, aby unikać przechwytywania haseł, tymczasem są one bardzo
niebezpieczne właśnie ze względu na to, że autentykacja przy pomocy hasła nie
dokonuje się wcale.
Komputery,
z których można zalogować się bez podawania hasła nazywane są hostami
zaufanymi. Aby móc zalogować się na zdalnym komputerze z zaufanego hosta należy
spełnić 3 warunki autentykacji :
· klient
musi korzystać z uprzywilejowanych portów TCP (poniżej 1024) - tylko root może
korzystać z uprzywilejowanych portów (jednak aktualnie każdy może być root-em
np. na swoim komputerze),
· host
i komputer klienta muszą być wymienione w pliku /etc/host.equiv albo w katalogu
domowym użytkownika w pliku /.rhosts (umieszczenie "+" w
/etc/hosts.equiv powoduje otwarcie dostępu całemu światu),
· nazwa
hosta musi odpowiadać jego adresowi IP (złamanie tej bariery jest proste, jeżeli
weźmiemy pod uwagę stan dzisiejszej techniki).
W
momencie, gdy komputer stanie się hostem zaufanym, pojawia się niebezpieczeństwo,
że napastnik "podszyje się" za niego lub za jakiegoś zaufanego użytkownika.
Jeżeli
atakujący poda się za zaufanego użytkownika ma on stosunkowo małe możliwości,
wcielając się w rolę superusera, będzie w stanie podać się za każdego zwykłego
użytkownika. Najlepszym zabezpieczeniem przed podszywaniem się za zaufanych użytkowników
jest dobry administrator systemu hosta zaufanego.
Wcielenie
się w zaufanego hosta może nastąpić w przypadku, gdy dwa komputery będą posiadały
2 takie same adresy IP swoje i swojej podsieci, co jest łatwe do wykrycia -
sama sieć zaczyna się dziwnie zachowywać.
Używanie
r-commands jest niebezpieczne kiedy zaufany klient ma włączoną opcję
"source routing". Wtedy wszystkie routery, aplikacje serwerów na
drodze klienta mają możliwość przechwycenia informacji o drodze klienta, można
go zatem łatwo wyśledzić i podszyć się za niego. Dlatego należy wyłączać
zaufanym hostom tę opcję.
Łatwo
jest dokonać wcielenia w hosta, który w danym momencie jest wyłączony (dotyczy
to zwłaszcza komputerów osobistych, często wyłączanych na noc). Przejęcie przez
napastnika adresu IP hosta wyłączonego jest trudne do wykrycia. Serwer
r-commands powinien monitorować stan sieci i hostów zaufanych (w sposób
bardziej skomplikowany niż zwykły ping) i w razie braku odpowiedzi od któregoś z
nich, zablokować możliwość zdalnego logowania. Po powrocie zaufanego hosta do
sieci, powinien on sam "zgłosić się" do serwera, zidentyfikować się i
poddać autentykacji. Dopiero wtedy odblokowana zostałaby możliwość wykonywania
r-commands.
R-
commands nie powinny być wypuszczane na zewnątrz przez firewall, w sieciach
lokalnych ich niedoskonałości nie stwarzają takiego zagrożenia i są możliwe do
zaakceptowania.
Poniżej
widnieją dwa błędy w r-commands, które stwarzają krytyczne zagrożenie dla
bezpieczeństwa systemu:
· w
AIX v.3 po komendzie: rlogin AIX.cel_ataku.com -l -froot otrzymywało się prawa root-a
· niektóre
platformy są wrażliwe na następujący atak:
· $export
RESOLV_HOST_CONF=/etc/shadow
· $rlogin /etc/shadow
R-commands
to usługi niebezpieczne ponieważ mają słabą autentykację, komunikacja odbywa się
w sposób jawny, założenia dotyczące klienta nie są weryfikowane.
4.2.Sendmail
Program
Sendmail służy do rozsyłania automatycznie wiadomości do grupy użytkowników
systemu. Za jego pomocą naruszono bezpieczeństwo wielu serwerów i sieci
komputerowych. Program ten jest dosyć skomplikowany, działa z uprawnieniami
roota, odpowiada na połączenia z dowolnego komputera z Internetu i ma
rozbudowany język poleceń. Podczas instalacji sendmaila jesteśmy zmuszeni na
ustawienie SUID'a na jego demonie, dlatego właśnie jest on chyba najczęstszym
celem ataków i w sumie najbardziej podatną częścią systemu na wykorzystanie
dziur i niedociągnięć. Jego rozbudowana forma i mnogość różnych konfiguracji
sprawia, że oko czujnego administratora powinno nieustannie śledzić doniesienia
o nowo wykrytych błędach.
Bardzo
ciekawą alternatywą dla sendmaila jest qmail. Jest to system pocztowy, który
zamiast jednego demona obsługującego wszystkie zadania mamy kilka niewielkich,
wyspecjalizowanych, współpracujących ze sobą programów. Tylko jeden z nich -
dostarczający przesyłki lokalne - wymaga uruchomienia z prawami roota. Pozostałe
pracują z innych kont przewidzianych specjalnie dla nich. To znacznie podnosi
bezpieczeństwo systemu ze strony systemu pocztowego. Autor programu zrezygnował
ze standardowych funkcji bibliotecznych jezyka C, które niekiedy zbyt
liberalnie traktują takie operacje jak alokacja buforów, co jest wykorzystywane
w exploitach typu "overflow". Dodatkową zaletą Qmaila jest dowolność
w miejscu gromadzenia poczty. Skrzynka pocztowa może być umieszczona w dowolnie
wskazanym miejscu przez użytkownika. To powoduje decentralizację składowanej
poczty, a co za tym idzie podnosi bezpieczeństwo przechowywanych w niej danych.
Zalety Qmaila czyniące go bezpieczniejszym systemem pocztowym niż powszechnie używany
Sendmail:
· możliwość
ograniczenia funkcji przekaźnika poczty elektronicznej,
· możliwość
ograniczenia dostępu (tcpd, tcpcontrol),
· niezawodny
system kolejkowania,
· automatyczne
zapobieganie powstawaniu 'pętli' (przy aliasach),
· obsługa
POP3,
· możliwość
równoległej pracy z innymi systemami pocztowymi (również z sendmailem),
· automatyczna
adaptacja do konkretnej wersji UNIX-a podc
|