GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Filtro di posta Procmail

Questa pagina spiega come utilizzare Procmail programma e Webmin per filtrare e consegnare le email in arrivo nel tuo sistema.

Introduzione a Procmail

Procmail è un potente programma per filtrare e reindirizzare le e-mail che normalmente verrebbero inviate alle caselle di posta degli utenti. Può essere utilizzato sia a livello di sistema per filtrare i messaggi per tutti gli utenti del sistema, per utente o per entrambi. A differenza dei normali alias Sendmail, Procmail può essere utilizzato per recapitare messaggi in modo diverso a seconda delle intestazioni e del contenuto. Questo lo rende uno strumento eccellente per bloccare la posta indesiderata, come lo spam.

Quando è installato su un sistema, Procmail sostituisce efficacemente il normale comando di consegna della posta elettronica mail.local eseguito da Sendmail Mail Server e altri MTA per aggiungere un messaggio al file di posta di un utente. Anche se è più comunemente usato con Sendmail, altri MTA come QMail Mail Server e Postfix Mail Server possono essere configurati per usare Procmail anche per la consegna. Per quanto riguarda il programma, l'effettivo server di posta in uso non ha importanza fintanto che l'e-mail gli viene trasmessa correttamente.

Il file di configurazione principale di Procmail è /etc/procmailrc, che di solito è gestito dall'amministratore di sistema. I singoli utenti possono anche creare i propri file .procmailrc con lo stesso formato nelle loro directory home. Il file a livello di sistema viene sempre letto ed elaborato per primo, quindi le regole in esso contenute per reindirizzare i messaggi in base al loro contenuto non possono essere sovrascritte dai singoli utenti.

Un file di configurazione di Procmail è suddiviso in azioni, ognuna delle quali ha una serie di condizioni e una modalità di consegna. Le condizioni determinano a quali messaggi corrisponde l'azione, mentre la modalità di consegna controlla cosa succede a quelli che corrispondono. Procmail elaborerà le azioni in ordine finché non ne trova una corrispondente, consegna il messaggio come specificato e quindi interrompe l'elaborazione.

Il file di configurazione può anche includere assegnazioni di variabili che possono essere utilizzate da azioni successive o anche da altre variabili. Può anche contenere sezioni condizionali speciali, che sono elenchi di azioni da eseguire solo se alcune condizioni corrispondono. In un certo senso, sono come le istruzioni if-then in un linguaggio di programmazione.

Procmail si comporta più o meno allo stesso modo su tutti i sistemi operativi simili a Unix. L'unica differenza è il percorso di consegna predefinito:tutte le distribuzioni Linux utilizzano /var/spool/mail come directory del file di posta dell'utente, che altre varianti Unix come Solaris utilizzano /var/mail. Tuttavia, questa differenza non ha alcun effetto sul formato del file di configurazione del programma o sull'interfaccia utente del modulo Procmail Mail Filter.

Procmail è particolarmente utile se configurato da singoli utenti per eseguire attività come lo smistamento delle e-mail di persone diverse in caselle di posta diverse, la scrittura su due file di posta diversi o l'eliminazione di e-mail da indirizzi specifici. Il modulo Procmail Webmin e questo capitolo trattano solo della configurazione a livello di sistema, tuttavia, se si desidera uno strumento che consenta ai singoli utenti di configurare il programma tramite un'interfaccia Web, Usermin è il programma da utilizzare. Ha un modulo con un'interfaccia identica che gestisce i file .procmailrc invece di /etc/procmailrc, e un altro con un'interfaccia ancora più semplice.

La configurazione globale di Procmail può essere utilizzata per far recapitare la posta in una directory diversa o in un formato diverso da quello normalmente utilizzato dal server di posta. Ad esempio, invece di aggiungere la posta degli utenti ai file in /var/spool/mail, potrebbe invece essere scritta nel file mbox nelle loro directory home. Meglio ancora, Procmail può essere impostato per scrivere in una directory di posta in stile Qmail, solitamente chiamata Maildir e situata nelle directory home degli utenti.

Poiché si occupa solo di e-mail consegnate localmente sul tuo sistema, Procmail non può essere utilizzato per il filtraggio della posta se utilizzi un programma client come Mozilla o Evolution per scaricare e-mail dal server del tuo ISP o della tua azienda. Se non esegui il tuo server di posta ma desideri comunque utilizzare le funzionalità di Procmail, dovrai configurare Fetchmail Mail Retrieval per scaricare i messaggi e passarli all'MTA sul tuo sistema.

Il modulo Procmail Mail Filter

