Envato Elements - pobieraj co chcesz, ile chcesz

Niedawno opublikowałem artykuł, w którym starałem się przedstawić możliwości, jakie ma osoba zainteresowana założeniem poczty e-mail w ramach własnej domeny (poczta w domenie). Rozpiętość rozwiązań jest duża – od poczty w ramach hostingu, przez pocztę u wyspecjalizowanych firm świadczących tego typu usługi, kończąc na własnym serwerze pocztowym. I w tym artykule zajmiemy się właśnie tym – postaram się pokazać, jak relatywnie prosto można uruchomić własny serwer pocztowy (wraz z konfiguracją domeny).

Serwer pocztowy MailCow: dockerized

Do poradnika dotyczącego jak uruchomić własny serwer pocztowy zabierałem się dość długo, choć temat pojawiał się co jakiś czas, czy to w pytaniach znajomych, czy – niektórych – czytelników. To, co mnie wstrzymywało, to fakt, że jeśli już ktoś decyduje się na postawienie własnego serwera pocztowego, to jednak jakaś już wiedzę z zakresu m.in. konfiguracji i obsługi serwerów powinien mieć, co z automatu wyklucza zapewne spore grono czytelników.

Nie bez znaczenia jest też to, że prawidłowo działający (i relatywnie bezpieczny) serwer pocztowy składa się tak dużo elementów, które muszą ze sobą współpracować, że istnieje bardzo duża szansa, że to co zadziałało u mnie, niekoniecznie zadziała u innych. Potencjalnych punktów, gdzie coś się może wysypać jest po prostu bardzo, ale to bardzo dużo – czy to na etapie samej konfiguracji, czy korzystania z serwera/poczty.

Tak na poważnie, że jednak może da się napisać w miarę uniwersalny i prosty poradnik zacząłem myśleć wraz z rozpowszechnieniem się rozwiązań typu „mail in a box”, czyli w dosłownym tłumaczeniu – serwer pocztowy z pudełka (e-mail z pudełka). Kilka rozwiązań tego typu wymieniłem również w artykule z przeglądem rozwiązań/możliwości w tym zakresie. Jednak rozwiązania te, choć faktycznie upraszczały proces instalacji i konfiguracji serwera pocztowego, to zdecydowanie nie były na tyle bezproblemowe (pewne) by na ich bazie tworzyć tego typu poradnik, który z założenia ma trafić również do mniej zaawansowanych osób (ale bez przesady ;-)).

Pod koniec 2017 roku postanowiłem kolejny raz zrobić całościowy przegląd tego typu rozwiązań, licząc na to, że w końcu trafię na rozwiązanie, które nie dość, że w kilku kolejnych podejściach zadziała „z automatu” (VPSy u różnych dostawców, m.in. HitMe.pl, DigitalOceanArubaCloud), to jeszcze na podstawie przekazanych notatek „mniej zaawansowany” kolega będzie wstanie samodzielnie zainstalować i skonfigurować własny serwer pocztowy, wraz z przypisaniem do niego domeny, oraz konfiguracją kilku kont pocztowych.

Niestety sporo rozwiązań, które miały cały proces automatyzować na takim czy innym elemencie się wysypywało. Inne, które zainstalowały się poprawnie, a sam serwer działał prawidłowo były na tyle toporne w bieżącym zarządzaniu, że również musiałem je skreślić.

Z krótkiej listy rozwiązań, które przeszły przez selekcje w sposób jak najbardziej subiektywny wybrałem jedno, z którego zresztą sam korzystam…

MailCow: dockerized, czyli krówka pocztowa w kontenerach Dockera

Najlepsze wrażenie zrobiła na mnie pocztowa krówka, czyli MailCow, w wersji dockerized, czyli działającej w kontenerach Dockera. I choć cały czas nie mogę się przekonać do Dockera na tyle, by na „zwykłych serwerach” na nim stawiać np. webserwer, to w przypadku serwera pocztowego nie mam wątpliwości, że jest to rozwiązanie bardzo dobre, bo w pewnym sensie uniezależnia usługę pocztową (serwer pocztowy) od samego systemy, dzięki czemu zapewne znacznie maleje ryzyko błędów…

Zanim przejdę do procesu instalacji (i konfiguracji) kilka uwag porządkowych, które powinny Wam pomóc, jeśli zdecydujecie się skorzystać z tego rozwiązania:

  • Serwer pocztowy będzie instalowany na nowym serwerze VPS, działającym pod kontrolą systemu Debian 9 (Linux)
  • Poczta będzie konfigurowana dla domeny WebInsider.pl (choć na grafikach może być poczta.webinsider.pl)
  • Serwer pocztowy zostanie zainstalowany na serwerze VPS, na którym będzie działać tylko poczta (adres serwera: poczta.webinsider.pl)
  • W tym poradniku będę korzystał z serwera, którego adres IP to 123.123.123.123

