User Tools

Site Tools


linuxdebian:exim4-dovecot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linuxdebian:exim4-dovecot [2025/09/28 12:59] – Versione per Debian 13 - primo rilascio kurganlinuxdebian:exim4-dovecot [2025/09/28 17:50] (current) – [Autoreply] kurgan
Line 73: Line 73:
  
  
-===== Nuovo in Debian 12 - Controllo SPF ed eventuale rifiuto ===== +===== Nuovo in Debian 12 e 13 - Controllo SPF ed eventuale rifiuto =====
- +
-In Debian 12 Exim è stato compilato per default con il supporto per la verifica del record SPF (in ricezione), e gestione del risultato nelle ACL. Nel file di configurazione per Debian 12 di exim che trovate allegato qui, ho attivato il controllo del record SPF del mittente. È una cosa in test, volendo potete eliminarla commentando le righe relative nelle ACL. Attualmente, se funziona correttamente, rifiuta le email che falliscono il controllo SPF soltanto se il mittente ha configurato il suo record spf con la stringa "-all" alla fine, ovvero il mittente stesso vuole che i destinatari rifiutino le mail che non passano il test. In ogni altro caso accetta la mail segnando nei log un warning. +
- +
-Questa parte è da collaudare e poi da migliorare, inserirò prossimamente un parametro di configurazione come per le altre funzioni come per dire il greylisting o l'uso delle RBL. +
  
 +In Debian 12 Exim è stato compilato per default con il supporto per la verifica del record SPF (in ricezione), e gestione del risultato nelle ACL. Nel file di configurazione per Debian 12 e 13 di Exim che trovate allegato qui, ho attivato prova il controllo del record SPF del mittente. Dopo qualche giorno di test mi sono reso conto che in Debian 12 ci sono problemi. Ho trovato almeno un caso di un record SPF corretto (ma complesso) che fallisce il controllo mentre dovrebbe passarlo correttamente. Questo fatto, unito al fatto che moltissimi mittenti hanno SPF configurato male e quindi falliscono il controllo comunque, mi ha fatto decidere di lasciare il tutto in "warn" e non in "deny". In questo modo va tutto nei log e si può poi fare ulteriore statistica e decidere cosa fare in futuro. Non ho ancora avuto modo di verificare se in Debian 13 se non altro hanno corretto il bug per cui i record SPF complessi vengono male interpretati.
  
  
Line 130: Line 127:
 ===== Configurazione di Exim ===== ===== Configurazione di Exim =====
  
-Prima di tutto, occorre fare alcune operazioni a livello di file system+Il file exim4.conf lo trovate qui allegato. Salvatelo come ''/etc/exim4/exim4.conf'' e guardateci dentro, ci sono tanti parametri da aggiustare per le vostre esigenze. 
-  * Creare la directory /var/vmail che conterra` la mail degli utenti dei domini virtuali e poi darle permessi 770 e assegnarla all'utente mail gruppo mail. + 
-<code>+  * Per Debian 11 e Devuan Chimaera (versione 4.94 di Exim) {{ :linuxdebian:exim4-dovecot:exim4.conf.v494.txt }} 
 +  * Per Debian 12 e 13  (versione 4.96 e 4.98 di Exim) {{ :linuxdebian:exim4-dovecot:exim4.conf.v496.txt }} 
 + 
 +Oltre a usare la configurazione allegata occorre fare una serie di altre operazioni: 
 + 
 +  * Creare la directory /var/vmail che conterra` la mail degli utenti dei domini virtuali e poi darle permessi 770 e assegnarla all'utente mail gruppo mail.<code ->
 mkdir /var/vmail mkdir /var/vmail
 chown mail:mail /var/vmail chown mail:mail /var/vmail
Line 138: Line 140:
 </code> </code>
  
-  * Creare la directory /etc/vmail e le sottodirectory che conterranno tutte le configurazioni dei domini virtuali. Creare il file /etc/vmail/domain_aliases,  vuoto, per evitare di avere errori. Questo file potra` poi essere usato o meno, a seconda delle necessita`. Il suo uso e` spiegato piu` avanti. +  * Creare la directory /etc/vmail e le sottodirectory che conterranno tutte le configurazioni dei domini virtuali. Creare il file /etc/vmail/domain_aliases,  vuoto, per evitare di avere errori. Questo file potra` poi essere usato o meno, a seconda delle necessita`. Il suo uso e` spiegato piu` avanti.<code ->
-<code>+
 mkdir /etc/vmail mkdir /etc/vmail
 mkdir /etc/vmail/users mkdir /etc/vmail/users