Il modulo Webmin per la gestione del file di configurazione a livello di sistema si chiama Procmail Mail Filter e si trova nella categoria Server. Cliccando sulla sua icona si accede alla pagina principale come quella mostrata nello screenshot qui sotto. Sono elencate tutte le azioni esistenti e sotto di esse ci sono i collegamenti per aggiungere nuove azioni di vario tipo.


La pagina principale del modulo Procmail

A differenza di altri moduli, questo non si lamenterà se Procmail non è installato sul tuo sistema. È necessario utilizzare il modulo Pacchetti software per verificare e installare il pacchetto fornito con la distribuzione Linux o il sistema operativo. Se non esiste alcun pacchetto, dovrai scaricare il sorgente da www.procmail.org, compilarlo e installarlo.

Tuttavia, la semplice installazione di Procmail non è sufficiente per essere effettivamente utilizzato sul tuo sistema. Per impostazione predefinita, i server di posta come Sendmail, Qmail e Postfix utilizzano i propri programmi di consegna della posta standard e non Procmail. I singoli utenti possono modificarlo creando un file .forward o .qmail contenente la riga /usr/bin/procmail che passa tutta la posta in arrivo al programma Procmail. Tuttavia, è meglio riconfigurare il tuo MTA a livello globale per utilizzare Procmail in modo che i singoli utenti non debbano configurarlo. La sezione *Configurazione di Sendmail* di seguito spiega come configurare Sendmail - gli altri server di posta dovranno essere configurati in modo diverso.

Configurazione di Sendmail

Finché hai i file M4 da cui è stato creato il tuo file di configurazione di Sendmail principale, configurare Sendmail per utilizzare Procmail è facile. Sfortunatamente, configurare il server di posta modificando direttamente sendmail.cf non è così facile, e quindi non è trattato in questo capitolo. Tuttavia, tutte le moderne distribuzioni Linux includono i file M4 di cui avrai bisogno, nel pacchetto sendmail o in uno separato come sendmail-cf.

Per configurare Sendmail MTA per l'utilizzo di Procmail, attenersi alla seguente procedura:

  1. Vai al modulo Configurazione Sendmail, che puoi trovare in Webmin nella categoria Server.
  2. Fare clic sull'icona *Sendmail M4 Configuration *nella pagina principale. Dovrebbe apparire un elenco di direttive M4 esistenti - in caso contrario, i file M4 necessari per riconfigurare Sendmail probabilmente non sono installati sul tuo sistema.
  3. Verifica se la riga FEATURE(local_procmail) esiste già. In tal caso, la consegna tramite Procmail è già abilitata e non è necessario seguire il resto di questi passaggi.
  4. Dal menu accanto a Aggiungi nuova voce di tipo pulsante seleziona Funzione , quindi premi il pulsante per visualizzare il modulo di creazione della funzionalità.
  5. Dalla Funzione dal menu seleziona procmail_locale . Lascia i Parametri campo vuoto.
  6. Premi Crea pulsante per aggiungere la nuova funzionalità al file M4. Il tuo browser tornerà all'elenco delle direttive esistenti, in fondo alla quale ci sarà la nuova riga FEATURE(local_procmail).
  7. Fare clic sulla freccia in alto accanto alla nuova riga tutte le volte necessarie per spostarla sopra la riga MAILER(locale). Ciò è necessario perché il file viene elaborato in ordine e la nuova direttiva modifica il comportamento della riga MAILER.
  8. Quando la nuova riga FEATURE è a posto, premi il pulsante *Rebuild Sendmail Configuration* in fondo alla pagina. Verrà visualizzata una pagina di conferma che mostra le modifiche che verranno apportate al file di configurazione principale di Sendmail - e finché non hai modificato sendmail.cf direttamente, saranno correlate solo al nuovo supporto di Procmail.
  9. Fai clic su Sì, sostituiscilo ora per salvare e attivare la nuova configurazione. D'ora in poi, tutta la posta consegnata da Sendmail agli utenti locali sarà elaborata da Procmail. Per verificare se tutto ha funzionato, prova a inviare alcuni messaggi di prova e assicurati che vengano consegnati normalmente.

Per ulteriori informazioni su come funzionano le funzionalità M4 del modulo Sendmail e dove trovare i file di configurazione, leggi la sezione *Aggiunta delle funzionalità di Sendmail con M4* della configurazione di Sendmail.

Creazione e modifica di azioni

Come spiega l'introduzione a questo capitolo, il file di configurazione di Procmail consiste in una serie di azioni. Quando arriva l'e-mail, ciascuna viene controllata in ordine fino a quando una corrisponde e viene eseguita la relativa modalità di consegna. Se nessuna azione corrisponde (o nessuna esiste), l'e-mail viene consegnata alla destinazione predefinita che di solito è il file di posta dell'utente in /var/spool/mail.