Robię  tak dlatego, że dla mnie serwer pocztowy to oddzielny serwer, i na nim nie uruchamiam nic innego (choć można). Instalację i konfigurację MailCow najlepiej wykonać na „czystym” serwerze, z jak najmniejszą liczbą dodatkowe oprogramowania (dotyczy głównie programów mocniej ingerujących w system). Nie jest to wymóg, ale na pewno znacznie zwiększa to szansę na to, że cały proces przebiegnie bez problemów.

Instalacja (i podstawowa konfiguracja) MailCow: dockerized

Sam proces instalacji MailCow jest dość dobrze opisany w oficjalnej dokumentacji, i w większości przypadków nie trzeba w nim nic zmieniać.

Z racji tego, ze jest to nowy serwer VPS, to zaczynamy od aktualizacji (instalację przeprowadzam wyjątkowo jako użytkownik „root”, bo tak jest prościej):

apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y

Następnie należy zainstalować oprogramowanie, które będzie wykorzystywane w dalszym procesie instalacji:

apt-get install curl git

W tym momencie możemy zaczynać instalację (pobieranie) MailCow:

curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable docker.service
systemctl start docker.service
curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Następnie:

cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh

Na tym etapie podajemy adres serwera (w moim przypadku: poczta.webinsider.pl), oraz strefę czasową (np. Europe/Warsaw).

Proces ten utworzy plik konfiguracyjny, w którym znajdziemy kilka podstawowych ustawień:

nano /opt/mailcow-dockerized/mailcow.conf

Ustawienia zostawiam już Wam, ale warto zwrócić uwagę m.in. na proces, który automatycznie może zresetować usługe w przypadku wystąpienia usterki:

USE_WATCHDOG=n
WATCHDOG_NOTIFY_EMAIL=

Czy skaner antywirusowy, który w przypadku słabszych maszyn (głównie pamięć RAM) może trochę obciążać serwer/system:

SKIP_CLAMD=n

Jeśli zamierzamy korzystać z dodatkowych adresów URL do łączenia się z serwerem (innych niż podany przy konfiguracji, czy – później – podczas konfiguracji domen, dla których ma działać usługa) to być może warto też uzupełnić parametr:

ADDITIONAL_SAN=

Niezależnie od Waszych decyzji, w późniejszym etapie tez można dokonać modyfikacji tych ustawień (wystarczy później zrestartować usługę).

W tym momencie możemy właściwie już uruchomić serwer pocztowy:

docker-compose pull
docker-compose up -d

I jeśli chodzi o instalacje i podstawową konfigurację to tyle. Mówiłem (pisałem), że będzie szybko, prosto i wygodnie… :-)

Podstawowa konfiguracja rekordów DNS

Prawidłowej konfiguracji rekordów DNS dla poczty w ramach własnej domeny poświęciłem niedawno cały artykuł, i zdecydowanie zachęcam, by się z nim zapoznać, bo jest to element równie ważny, co sama instalacja serwera pocztowego.

W moim przypadku dodaje rekord A „poczta” wskazujący na adres IP serwera, na którym działa MailCow:

A poczta.webisnider.pl: 123.123.123.123

Oprócz rekordu A potrzebny jest rekord MX:

MX webinsider.pl: poczta.webinsider.pl

Oraz rekord SPF (TXT):

TXT webinsider.pl: v=spf1 mx ~all

Pozostałe rekordy (DKIM i DMARC) można pominąć, choć my je dodany – ale w późniejszym etapie…

Konfiguracja MailCow (administracja)

W tym momencie (dodany rekord A) możemy się połączyć już bezpośrednio z panelem zarządzania serwerem pocztowym, który w moim przypadku znajduje się pod adresem:

http://poczta.webinsider.pl

I jeśli proces instalacji przebiegł bez zakłóceń, to przywita nas domyślny ekran logowania MailCow:

Domyślny użytkownik to „admin”, a hasło to „moohoo”. Oczywiście zmieniamy to (przynajmniej hasło) zaraz po zalogowaniu. A najlepiej, to od razu aktywować dwuskładnikowe uwierzytelnienie (2FA):

