Budowa systemu pocztowego

Opis systemu pocztowego opieram na wiedzy, którą nabyłem przy wdrożeniu systemu pocztowego, które wykonałem na Uniwersytecie Śląskim w Katowicach. W pierwszym etapie było to okoł 3 tys. użytkowników, w chwili obecnej system może obsługiwać ok. 40 tys. użytkowników. Całość systemu (oprócz Sophos AV) oparta jest na oprogramowaniu Open Source. Jego głównymi składnikami są:

  • 3 serwery Dovecot, które umożliwiają dostęp do skrzynek pocztowych przy pomocy protokołu IMAP i POP3, dostarczanie poczty (LDA) za pomocą protokołu LMTP, filtrowanie poczty mechanizmem Sieve i zarządzanie filtrami przy pomocy ManageSieve oraz uwierzytelnianie użytkowników (AUTH) dla nadawania poczty;
  • 2 serwery Postfix, z których jeden przyjmuje i nadaje pocztę z i do Internetu protokołem SMTP, filtruje połączenia, skanuje antywirusowo i antyspamowo, a drugi umożliwia nadawanie poczty użytkownikom po uwierzytelnieniu i dostarcza wiadomości do użytkowników lokalnych przy pomocy protokołu LMTP;
  • 7 instancji usługi katalogowej LDAP jako źródeł danych dla systemu pocztowego i innych usług. Dwa serwery OpenLDAP w konfiguracji multi-master przechowują dane pracowników, dwa serwery OpenDJ w konfiguracji multi-master przechowują dane studentów (przy tej ilości entry w OpenLDAP napotkaliśmy problemy z replikacją MM), dwa serwery OpenLDAP służące jako Meta Proxy do połączenia danych z obu źródeł oraz jeden serwer wystawiony na frontendzie jako książka adresowa;
  • Amavisd-new jako interfejs pomiędzy Postfixem i skanerami AV i AS;
  • ClamAV (jako daemon) oraz Sophos (komercyjny) jako programy antywirusowe;
  • Moduł Perlowy SpamAssassin służący do punktacji spamu;
  • Dodatkowe filtry do walki ze spamem, Postgrey (porzucony na rzecz postscreena wbudowanego w Postfixa), rbldnsd i fail2ban;
  • Gnarwl służący jako autoresponder dla użytkowników wirtualnych przechowywanych w LDAP (w fazie wycofywania ze względu na możliwości Sieve).
  • Interfejs Webmail do obsługi poczty przez www, np. Horde lub Roundcube

Powyższe oprogramowanie zostało dobrane ze względu na elastyczność konfiguracji, dużą niezawodność, bezpieczeństwo, skalowalność i duże możliwości.

Serwer Dovecot umożliwia uwierzytelnianie użytkowników przy wysyłaniu (AUTH), posiada własny mechanizm dostarczania poczty (deliver) oraz mechanizm wtyczek (plugin), dzięki któremu łatwo można rozbudować to oprogramowanie o dodatkowe funkcje, np. mechanizm quota, który jest dostarczany z Dovecotem lub mechanizm filtrowania oparty na języku Sieve, który można łatwo dokompilować/doinstalować. Można także tworzyć i uruchamiać własne wtyczki (pluginy).

Serwer Postfix znany jest ze swej niezawodności i elastyczności konfiguracji. Można w łatwy sposób wyposażyć go w filtry antywirusowe i antyspamowe, sprawdzanie nagłówków, różnego rodzaju list (RBL, DNSBL) itp. Jest także bardzo elastyczny jeśli chodzi o źródła danych i mapy, potrafi współpracować z BerkeleyDB, sqlite, MySQL, LDAP itp.

Usługa katalogowa LDAP (Lightweight Directory Access Protocol) znana jest ze swej skalowalności i bardzo szybkiego dostępu do danych. Możliwe jest rozszerzanie schematów i dodawanie własnych atrybutów. Katalog LDAP może być wykorzystywany jako źródło danych w wielu różnych aplikacjach i serwerach. OpenLDAP dobrze się sprawdzał przy kilku tysiącach wpisów, problemy zaczęły występować w mechanizmie replikacji kiedy pojawiło się kilkadziesiąt tysięcy entry. Wtedy za namową specjalisty, który zajmuje się wdrożeniami w wielkiej skali zainstalowałem katalog OpenDJ, który jest następcą OpenDS, projektu który powstał pod skrzydłami firmy Sun Microsystems.

Może Ci się również spodoba

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.