Per creare una nuova azione, segui questi passaggi :

  1. Fai clic su Aggiungi una nuova azione filtro collegamento sotto l'elenco delle azioni esistenti nella pagina principale del modulo. Verrà visualizzato il modulo mostrato nell'immagine sottostante per l'inserimento della destinazione e delle condizioni.
  2. Seleziona il tipo di destinazione per i messaggi che corrispondono a questa azione dalla Modalità di consegna menù. Le opzioni disponibili sono :*Aggiungi al file *L'e-mail verrà aggiunta nel formato standard della casella di posta al file inserito nel campo di testo adiacente, come /var/spool/mail/fred . Per eliminare un messaggio, inserisci /dev/null come file. *Scrivi in ​​maildir *L'e-mail corrispondente verrà aggiunta alla directory di posta in stile Qmail il cui percorso è inserito nel campo di testo. Se questa directory non esiste ancora, Procmail la creerà (e le necessarie sottodirectory) per l'utente. *Scrivi nella cartella MH *L'e-mail verrà aggiunta alla directory di posta in stile MH specificata. Questo formato di posta utilizza anche un file per messaggio, ma li inserisce in un'unica directory e fornisce ai file di messaggio nomi di file numerici, come 1, 2, 3 e così via. *Inoltra all'indirizzo *L'email verrà inviata all'indirizzo o all'utente inserito nel campo di testo adiacente, ad esempio [email protected] . *Invia al programma *I messaggi e-mail che corrispondono verranno inviati come input al programma il cui percorso e argomenti sono inseriti nella casella di testo accanto al menu. Se un nome file o una directory di posta non assoluta (come Mailbox o Maildir ) viene inserito, Procmail assumerà che sia relativo alla home directory dell'utente a cui viene consegnata l'e-mail.
  3. Per fare in modo che Procmail controlli il corpo dei messaggi ricevuti anziché solo le intestazioni, controlla Applica condizioni al corpo scatola. Ciò è necessario se una qualsiasi delle condizioni che inserisci in seguito deve corrispondere al testo nell'e-mail stessa.
  4. Normalmente Procmail ignorerà il caso delle intestazioni durante il controllo delle condizioni. Per cambiarlo, controlla la Corrispondenza con distinzione tra maiuscole e minuscole scatola.
  5. Se vuoi che Procmail continui attraverso il file di configurazione anche se questa azione corrisponde, seleziona la casella *Continua elaborazione anche se le condizioni corrispondono*. Questo può essere utilizzato per ricevere la posta elettronica in diversi file o cartelle, attivando questa opzione per tutte le regole di consegna tranne l'ultima.
  6. Normalmente Procmail ignorerà lo stato di uscita del programma a cui viene inviata l'e-mail. Per non riuscire (e quindi far rimbalzare il messaggio) se il programma fallisce, attivare l'opzione *Attendere il completamento del programma di azione e controllare il risultato*.
  7. Se il programma di consegna che hai inserito legge e poi emette e-mail con alcune modifiche, seleziona la casella *Programma d'azione è un filtro*. Anche l'opzione *Continua elaborazione anche se le condizioni corrispondono* deve essere abilitata in modo che l'elaborazione continui con la versione modificata del messaggio. Questa funzione può essere utile se hai scritto un programma che controlla e contrassegna i messaggi aggiungendo o modificando un'intestazione, che può quindi essere verificata da azioni successive.
  8. Le condizioni di azione sezione del modulo serve per inserire le condizioni che determinano quali messaggi verranno consegnati da questa azione. Se non ne viene specificato nessuno, i messaggi che raggiungono l'azione verranno sempre consegnati e, se ne viene immesso più di uno, devono corrispondere tutti affinché la consegna avvenga. Questa sezione è in realtà una tabella che inizia con due righe vuote. Il menu in ogni riga determina il tipo di condizione e come viene interpretato il testo nella casella accanto. Le opzioni disponibili sono:
    • Corrisponde all'espressione regolare
      Affinché questa condizione corrisponda alle intestazioni del messaggio (ed eventualmente anche al corpo) deve corrispondere all'espressione regolare in stile Perl inserita nella casella di testo. Ricorda che questa espressione si applica a tutte le intestazioni come se fossero un unico blocco di testo, quindi dovresti far precedere qualsiasi nome di intestazione con un ^ per indicare l'inizio di una riga. Ad esempio, per catturare messaggi il cui oggetto contiene la parola foo potresti inserire ^Oggetto:.*pippo.* .
    • Non corrisponde all'espressione regolare
      Questo tipo di condizione funziona esattamente come il precedente, tranne per il fatto che corrisponde ai messaggi che non corrispondono all'espressione regolare.
    • Valuta l'output del comando
      Il comando della shell inserito nella casella di testo verrà eseguito, il suo output letto da Procmail e quindi interpretato nuovamente come una riga di azione dal file di configurazione. Questo tipo di condizione è estremamente potente in quanto ti consente di creare condizioni generate dinamicamente, tuttavia, per il filtraggio della posta di tutti i giorni probabilmente non è necessario utilizzarlo.
    • Verifica lo stato di uscita del comando
      Questo tipo di condizione corrisponde se il comando shell immesso ha uno stato di uscita pari a zero, indicando il successo. Può essere utilizzato per far recapitare la posta a destinazioni diverse a seconda del nome host del sistema, dell'ora del giorno o dell'esistenza di qualche file.
    • La posta è più piccola di
      La condizione corrisponderà se la dimensione totale del messaggio è inferiore al numero di byte immessi nella casella di testo adiacente.
    • La posta è più grande di
      Come suggerisce il nome, questo tipo di condizione è l'opposto della precedente.
  9. Quando hai finito di inserire le condizioni, clicca su Salva pulsante. La nuova azione verrà aggiunta all'elenco nella pagina principale e inizierà a essere utilizzata nelle e-mail in arrivo. Per aggiungere più di due condizioni dovrai modificare nuovamente l'azione in modo che appaiano altre due righe vuote nelle Condizioni di azione sezione.