W zakładce „konfiguracja” możemy od razu ustawić własne logo, oraz teksty dla poszczególnych sekcji na ekranie logowania:

W następnym kroku musimy dodać pierwszą domenę, w ramach której poczta e-mail będzie obsługiwana na serwerze. W moim przypadku będzie to „webinsider.pl” (na grafikach poniżej „poczta.webinsider.pl):

Gdy domena jest już ustawiona, możemy dodać pierwszy adres e-mail:

W pozostałych ustawieniach można m.in. ustawić aliasy dla poszczególnych kont e-mail, jak i dla całych (sub)domen:

Jak chyba widać na powyższych grafikach panel zarządzania jest dość przejrzysty, i raczej nikt (kto decyduje się na własny serwer pocztowy ;-)) nie powinien mieć problemów z konfiguracją.

Secure Socket Layer (SSL)

To co na pewno warto zrobić, to aktywować szyfrowane połączenie z panelem – czy to dla siebie, czy użytkowników. Dodatkowe domeny (poza tymi dodanymi bezpośrednio w panelu) dodajemy we wspomnianym już parametrze:

ADDITIONAL_SAN

w pliku konfiguracyjnym (mailcow.conf).

Za zmiaęa/generowanie nowych certyfikatów odpowiada polecenie:

cd /opt/mailcow-dockerized
docker-compose restart acme-mailcow

Choć można zrestartować całą usługę:

cd /opt/mailcow-dockerized
sudo docker-compose up -d

Nie trwa to długo, a z doświadczenia wiem, że czasem jest potrzebne…

Zaawansowane (dodatkowe) ustawienia DNS

W tym momencie możemy możemy wygenerować już klucz DKIM dla dodanej do serwera domeny:

Wpisujemy domenę (wcześniej dodaną do serwera) i wybieramy wielkość klucza (np. 2048). Selektor można zostawić domyślny (dkim). I klikamy „dodaj”:

Kopiujemy klucz, który wyglądać będzie mniej więcej tak:

v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAONg8Dgs53Dkzhd7DDGCLCg1s2gDS3A4smfg1+yux0M5m2ss7fTU1f5eJdH8k0ETgOrUkhtd/83A8gurwRUBOLG9QUCNn7wErjDxtf/2LZJ+u1Tqy/lr2KOlDgHSs7Sd8DYu/Y8lfWIGZn1NpL4YxCp6d2h01uMZQsR7fJp/Dj28CjtEInuidElE03/kOE9MvtPGQ3Yhyjq02dGd5As4fHRUol5NyHf/Iem5Yveu4NM6v0C7qH+3GiM1JEUTBAfw83ckjD1nbXeZiAylmCyXsBzRVeKLVw9mmT0J0vbdbZAvHowppDeZ1nmx9AprL25Qd548giJis9tGUS6st8cwIDAQAB

I dodajemy rekord DNS:

TXT webinsider.pl: v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAONg8Dgs53Dkzhd7DDGCLCg1s2gDS3A4smfg1+yux0M5m2ss7fTU1f5eJdH8k0ETgOrUkhtd/83A8gurwRUBOLG9QUCNn7wErjDxtf/2LZJ+u1Tqy/lr2KOlDgHSs7Sd8DYu/Y8lfWIGZn1NpL4YxCp6d2h01uMZQsR7fJp/Dj28CjtEInuidElE03/kOE9MvtPGQ3Yhyjq02dGd5As4fHRUol5NyHf/Iem5Yveu4NM6v0C7qH+3GiM1JEUTBAfw83ckjD1nbXeZiAylmCyXsBzRVeKLVw9mmT0J0vbdbZAvHowppDeZ1nmx9AprL25Qd548giJis9tGUS6st8cwIDAQAB

Od razu (opcjonalnie) możemy dodać też rekord DMARC:

TXT webinsider.pl: v=DMARC1;p=none;sp=quarantine;pct=100;rua=mailto:[email protected]

(w miejscu „nasza-domena” w moim przypadku znalazłoby się „webinsider.pl).

Dodatkowe ustawienia MailCow

W tym momencie poczta e-mail w naszej domenie powinna już działać, ale warto rzucić okiem jeszcze na kilka ustawień w panelu administracyjnym MailCow. M.in. ustawienia usługi Fail2Ban:

Nie jest to obowiązkowe, na standardowych ustawieniach też będzie OK, ale może ktoś z Was będzie chciał np. dodać swój adres IP (jeśli stały i publiczny) do białej listy, by w przypadku „pomroczności jasnej” się nie zablokować… ;-)

Podstawowe komendy administracyjne

