Cechy różnych serwerów SMTP pracujących pod Linuksem

Linux to w większości darmowy system operacyjny bazujący na systemie UNIX. Choć bardzo dobrze sprawdza się on w zastosowaniach desktopowych, to jego udział na rynku tych systemów operacyjnych jest stosunkowo niewielki. Jednak główny udział Linuksa przypada na zastosowania serwerowe, gdzie od lat ma on opinię stabilnego i bezpiecznego systemu. Na serwerach (w ujęciu sprzętowym) pracujących pod kontrola systemu Linux działa wiele dużych portali światowych oraz stron takich instytucji ,jak giełdy niektórych państw, czy strony dużych banków. Dzięki odpowiedniemu oprogramowaniu Linux może służyć też do obsługi poczty elektronicznej. Programy, które służą do obsługi poczty elektronicznej to tzw. serwery poczty elektronicznej (ang. Mail Transfer Agent, MTA) pozwalające na przesyłanie wiadomości elektronicznych do poszczególnych adresatów. Sposób przekazywania tych wiadomości opisują tak zwane protokoły komunikacyjne.

Powszechnie używanym protokołem komunikacyjnym jest SMTP (ang. Simple Mail Transfer Protocol). Dla systemu Linux istnieje przynajmniej klika programów, potrafiących obsługiwać proroków SMTP, które nazywa się serwerami SMTP. Warto się niektórym z nich przyjrzeć z bliska.

 

Jednym z najbardziej popularnych i najstarszych serwerów poczty elektronicznej, który obsługuje m.in. protokół SMTP jest Sendmail. Ten otwarto-źródłowy serwer poczty elektronicznej rozwijany jest od początku lat 70-tych. Swoja popularność w systemach linuksowych i innych uniksopodobnych zawdzięcza też w głównej mierze temu, że był on natywnym serwerem poczty w systemach takich jak Unix. Sendmail jest uważany za dość trudny w obsłudze, gdyż wymaga on sprawnego „poruszania się” po plikach konfiguracyjnych w poszczególnych katalogach, a także znajomości dużej liczby komend, co w ostatnich czasach wpłynęło na spadek jego popularności na rzecz innych programów. Wpływ na to też miała duża ilość wykrytych dziur w oprogramowaniu, a niemodułowa budowa lecz funkcjonowanie jako pojedynczy program ułatwiało ataki hakerskie. Możliwe jest skorzystanie z jego wersji całkowicie darmowej, jak i wersji komercyjnej z dodatkowym wsparciem technicznym.

 

Następnym z serwerów SMTP jest Exim (Experimental Internet Mailer). Program ten, tak jak wiele innych przeznaczonych dla Linuksa jest rozwijany przez Uniwersytet w Cambridge rozprowadzany na licencji GNU GPL. Klasyfikacja poczty w tym programie oparta jest na routerach określających reguły jej kierowania, a za pomocą tzw. transporterów jest ona przesyłana do zewnętrznego serwera, bądź też umieszczana w pliku lub katalogu na dysku, czyli w odpowiedniej skrzynce mailowej. Jeżeli zapis odbywa się w katalogu, to mówimy o formacie zapisu maildir, polegającego na tym, że do wiadomości zapisywane są w katalogu maildir (podkatalog katalogu home, czyli katalogu domowego w systemach linuksowych), w którym znajdują się standardowo 3 podkatalogi, w których grupowane są:

  • wiadomości odczytane (podkatalog cur)
  • wiadomości nieodczytane (podkatalog new)
  • wiadomości tymczasowe (podkatalog tmp)

Innym sposobem zapisu wiadomości jest tzw. mailspool, gdzie poszczególne wiadomości zapisywane są w jednym pliku (katalog /var/spool/mail/nazwa_użytkownika). Poszczególne wiadomości oddzielone są od siebie pustą linia, zaś kolejność zapisu wygląda tak,że najnowsze wiadomości są dopisywane na końcu pliku). Działanie Exima opiera się na zasadzie, że za przetwarzanie informacji odpowiedzialny jest w zasadzie jeden program, który może jednak współpracować z innymi, takimi jak filtr antyspamowy (np. SpamAssassin) oraz programy antywirusowe (np. linuksowy Calm-AV, mksvir, czy F-Secure). Możliwe jest tez korzystanie przez Exim z baz danych takich jak chociażby MySQL).

 

Kolejnym serwerem SMTP jest postfix. Jest to szybki, bezpieczny oraz łatwy w administrowaniu program. Jest on udostępniany na licencji IBM. Oprócz protokołu SMTP obsługuje on też m.in. protokoły IPv6, czy TLS Uważany jest za dobrą alternatywę dla innych tego typu programów, jak Sendmail czy Exim. Posiada ona bardzo wiele opcji konfiguracyjnych i jest zoptymalizowany pod kątem obsługi dużych ilości danych poczty elektronicznej. W przeciwieństwie do programu takiego jak Exim, postfix składa się z wielu tzw, demonów wykonujących określone zadania. Nie pracują one na uprawnieniach roota, ale na niższych, co pomaga w ochronie przed różnymi atakami hakerskimi. Możliwa jest tez współpraca z zewnętrznymi programami, takimi jak choćby filtr antyspamowy. Postfiks do zapisu wiadomości wykorzystuje formaty takie jak maildir, czy mbox, którego zasada działania jest podobna jak formatu mailspool (zapis w jednym pliku).Program ten jest dystrybuowany zarówno w postaci kodu źródłowego, który trzeba samodzielnie skompilować, a następnie zainstalować program. Wiele dystrybucji udostępnia jednak ten program także w swoich repozytoriach.

 

Ostatnim serwerem SMTP, któremu warto się dokładniej przyjrzeć jest qmail. Jego pierwsza wersja powstała w latach 90- tych. Podobnie jak wyżej opisany postfix program ten posiada modułową budowę i poszczególne moduły z kilkoma wyjątkami pracują z uprawnieniami zwykłego użytkownika, co znacznie utrudnia ataki hakerskie. Dodatkowym zabezpieczeniem jest możliwość „współpracy programu” z oprogramowaniem antywirusowym. Ponadto jest to program dobrze dopracowany, ze względu na rzadki cykl wydawniczy. Serwer ten posiada zabezpieczenie przed utratą i niedostarczeniem przesyłanych danych w postaci wiadomości (na przykład podczas awarii). Podobnie jak postfix serwer qmail jest wydajnym serwerem zdolnym do obsługi wielu wiadomości (nawet do kilku milionów dziennie). Od paru lat serwer ten jest dostępny na zasadach public domain, dzięki czemu można modyfikować kod źródłowy.

 

Spośród serwerów poczty SMTP dla Uniksa i pochodnych, czy li m.in. Linuksa można wybierać te, które okażą się najszybsze i najbardziej niezawodne oraz bezpieczne. Są to serwery, które wymagają niekiedy dużego wysiłku podczas konfiguracji i obsługi, jak na przykład Sendmail oraz nowsze, w których konfiguracja jest już znacznie łatwiejsza.