Line 150: Line 151:
   * Tutti i files dentro /etc/vmail dovranno essere leggibili (e non scrivibili) dal gruppo "Debian-exim" (con la maiuscola!) che e` il gruppo con cui di  default gira Exim4 in Debian. I files che contengono le password devono essere NON LEGGIBILI da tutti. Il consiglio e` quello di fare un ''chown root:Debian-exim'' e poi un ''chmod 640'' dei files.   * Tutti i files dentro /etc/vmail dovranno essere leggibili (e non scrivibili) dal gruppo "Debian-exim" (con la maiuscola!) che e` il gruppo con cui di  default gira Exim4 in Debian. I files che contengono le password devono essere NON LEGGIBILI da tutti. Il consiglio e` quello di fare un ''chown root:Debian-exim'' e poi un ''chmod 640'' dei files.
  
-  * Facoltativamente, puliamo /etc/exim4 dalle porcherie del compilatore di config di Debian (che non usiamo) e teniamo tutto da una parte. Se non lo faccio non cambia nulla, Exim userà la config che abbiamo fatto noi ''/etc/exim4.conf'' e ignorerà quella autogenerata. NOTA: se riavviamo Exim per qualsiasi motivo prima di avere creato il file di config nostro e dopo aver eliminato i files nativi debian, systemd si incazza.<code>+  * Facoltativamente, puliamo /etc/exim4 dalle porcherie del compilatore di config di Debian (che non usiamo) e teniamo tutto da una parte. Se non lo faccio non cambia nulla, Exim userà la config che abbiamo fatto noi ''/etc/exim4.conf'' e ignorerà quella autogenerata. NOTA: se riavviamo Exim per qualsiasi motivo prima di avere creato il file di config nostro e dopo aver eliminato i files nativi debian, systemd si incazza.<code ->
 mkdir /etc/exim4/old mkdir /etc/exim4/old
 mv /etc/exim4/* /etc/exim4/old/ mv /etc/exim4/* /etc/exim4/old/
 </code> </code>
  
-  * Creiamo una directory per le chiavi dkim, che e` bene che ci sia anche se non vogliamo usarla. (Io la uso comunque, senza DKIM oramai non mandi la mail a nessuno dei big)<code>+  * Creiamo una directory per le chiavi dkim, che e` bene che ci sia anche se non vogliamo usarla. (Io la uso comunque, senza DKIM oramai non mandi la mail a nessuno dei big)<code ->
 mkdir /etc/exim4/dkim mkdir /etc/exim4/dkim
 </code> </code>
  
- +  * Creiamo e poi rendiamo eseguibile lo script che invia email di allarme in caso di superamento del rate limit. Questo script va salvato come ''/etc/exim4/ratelimitalert.sh'' <code bash ratelimit.sh>
-Occorre creare lo script che invia email di allarme in caso di superamento del rate limit. Questo script, che si chiama ''/etc/exim4/ratelimitalert.sh'' deve essere eseguibile, e contiene quanto segue:<code>+
 #!/bin/bash #!/bin/bash
 # script per inviare email in caso di allarme # script per inviare email in caso di allarme
Line 209: Line 209:
 </code> </code>
  
 +È opportuno usare dei retry molto frequenti per velocizzare l'invio di email a destinatari che usino la greylist. Questo pero` richiede che Exim esegua il run della coda piu` spesso dei 30 minuti standard in Debian. Per ridurre questo tempo, occorre  modificare il file ''/etc/default/exim4''.
  
-Il file exim4.conf lo devo allegare perche` contiene una serie di parentesi graffe che mandano in crisi il renderer del markup language del wiki. +  Per Debian 12, modificando il valore ''QUEUEINTERVAL'', cosi`:<code ->
-  Lo trovate qui per Debian 11 e Devuan Chimaera (versione 4.94 di Exim) {{ :linuxdebian:exim4-dovecot:exim4.conf.v494.txt |}} +
-  * Lo trovate qui per Debian 12 e Devuan Daedalus (versione 4.96 di Exim) {{ :linuxdebian:exim4-dovecot:exim4.conf.v496.txt |}} +
- +
- +
-Nella configurazione allegata uso dei retry molto frequenti per velocizzare l'invio di email a destinatari che usino la greylist. Questo pero` richiede che Exim esegua il run della coda piu` spesso dei 30 minuti standard in Debian. Per ridurre questo tempooccorre  modificare il file ''/etc/default/exim4'' modificando il valore ''QUEUEINTERVAL'', cosi`: +
-<code>+
 # how often should we run the queue # how often should we run the queue
 QUEUEINTERVAL='5m' QUEUEINTERVAL='5m'
 </code> </code>
 +  * Per Debian 13, modificando il parametro ''EXIMSERVICE'' cosi`:<code -> 
 +EXIMSERVICE='-bdf -q5m' 
 +</code>
  
  
 ==== NOTE su Exim: ==== ==== NOTE su Exim: ====
 +
   * Le scansioni antivirus e antispam NON vengono fatte per gli utenti veri (quelli in /etc/passwd) della macchina. L'idea e` che questo sistema nasce per servire la mail solo agli utenti virtuali.   * Le scansioni antivirus e antispam NON vengono fatte per gli utenti veri (quelli in /etc/passwd) della macchina. L'idea e` che questo sistema nasce per servire la mail solo agli utenti virtuali.
-  * per fare testsono comodi i seguenti comandi: +  * Per fare test sono comodi i seguenti comandi: 
-  || ''exim4 -bP'' || Dump nella configurazione che Exim ha in memoria, compresi i valori di default |+ 
-  || ''exim4 -bs -d'' || Sessione smtp "in console" con debug molto dettagliato |+| ''exim4 -bP'' | Dump nella configurazione che Exim ha in memoria, compresi i valori di default | 
-  || ''exim4 -be -d+expand 'espressione''' || per testare una espressione (espansioni di variabili, if, e quant'altro). Notare gli apici singoli intorno all'espressione, fondamentali |+| ''exim4 -bs -d'' | Sessione smtp "in console" con debug molto dettagliato | 
-  || ''exim -bt <email address>'' || Per testare i le regole di routing delle mail. Exim finge di mandare una mail a quell'indirizzo e ci mostra con che router e trasporto la manderebbe (sia locale che remoto) |+| ''exim4 -be -d+expand 'espressione''' | per testare una espressione (espansioni di variabili, if, e quant'altro). Notare gli apici singoli intorno all'espressione, fondamentali | 
-  || ''exim4 -bh <indirizzo ip>.<porta> -d'' || Esegue una sessione smpt in console fingendo che sia provienente dall'indirizzo ip e porta indicati. ||+| ''exim -bt <email address>'' | Per testare i le regole di routing delle mail. Exim finge di mandare una mail a quell'indirizzo e ci mostra con che router e trasporto la manderebbe (sia locale che remoto) | 
 +| ''exim4 -bh <indirizzo ip>.<porta> -d'' | Esegue una sessione smpt in console fingendo che sia provienente dall'indirizzo ip e porta indicati. |
  
  
Line 242: Line 241:
   * Editare il file ''/etc/default/spamd'' ed impostare ENABLED=1 (in Debian 11, e` ''/etc/default/spamassassin'')   * Editare il file ''/etc/default/spamd'' ed impostare ENABLED=1 (in Debian 11, e` ''/etc/default/spamassassin'')
   * Debian 11: Volendo, in fondo, mettere CRON=1 per ricevere aggiornamenti alle regole di spamassassin (nota: questa opzione funziona ancora anche in debian 12, anche se in Debian 12 c'e` un timer in systemd che possiamo usare al posto di questa configurazione)   * Debian 11: Volendo, in fondo, mettere CRON=1 per ricevere aggiornamenti alle regole di spamassassin (nota: questa opzione funziona ancora anche in debian 12, anche se in Debian 12 c'e` un timer in systemd che possiamo usare al posto di questa configurazione)
-  * Debian 12: volendo possiamo usare il comando ''systemctl enable --now spamassassin-maintenance.timer'' invece di usare CRON=1 come indicato nella riga precedente. +  * Debian 12 e 13: volendo possiamo usare il comando ''systemctl enable --now spamassassin-maintenance.timer'' invece di usare CRON=1 come indicato nella riga precedente. 
-  * Se si vuole usare spamd attraverso un socket e non attraverso una connessione tcp a localhost, e` possibile farlo modificando ''/etc/default/spamassassin'' in modo da aggiungere alle opzioni quella per usare il socket (socketpath=xxx). In questo modo la riga OPTIONS diventa: +  * Se si vuole usare spamd attraverso un socket e non attraverso una connessione tcp a localhost, e` possibile farlo modificando ''/etc/default/spamassassin'' in modo da aggiungere alle opzioni quella per usare il socket (socketpath=xxx). In questo modo la riga OPTIONS diventa:<code>
-<code>+
 OPTIONS="--create-prefs --max-children 5 --helper-home-dir --socketpath=/var/run/spamd.ctl" OPTIONS="--create-prefs --max-children 5 --helper-home-dir --socketpath=/var/run/spamd.ctl"
 </code> </code>
Line 263: Line 261:
 </code> </code>
  
-  * Debian 11: Eseguire ''/etc/init.d/spamassassin start'' per avviare il demone spamd (ovviamente al reboot partira` da solo) +  * Eseguire ''systemctl restart spamd'' per riavviare spamassassin
-  * Debian 12: Eseguire ''systemctl restart spamd''+
  
 In questo setup, spamassassin (in realta` il demone spamd) viene sempre chiamato dall'utente "mail", quindi per qualsiasi utente di qualsiasi dominio il database bayesiano sara` sempre lo stesso, e si trovera` nella home dell'utente mail sotto una directory con nome ".spamassassin". In questo setup, spamassassin (in realta` il demone spamd) viene sempre chiamato dall'utente "mail", quindi per qualsiasi utente di qualsiasi dominio il database bayesiano sara` sempre lo stesso, e si trovera` nella home dell'utente mail sotto una directory con nome ".spamassassin".
Line 434: Line 431:
 ===== Autoreply ===== ===== Autoreply =====
  
-**Nota: questa soluzione, seppure funzionante, e` resa obsoleta dall'uso di filtri Sieve con Dovecot. (Vedasi [[Dovecot-Sieve]])**+**Nota: questa soluzione, seppure funzionante, e` resa obsoleta dall'uso di filtri Sieve con Dovecot.**
  
 E` possibile attivare un risponditore automatico in stile "vacation" che risponde alle mail di un utente tramite un messaggio con un subject preimpostato e un testo libero. Per farlo, occorre creare un file con nome ''/etc/vmail/autoreply/<dominio>/<utente>'' (ad esempio, /etc/vmail/autoreply/pippo.it/prova per l'utente "prova@pippo.it"). All'interno di quel file, va scritto il testo della risposta automatica, che puo` essere lungo quanto si vuole e composto di piu` righe senza problemi. L'autoreply e` limitato a una risposta al giorno per mittente, questo limite e` impostabile solo nella configurazione ed e` valido per tutti gli utenti, non si puo` differenziare per singolo utente. Per disattivare l'autoreply, va cancellato o rinominato il file. E` possibile attivare un risponditore automatico in stile "vacation" che risponde alle mail di un utente tramite un messaggio con un subject preimpostato e un testo libero. Per farlo, occorre creare un file con nome ''/etc/vmail/autoreply/<dominio>/<utente>'' (ad esempio, /etc/vmail/autoreply/pippo.it/prova per l'utente "prova@pippo.it"). All'interno di quel file, va scritto il testo della risposta automatica, che puo` essere lungo quanto si vuole e composto di piu` righe senza problemi. L'autoreply e` limitato a una risposta al giorno per mittente, questo limite e` impostabile solo nella configurazione ed e` valido per tutti gli utenti, non si puo` differenziare per singolo utente. Per disattivare l'autoreply, va cancellato o rinominato il file.
linuxdebian/exim4-dovecot.1759064389.txt.gz · Last modified: by kurgan