Jeśli już zdecydujecie się na uruchomienie własnego serwera pocztowego, to warto o niego dbać. Nie będę tu wymieniał wszystkich czynności, jakie trzeba wykonywać (odsyłam m.in. do dokumentacji), ale kilka poleceń warto przyswoić.

Usługę (wszystkie komponenty) zrestartować można za pomocą poleceń:

cd /opt/mailcow-dockerized
sudo docker-compose up -d

Warto pamiętać też o regularnej aktualizacji:

cd /opt/mailcow-dockerized/
sudo /opt/mailcow-dockerized/update.sh

Jest to wariant najprostszy, bo automatyczny. Co za tym idzie może się zdarzyć, że… coś pójdzie nie tak. Choć przez kilka(naście) miesięcy jak korzystam z krówki nigdy nie miałem z tego tytułu problemów.

Rapid spam filtering system (RSPAMD)

Gdy decydujemy się na własny serwer pocztowy, to na nas spoczywa m.in. filtrowanie SPAMu. Zarówno przychodzącego, jak i wychodzącego. W MailCow znajdziemy zintegrowany system (oprogramowanie) RSPAMD, do którego od razu warto sobie wygenerować hasło w ustawieniach MailCow (Rspamd UI).

I ogólnie warto tu od czasu do czasu zaglądać. Nie tylko dla ładnych wykresów… ;-)

Ustawienia użytkownika

jeśli chodzi o (podstawową) administrację to właściwie tyle. Warto jednak pamiętać, że „zwykły użytkownik” również może się zalogować od panelu zarządzania. Oczywiście nie ma tylu uprawnień, i nie może zmieniać konfiguracji serwera:

Ale może np. wygenerować sobie tymczasowy alias, ważny prze określony czas (liczony w godzinach lub dniach):

Rzecz niby błaha, ale… moim zdaniem bardzo przydatna, nie tylko gdy musimy podać adres e-mail na jakiejś „potencjalnie podejrzanej stornie”.

SOGo groupware, czyli podstawowy (nie tylko) webmail

Ale serwer pocztowy to jedno, bo musi (powinien) mięć też jakiś webmail, czyli miejsce, gdzie użytkownik może się zalogować m.in. po to by sprawdzić pocztę, czy wysłać wiadomość. W przypadku MailCow domyślny webmail to SOGo. I moim zdaniem to dość dobry wybór. Chyba dużo lepszy niż „klasyczny” (archaiczny) np. Roundcube.

Jest to dość dobrze przemyślany webmail, do tego nie straszy wyglądem, a wręcz… powinien się podobać większości użytkowników.

RainLoop, czyli dodajemy (kolejny) webmail

Natomiast jeśli kto z Was chciałby dodać do serwera inny webmail, to nie ma takiego problemu – mamy w końcu pełnoprawny webserwer na Nginx.

Podstawowe pliki związane z usługą MailCow (np. konfiguracja) znajdują się w katalogu:

/opt/mailcow-dockerized

Pliki RainLoop wrzucamy do katalogu:

/opt/mailcow-dockerized/rainloop

Jest to – jak już pisałem – bardzo minimalistyczny webmail, Z poziomu użytkownika wygląda tak:

Administrator ma kilka dodatkowych opcji:

Do panelu „admina” można dostać się dodając „?admin” do linku, np.:

https://poczta.webinsider.pl/rainloop/?admin

Natomiast dla „zwykłych użytkowników” możemy dodać odpowiednią opcję w panelu zarządzania, korzystając ze wspomnianej już opcji „customize”:

Ja osobiście lubię ten webmail. Co więcej – traktuje go jako „mobilną alternatywę” dla Thunderbirda…

Czy na pewno chcesz własny serwer pocztowy?

Jak (mam nadzieje) widać, instalacja i konfiguracja własnego serwera pocztowego nie musi być trudna. Nawet jeśli uważam, że najczęściej jest to niewarta świeczki. Oczywiści własny serwer pocztowy daje poczucie niezależności, bo w końcu nasza poczta e-mail jest u nas. Ale… serwer pocztowy należy traktować jako żywy organizm, i należy się o niego troszczyć – pamiętajcie o regularnych aktualizacjach, kopiach zapasowych, oraz bieżącym monitorowaniu, czy ktoś z Waszego serwera nie wysyła SPAMu…

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Janusz i Janusz dzięki motywowi Divi od Elegant Themes koszą siano robiąc strony
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Roztańczona Karolina zapisała się do Newslettera WebInsider.pl i... teraz może tańczyć