Postfix sul server di sviluppo, consente l'invio della posta a un solo dominio


11

Abbiamo Postfix sul nostro server di sviluppo e mi piacerebbe che fosse in grado di inviare solo posta al nostro dominio, non ad altri domini, impedendo agli utenti esterni di ricevere accidentalmente posta dal nostro server di sviluppo.

Ho cercato tra i documenti, provato diverse cose ma sta ancora inviando a tutti i domini ...

Risposte:


7

Le mappe di trasporto (5) vengono utilizzate per ridefinire il modo in cui la posta elettronica viene instradata da Postfix.

  • Aggiungi la seguente riga a /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    
  • Aggiungi il nuovo file / etc / postfix / transport con questo contenuto:

    .example.com   :
    example.com    :
    *              discard:
    

Sostituisci example.comcon il dominio a cui il tuo mailserver dovrebbe comunque inviare mail. Se non ti interessano i sottodomini, rimuovi la prima riga.

Non dimenticare di eseguire l'hashing del file dopo averlo modificato con postmap (1) e ricaricare postfix per rendere effettive le modifiche:

# postmap /etc/postfix/transport && postfix reload

7

È possibile limitare facilmente i destinatari con smtpd_recipient_rest restrizioni standard o più precisamente check_recipient_access .

Basta creare una tabella di accesso (5)/etc/postfix/access con il seguente contenuto ( esempio.com è il dominio a cui si desidera consentire l'invio di posta):

example.com    OK

Puoi anche consentire solo alcuni indirizzi specifici:

user1@example.com    OK
user2@example.com    OK

Non dimenticare di eseguire l'hashing del file dopo averlo modificato con postmap (1) :

# postmap /etc/postfix/access

Ora inserisci le seguenti restrizioni del destinatario nel tuo main.cf:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

e ricarica Postfix:

postfix reload

Dopodiché, testalo se funziona .


1
Funzionerà con la posta inviata tramite SMTP, non tramite il comando / usr / lib / sendmail e i processi locali possono fare entrambe le cose. Sembra che l'impostazione 'authorized_submit_users' possa essere utilizzata per bloccare l'invio locale con sendmail / postdrop, quindi le restrizioni di smtpd saranno sufficienti.
Jacek Konieczny,

6

Quindi, se qualcuno inciampa su questo come ho fatto io: la risposta è davvero header_checks e funziona come tale:

  • Aggiungi la seguente riga a /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • Aggiungi il nuovo file /etc/postfix/header_checkscon questo contenuto:

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com
    

Sostituisci allowed-domain.comcon il dominio a cui il tuo mailserver dovrebbe comunque inviare mail. Sostituisci redirect@example.comcon l'indirizzo e-mail a cui tutte le altre e-mail devono essere reindirizzate.

Se devi consentire più domini, la prima riga dovrebbe apparire così:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

Invece di reindirizzare puoi semplicemente eliminare tutte le altre mail. Sostituisci la seconda riga sopra con:

/^To:.*@/   DISCARD No outgoing mails allowed

Spiegazione:

  • Postfix esamina le intestazioni della posta una per una.
  • Ogni riga di intestazione viene confrontata con il header_checksfile riga per riga.
  • Se corrisponde alla prima riga ( To:contiene il dominio consentito), passa alla riga di intestazione successiva e avvia nuovamente i controlli di intestazione dall'alto. Poiché nessun'altra riga corrisponderà, ciò significa che la posta viene recapitata.
  • Se corrisponde alla seconda riga ( To:contiene un altro indirizzo e-mail esterno), reindirizza la posta.

questo problema sembra essere stato risolto con questa risposta, forse dovrebbe essere contrassegnato come risolto? (ha funzionato come un incantesimo almeno per me)
Sverre

che dire di Cc:e Bcc:?
Paul Tobias,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.