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.