postfix / smtpd: avviso: connettersi al servizio Milter unix: /var/run/opendkim/opendkim.sock: nessun file o directory


36

Ho un problema con Postfix su Debian dopo l'aggiornamento da Squeeze a Wheezy. Postfix è stato configurato per firmare i messaggi usando dkim-filter. Prima dell'aggiornamento, tutto funzionava alla perfezione, ora non riesce alla connessione con il servizio (socket tcp o unix). Ho pensato che forse era a causa del passaggio da debian a opendkim, quindi ho rimosso dkim-filter e installato opendkim - stesso problema. Ho anche provato a impostare la connessione socket file unix invece dell'opzione tcp - stesso problema:

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory

oppure (con tcp / ip):

postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused

Ho controllato due volte: esiste un file socket e il servizio era in ascolto sulla porta 8891.

Cosa posso fare per risolvere questo problema?

Risposte:


58
  1. Controlla se opendkim è in esecuzione. (Suppongo sia come hai visto il file socket.)
  2. Hai configurato opendkim? Il file di configurazione è /etc/opendkim.conf.

    Devi aggiornare il file in modo che corrisponda al tuo sito / dominio e percorso dkim.key .

  3. Aggiungi postfix al gruppo opendkim

    Se l'autorizzazione opendkim.sock è la seguente

    $ ls -l / var / run / opendkim
    
    -rw-rw-r-- 1 opendkim opendkim 6 maggio 2 14:56 opendkim.pid
    srwxrwxr-x 1 opendkim opendkim 0 maggio 2 14:56 opendkim.sock
    

    In caso contrario, assicuratevi UMaskè impostato 0002in /etc/opendkim.conf.

    Quindi procedere come segue

    sudo adduser postfix opendkim
  4. Postfix in esecuzione in chroot

    Modifica /etc/default/opendkim, cambia l' opzione PRESA per correggere la posizione chroot

    Attacco = "locale: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    Dovrai creare una directory /var/spool/postfix/var/run/opendkime modificarne l'autorizzazione

    sudo mkdir -p / var / spool / postfix / var / run / opendkim
    sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim
    
  5. Riavvia opendkim

    sudo service opendkim restart
    

4
Ho riscontrato un problema simile causato da autorizzazioni eccessivamente restrittive sulla directory opendkim.
Darrell Duane,

1
Sono sicuro che prima avevo opendkim funzionante, ma ho notato che non funzionava dopo l'aggiornamento da Ubuntu 15.04 a 15.10. L'aggiornamento del percorso del socket è /etc/default/opendkimuguale a quello che avevo già definito per /etc/opendkim.confrisolverlo. Grazie!
Haprog,

il mio problema è che sto eseguendo Postfix in chroot e sto usando unix socket. Se vedi No such file or directoryche postfix medio non riesce a trovare il percorso, ma ha cercato il socket all'interno di / var / spool / postfix / var / run / opendkim /, non / var / run / opendkim
HVNSweeting

@HVNSweeting Non è coperto in (4)?
John Siu,

è per questo che commento e ho votato invece di creare una nuova risposta. La domanda contiene tanti problemi, perché se opendkim è configurato correttamente, il socket TCP dovrebbe funzionare. Grazie
HVNSweeting il

11

Breve riepilogo che mi ha aiutato a correggere questo avviso su Ubuntu 16.04 LTS: Postfix versione 3.1.0-3ubuntu0.2 Opendkim versione 2.10.3-3build1

  • (Suppongo che Postfix e Opendkim siano già installati, integrati l'uno con l'altro e l'unico avvertimento che stai ricevendo è 'connettiti al servizio Milter local: /var/spool/postfix/opendkim/opendkim.sock: nessun file o directory')

  • Aggiungi postfix utente al gruppo opendkim (salta se già fatto)

sudo adduser postfix opendkim

  • Crea directory e imposta il proprietario (salta se già fatto)

sudo mkdir -p / var / spool / postfix / var / run / opendkim

sudo chown opendkim: opendkim / var / spool / postfix / var / run / opendkim

  • Controlla le autorizzazioni:

ls -l / var / spool / postfix / var / run / opendkim

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Modifica i file di configurazione di opendkim: /etc/opendkim.conf, aggiungi linea

Presa locale: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, aggiungi

Attacco = "locale: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • Modifica la configurazione postfix: /etc/postfix/main.cf
# Milter configuration
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
milter_default_action = accept
smtpd_milters = unix:var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock
  • Riavvia i servizi (o riavvia)

systemctl restart opendkim

systemctl restart postfix

Questo è tutto. Non so perché sia ​​necessario scrivere

smtpd_milters = unix: var / run / opendkim / opendkim.sock

invece di

smtpd_milters = local: /var/spool/postfix/var/run/opendkim/opendkim.sock

. Se qualcuno lo sa, le spiegazioni sono benvenute.


2
Se postfix viene eseguito con CHROOT, i percorsi di configurazione sono relativi a quello. Si finirebbe con Postfix che cerca di risolvere /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
oscura il

5

Stavo affrontando lo stesso problema su Debian stretch, che si è rivelato essere causato da un file di servizio systemd rotto per opendkim. Vedi questa risposta per una soluzione: https://serverfault.com/a/847442/84962

Questa correzione si riduce a:

/lib/opendkim/opendkim.service.generate
systemctl daemon-reload
service opendkim restart

1
Ho un sistema Ubuntu, dove solo questo consiglio mi ha aiutato, mentre tutto il resto non ha funzionato.
silpol,

Corro il 16.04 e /lib/opendkim/opendkim.service.generate non esiste
Laurent

Funziona bene su Ubuntu 18.04. Grazie.
Duque

Questo ha risolto il mio problema su Debian 9.
jchook il

2
smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock
non_smtpd_milters = unix:var/run/opendkim/opendkim.sock, unix:var/run/opendmarc/opendmarc.sock

usermod -G opendkim,opendmarc

5
Questa sarebbe una risposta molto migliore se includesse una spiegazione di come e perché questo risponda alla domanda.
Stephen Rauch,

3
Benvenuti in Unix e Linux! Sebbene questo frammento di codice possa risolvere la domanda, inclusa una spiegazione aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, non solo per la persona che chiede ora! Si prega di modificare la risposta di aggiungere una spiegazione, e dare un'indicazione di ciò si applicano le limitazioni e le assunzioni.
Toby Speight,

1

Un'alternativa sarebbe disabilitare il chroot, questo ha implicazioni per la sicurezza:

vi /etc/postfix/master.cf

# service type  private unpriv  chroot  wakeup  maxproc command + args
cleanup   unix  n       -       n       -       0       cleanup

Gli avvisi indicano che postfix/cleanupè possibile disattivare il chroot per questo servizio.


0

connettersi al servizio Milter unix: /clamav/clamav-milter.ctl: autorizzazione negata

ls -l / var / spool / postfix / clamav srw-rw ---- 1 clamav clamav 0 apr 4 17:59 clamav-milter.ctl

clamav-milter.conf

user clamav MilterSocketGroup postfix MilterSocketMode 660

autorizzazioni utente per il mungitore

chown postfix: postfix /var/spool/postfix/clamav/clamav-milter.ctl

Per me va bene


0

Ho avuto un problema perché OpenDKIM e Postfix funzionano con i diritti di utenti diversi e scrivono e leggono dallo stesso socket.

Ho aggiunto l'utente postfix al gruppo opendkim:

sudo usermod -a -G opendkim postfix
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.