Przejdź do treści

Serwer poczty na FreeBSD 13 (cz. 8): Roundcube, Fail2Ban, uruchomienie i testy

Ochronę poczty mamy gotową (część 7). W finale serii stawiamy webmail Roundcube, dokładamy Fail2Ban, uruchamiamy wszystkie usługi i testujemy cały system — lokalnie i zdalnie.

📅 Wersje z epoki (2021). Testy i narzędzia (mail‑tester, SSLLabs, mxtoolbox itd.) pochodzą z projektu z 2021 r.

Roundcube (webmail)

Roundcube kompilujemy z opcjami MySQL i Pspell (sprawdzanie pisowni):

Dodanie do kompilacji Roundcube: MySQL i Pspell.

Instalacja Roundcube (wraz z zależnościami).

Importujemy schemat bazy i kopiujemy pliki konfiguracyjne:

# import schematu do bazy roundcube
mysql roundcube < /usr/local/www/roundcube/SQL/mysql.initial.sql

Import danych do bazy danych Roundcube.

Skopiowanie plików konfiguracyjnych Roundcube.

Konfigurujemy połączenie z bazą i ustawienia w config/config.inc.php, a także wtyczki managesieve (filtry) i password (zmiana hasła przez webmail):

Edycja pliku config.inc.php.

Konfiguracja wtyczki managesieve.

Konfiguracja wtyczki password.

Dodanie konfiguracji Roundcube do Apache i restart.

Uruchomienie usług i testy lokalne

Uruchamiamy Dovecota i Postfixa:

service dovecot start
service postfix start

Uruchomienie Postfixa i Dovecota.

Logi systemowe potwierdzają uruchomienie usług.

Testujemy lokalnie połączenia do poszczególnych portów:

Test SMTP na porcie 25.

Test SMTP na porcie 465 (SSL).

Test SMTP na porcie 587 (submission).

Test POP3 na porcie 110.

Test IMAP na porcie 143.

Sprawdzamy panele webowe — w PostfixAdmin dodajemy domenę projekt.brylka.net i konto brylka@projekt.brylka.net:

Dodanie konta do systemu pocztowego (PostfixAdmin).

Panel Maia-Mailguard — dostarczone wiadomości (powitalna i testowa).

Test Roundcube — przeglądanie wiadomości.

Fail2Ban

Instalujemy Fail2Ban z pakietów:

Inicjowanie instalacji Fail2Ban.

⚠️ Przy konfiguracji firewalla na zdalnej maszynie (bez fizycznego dostępu) trzeba być ostrożnym — jedna nieprzemyślana komenda może odciąć dostęp. Dlatego reguły wykonuję „z palca”, bez dodawania firewalla do startu — ewentualną pomyłkę naprawi zdalny „hard reset”.

service fail2ban onestart   # uruchomienie i sprawdzenie statusu

Uruchomienie Fail2Ban i sprawdzenie statusu.

Dodajemy reguły firewalla w /etc/ipfw.conf, ładujemy je i weryfikujemy:

sh /etc/ipfw.conf
ipfw list

Reguły ipfw.

Konfigurujemy jaila dla SMTP (analogicznie pilnujemy pozostałych usług):

Konfiguracja jaila Fail2Ban dla SMTP.

Sprawdzenie statusu Fail2Ban.

Po weryfikacji włączamy firewall i Fail2Ban przy starcie systemu (/etc/rc.conf):

firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
fail2ban_enable="YES"

Testy usług (zdalnie)

SSH

Połączenie realizuję programem PuTTY (przez cały czas konfiguracji):

Test usługi SSH.

MySQL

Lokalne logowanie na konto administratora MySQL.

Test phpMyAdmin — dodanie konta test.

Zdalne logowanie do MySQL na użytkownika „test".

Połączenie do bazy w MySQL Workbench.

Operacje na bazie w MySQL Workbench.

HTTP i HTTPS

Wejście na http://projekt.brylka.net przekierowuje na https://:

Strona startowa serwera w przeglądarce.

Test HTTPS w serwisie REQBIN.

Test certyfikatów SSL w SSLLabs.

SMTP

Najpierw test Open Relay — serwer przeszedł pozytywnie (nie jest otwartym przekaźnikiem):

Test SMTP Open Relay (appriver).

mxtoolbox potwierdza poprawną konfigurację SMTP.

Konfiguruję klienta Mailbird i wysyłam testową wiadomość do mail-tester.com:

Konfiguracja SMTP w programie Mailbird.

Przygotowanie e-maila testowego do mail-tester.com.

Logi serwera pocztowego — kolejne fazy przekazywania wiadomości.

Wynik mail-tester.com potwierdza poprawną konfigurację.

Kilka punktów odjęto za zbyt skąpą treść (reguły SpamAssassina) oraz brak DKIM/DMARC. Konfiguracja DMARC jest uciążliwa (wymaga osobnej skrzynki na raporty i wysyłania statystyk co 24 h), a brak tych mechanizmów nie wpływa znacząco na dostarczalność — dlatego nie zostały tu wdrożone.

POP3 i IMAP

Test POP3 narzędziem wormly.com.

Test IMAP narzędziem dotcom-tools.com.

Konfiguruję Mailbird do obsługi konta przez IMAP:

Konfiguracja IMAP w programie Mailbird.

Skrzynka pocztowa obsługiwana przez IMAP.

Źródło wiadomości otrzymanej z serwera gmail.com.

Fail2Ban

Generuję trzy nieudane próby wysyłki (smtper.net) — po trzeciej Fail2Ban blokuje adres IP, a kolejna próba kończy się przekroczeniem czasu:

Próba wysłania e-maila z błędnymi danymi.

Fail2Ban wykrywa trzy niepoprawne próby i blokuje adres IP.

Status Fail2Ban dla Postfiksa z zablokowanym adresem IP.

Kolejna próba wysyłki — niepowodzenie (przekroczenie czasu).

Podsumowanie

System pocztowy oparty o Postfix i Dovecot został skonfigurowany poprawnie, co potwierdziły testy. Konfiguracja jest dość pracochłonna — szczególnie przez współdzielenie danych autoryzacyjnych przez oba serwery oraz liczne zadania MTA (przekazywanie poczty, autoryzacja, detekcja spamu, sprawdzanie baz RBL).

Oba serwery współpracują z bazą MySQL — to ułatwia administrację użytkownikami (edycja wpisów w bazie zamiast plików konfiguracyjnych). Do zarządzania kontami użyłem PostfixAdmin, a dla wygody użytkowników — webmaila Roundcube.

Aby w pełni dopiąć system, warto jeszcze dodać: DKIM i DMARC, greylisting oraz limitowanie poczty wychodzącej.

To koniec serii odtwarzającej mój projekt z 2021 r. Nową wersję — z aktualnym stackiem i wersjami — przygotowuję osobno. Pełny PDF źródłowy pobierzesz z wpisu: Instalacja i konfiguracja serwera pocztowego. Cała seria zaczyna się od części 1: architektura i komponenty.