Il modulo di creazione dell'azione Procmail

Un'azione esistente può essere modificata facendo clic sulla sua voce in Azione da intraprendere colonna nella pagina principale del modulo, che fa apparire un modulo di modifica uguale a quello sopra. Da qui puoi apportare modifiche e quindi premere Salva per attivarli, o premi semplicemente Elimina per rimuovere del tutto l'azione.

Poiché l'ordine delle azioni è importante, il modulo consente di modificare le loro posizioni nella configurazione di Procmail con le frecce su e giù accanto a ciascuna nella pagina principale. Allo stesso modo possono essere spostati anche assegnazioni di variabili, blocchi condizionali e file di inclusione.

Seguendo le istruzioni sopra, puoi facilmente creare un'azione che recapita tutte le email alla Maildir in stile Qmail directory nelle directory home dell'utente. Anche se questo formato di posta è preferibile per la sua affidabilità superiore rispetto ai file tradizionali in /var/spool/mail, non è molto utile a meno che i client di posta o il server POP3 sul tuo sistema non sappiano come leggerlo. Il server POP3 fornito con la maggior parte dei sistemi operativi prevede di inviare e-mail in /var/spool/mail, quindi dovrà essere sostituito o riconfigurato per supportare qualsiasi nuovo formato o posizione di posta. Altri client di posta che leggono direttamente i file di posta degli utenti (come Pine, Elm e Usermin) possono essere configurati per utilizzare qualsiasi nuova posizione tu scelga.

Creazione e modifica di assegnazioni variabili

Le azioni di Procmail possono utilizzare variabili in stile shell nelle loro condizioni e destinazioni di consegna. Ad esempio, puoi creare un'azione che recapita al file /mail/$LOGNAME , in cui $LOGNAME è il nome utente dell'utente a cui viene consegnata l'e-mail. Diverse variabili (come .LOGNAME e DEFAULT) vengono impostate automaticamente da Procmail, mentre altre possono essere impostate nel file di configurazione per un uso successivo. Puoi anche sovrascrivere le variabili automatiche per modificare il comportamento del programma, come la destinazione di consegna predefinita o la shell da utilizzare per l'esecuzione dei comandi.

Per creare una nuova assegnazione di variabile, segui questi passaggi :

  1. Nella pagina principale del modulo, fare clic sul collegamento *Aggiungi una nuova impostazione di variabile* sotto l'elenco delle azioni esistenti. Verrà visualizzato il modulo di creazione della variabile.
  2. Nel Nome variabile immettere il nome della variabile da impostare, ad esempio DEFAULT . Tutte le variabili automatiche hanno nomi in maiuscolo e anche quelle che crei tu stesso dovrebbero. Non sono ammessi spazi o caratteri non alfanumerici.
  3. Nel valore immettere il valore da assegnare a questa variabile, ad esempio Maildir/ . Il valore può includere riferimenti ad altre variabili.
  4. Premi Crea pulsante per aggiungere la variabile all'elenco nella pagina principale.
  5. Utilizzare la freccia su accanto alla nuova variabile nell'elenco per spostarla nella posizione corretta, che in genere sarà all'inizio del file. Le assegnazioni di variabili hanno effetto solo, quindi una aggiunta in fondo potrebbe non avere alcun effetto.

