Mail Server: openSUSE, Postfix, Dovecot, MariaDB e Squirrel Mail – Part 1

Published by Lello on

In questa serie di articoli vedremo come installare un sistema di gestione di posta elettronica.
Per effettuare questa installazione, utilizzeremo:

  • SO: il nuovo openSUSE Leap 15.3, rilasciato da qualche settimana;
  • DB: MariaDB, versione free del popolare DB transazionale MySQL;
  • Mail Server: Postfix (standard “de facto” quando si parla di server di posta), coadiuvato nell’amministrazione dal package PostfixAdmin;
  • AV/Spam: utilizzeremo ClamAV come AV, Spamassassin (con Razor, Pyzor e SpamList) per combattere lo spam e Amavis quale “direttore di orchestra” per trovare i virus, mettere in quarantena le mail, ripulire i messaggi, gestire (generare e verificare) le signature DKIM dei domini; utilizzeremo anche postgrey (una via di mezzo tra whilelist e blacklist) per gestire in modo migliore lo spam;
  • IMAP Server: Dovecot;
  • WebMail: SquirrelMail (non necessario, ma gli utenti spesso gradiscono).

Utilizzeremo qualunque accorgimento necessario per rendere sicuro il nostro sistema di posta a livello di packages e servizi; tralasceremo le regole di firewall (sia locali al SO che perimetrali) in quanto queste dovranno essere adattate all’ambiente in cui tale sistema verrà ospitato.
Le caselle di posta saranno ospitate su FS locali; non è compito di questo articolo definire le misure di sicurezza da adottare per rendere il FS sicuro; un buon accorgimento sarà quello di utilizzare un HIDS/NIDS (quale ad esempio Wazuh ) per analizzare e bloccare in realtime eventuali tentativi di intromissioni fraudolenti nel sistema.

Tutte le definizioni riguardanti i domini virtuali, le caselle di posta, gli alias e quant’altro, saranno poste all’interno di un DB; utilizzeremo anche certificati SSL per accesso sicuro sia al mail server (porta 465), a Dovecot e al web server.

Installiamo il SO in modalità “server”, senza nessuna interfaccia grafica; inizialmente disabiliteremo Firewall e SELinux, installando solo il SO “base”.

Una volta installato il sistema, disabilitiamo tramite YAST2 il supporto all’IPv6:

openSUSE disable IPv6
openSUSE disable IPv6

prima di riavviare, applichiamo eventuali aggiornamenti:

# zypper up
...
# reboot

Ricordiamoci che il nome del server ed il corrispondente indirizzo IP devono essere correttamente registrati nel DNS; inoltre, il campo MX del dominio dovrà puntare al nostro mail server affinchè le mail possano arrivare.

Verifichiamo che il nome del server sia corretto; questo è fondamentale per il corretto funzionamento del sistema.

  1. Nel file /etc/hostname deve esserci il nome del server (NO FQDN):
    • mailserver
  2. Nel file /etc/hosts deve esserci l’associazione tra indirizzo IP e nome FQDN:
    • 192.168.100.100 mailserver.anthesia.lan mailserver

Procediamno installando MariaDB, uno tra i più poplari database transazionali open source. E’ stato creato da alcuni sviluppatori di MySQL, con l’intento di garantire al prodotto la continuità open source (con MySQL che “gravita” oramai nell’orbita di Oracle). MariaDB ospiterà il DB di postfix (domini virtuali, gli alias, gli utenti), dei filtri bayesiani e di amavis.

Dopo aver installato il DB, creiamo una password per l’utente root, rimuoviamo gli utenti anonimi, l’accesso remoto e il DB di test; procediamo anche con la creazione di un database per Postfix/PostfixAdmin (cambiate il nome del DB, il nome dell’utente e della password):

# zypper -n in mariadb mariadb-client mariadb-tools perl-DBD-mysql perl-DBI 
# systemctl enable --now mariadb
# mysql_secure_installation
...
# mysql -p
 Enter password:
 ...
 MariaDB [(none)]> CREATE DATABASE postfix_db;
 Query OK, 1 row affected (0.001 sec)
 MariaDB [(none)]> GRANT ALL ON postfix_db.* TO postfix_user@localhost IDENTIFIED BY 'postfix_pwd';
 MariaDB [(none)]> FLUSH PRIVILEGES;
 MariaDB [(none)]> exit

Part 2 →