Come per le azioni, una variabile può essere modificata o eliminata facendo clic sul suo nome nell'elenco. Le variabili possono anche essere spostate con le frecce su e giù accanto ad esse. Poiché hanno effetto solo su azioni e altre assegnazioni sotto di esse nel file, vorrai sicuramente spostare qualsiasi nuova variabile fino in cima all'elenco. Uno aggiunto e lasciato in basso non avrà alcun effetto (tranne che sulla destinazione di consegna predefinita).

Procmail definisce e consente di modificare diverse variabili speciali. I nomi e i significati di quelli più interessanti sono elencati nella tabella seguente:

Blocchi condizionali e file di inclusione

Un blocco condizionale è un gruppo di azioni e assegnazioni di variabili nel file di configurazione di Procmail che viene elaborato solo se alcune condizioni corrispondono. Possono essere usati per creare insiemi di azioni piuttosto complessi, quasi come un linguaggio di programmazione. Questo modulo consente di creare e modificare blocchi condizionali, ma visualizza il loro contenuto come semplice testo del file di configurazione anziché analizzare le azioni che contengono. Ciò significa che devi avere familiarità con il formato di file Procmail per usarli.

Per creare un blocco condizionale, procedi nel seguente modo:

  1. Fai clic su Aggiungi un nuovo blocco condizionale sotto l'elenco delle azioni nella pagina principale del modulo.
  2. Nel codice Procmail da eseguire casella di testo immettere le righe del file di configurazione per le azioni o le assegnazioni delle variabili da elaborare se le condizioni corrispondono. Non appena un'azione nel blocco corrisponde, l'elaborazione dell'intero file di configurazione si interrompe. Tuttavia, se nessuno corrisponde, l'elaborazione continuerà come di consueto con l'azione successiva dopo il blocco. Vedere la pagina di manuale di procmailrc nel modulo Documentazione di sistema per i dettagli del formato.
  3. Compila le Condizioni di azione come faresti per un'azione normale, come spiegato in Creazione e modifica di azioni in precedenza nel capitolo.
  4. Premi Crea pulsante per creare il nuovo blocco.

Come per le azioni, puoi modificare o eliminare un blocco condizionale facendo clic su di esso nell'elenco nella pagina principale del modulo. L'intero blocco può anche essere spostato con le frecce su e giù accanto ad esso.

Un file include è una direttiva speciale che dice a Procmail di leggere ed elaborare un file di configurazione separato nello stesso formato di /etc/procmailrc. Alcuni programmi di filtro antispam sono in realtà solo file Procmail che possono essere inclusi nella configurazione principale. Per creare una direttiva include, segui questi passaggi :

  1. Fai clic su Aggiungi un nuovo file di inclusione link nella pagina principale del modulo.
  2. Nel file incluso campo nel modulo visualizzato, immettere il percorso completo dell'altro file di configurazione. Puoi anche inserire un percorso relativo, nel qual caso Procmail cercherà quel file nella home directory dell'utente Unix a cui viene consegnata la posta. Quando si gestisce un'inclusione, Procmail interromperà l'elaborazione non appena trova un'azione corrispondente nel file. Se non ne viene trovato nessuno, continuerà a elaborare le azioni successive all'inclusione nel file di configurazione principale.
  3. Premi Crea pulsante per terminare il processo.

Normalmente le inclusioni sono elencate nella pagina principale del modulo proprio come le azioni e le assegnazioni delle variabili e possono essere modificate, eliminate o spostate. Tuttavia, se Mostra il contenuto dei file di inclusione? l'impostazione è abilitata su Module Config pagina il modulo visualizzerà le azioni effettive all'interno del file di inclusione per la modifica o l'eliminazione. Possono anche essere spostati su e giù, anche se solo all'interno del file. Abilitare questa opzione non è una buona idea se si dispone di un enorme file di inclusione (come uno per il filtro antispam) poiché renderebbe la pagina principale del modulo inutilizzabile.

Contenuti

Vedi anche

  • Filtrare lo spam con SpamAssassin

Webmin
  1. Recupero della posta di Fetchmail

  2. Evoluzione del backup della posta?

  3. Servizio del sistema operativo Linux "invia posta"

  4. Invia posta spam a una cartella speciale utilizzando postfix

  5. Leggere la posta da /var/spool/mail/root

Server di posta Postfix

Leggi la posta dell'utente

Invia mail server

Filtro posta SpamAssassin

Come creare filtri di posta personalizzati?

Configurazione della posta Mac