postfix / smtpd: advertencia: conéctese al servicio Milter unix: /var/run/opendkim/opendkim.sock: No existe tal archivo o directorio


36

Tengo un problema con Postfix en Debian después de actualizar Squeeze a Wheezy. Postfix se configuró para firmar mensajes usando dkim-filter. Antes de la actualización, todo funcionaba perfectamente, ahora falla en la conexión con el servicio (sockets tcp o unix). Pensé que tal vez se debía al cambio de Debian a opendkim, así que eliminé dkim-filter e instalé opendkim, el mismo problema. Incluso intenté configurar la conexión de socket de archivo Unix en lugar de la opción tcp - mismo problema:

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

o (con tcp / ip):

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

Lo comprobé dos veces: el archivo de socket existe y el servicio estaba escuchando en el puerto 8891.

¿Qué puedo hacer para arreglar esto?

Respuestas:


58
  1. Compruebe si opendkim se está ejecutando. (Supongo que es como viste el archivo socket).
  2. ¿Configuraste opendkim? El archivo de configuración es /etc/opendkim.conf.

    Debe actualizar el archivo para que coincida con su sitio / dominio y la ruta dkim.key .

  3. Agregar postfix al grupo opendkim

    Si el permiso opendkim.sock es el siguiente

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

    Si no, asegúrese de que UMaskesté configurado como 0002in /etc/opendkim.conf.

    Luego haz lo siguiente

    sudo adduser postfix opendkim
  4. Postfix corriendo en chroot

    Modificar /etc/default/opendkim, cambiar la opción SOCKET para colocar la ubicación del chroot

    SOCKET = "local: /var/spool/postfix/var/run/opendkim/opendkim.sock"

    Deberá crear un directorio /var/spool/postfix/var/run/opendkimy cambiar su permiso

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

    sudo service opendkim restart
    

44
Encontré un problema similar causado por permisos demasiado restrictivos en el directorio opendkim.
Darrell Duane

1
Estoy seguro de que tenía opendkim funcionando antes, pero noté que no funcionaba después de actualizar Ubuntu 15.04 a 15.10. La actualización de la ruta del socket /etc/default/opendkimal mismo que ya había definido lo /etc/opendkim.confarregló. ¡Gracias!
Haprog

mi problema es que estoy ejecutando postfix en chroot y estoy usando unix socket. Si ve No such file or directoryque postfix medio no puede encontrar la ruta, pero buscó el socket dentro de / var / spool / postfix / var / run / opendkim /, not / var / run / opendkim
HVNSweeting

@HVNSweeting ¿No está cubierto en (4)?
John Siu

Es por eso que comento y voté en lugar de crear una nueva respuesta. La pregunta contiene tantos problemas, porque si opendkim está configurado correctamente, el socket TCP debería funcionar. Gracias
HVNSweeting

11

Resumen rápido que me ayudó a corregir esta advertencia en Ubuntu 16.04 LTS: Postfix versión 3.1.0-3ubuntu0.2 Opendkim versión 2.10.3-3build1

  • (Supongo que Postfix y Opendkim ya están instalados, integrados entre sí y la única advertencia que está recibiendo es 'conectarse al servicio Milter local: /var/spool/postfix/opendkim/opendkim.sock: No existe tal archivo o directorio')

  • Agregue postfix de usuario al grupo opendkim (omita si ya lo hizo)

sudo adduser postfix opendkim

  • Crear directorio y establecer propietario (omitir si ya está hecho)

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

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

  • Verificar permisos:

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

srwxrwxr-x 1 opendkim opendkim 0 Nov 12 14:34 opendkim.sock
  • Edite los archivos de configuración de opendkim: /etc/opendkim.conf, agregue la línea

Socket local: /var/spool/postfix/var/run/opendkim/opendkim.sock

/ etc / defaults / opendkim, agregar

SOCKET = "local: /var/spool/postfix/var/run/opendkim/opendkim.sock"

  • Editar configuración de 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
  • Reiniciar servicios (o reiniciar)

systemctl reiniciar opendkim

systemctl reiniciar postfix

Eso es. No sé por qué es necesario escribir.

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

en lugar de

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

. Si alguien sabe, las explicaciones son bienvenidas.


2
Si postfix se ejecuta con CHROOT, las rutas de configuración son relativas a eso. Terminaría con postfix tratando de resolver /var/spool/postfix/var/spool/postfix/var/run/opendkim/opendkim.sock
oscurezca el

5

Estaba enfrentando el mismo problema en el tramo de Debian, que resultó ser causado por un archivo de servicio systemd roto para opendkim. Vea esta respuesta para una solución: https://serverfault.com/a/847442/84962

Esta solución se reduce a:

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

1
Tengo el sistema Ubuntu, donde solo este consejo ayudó, mientras que todo lo demás no funcionó.
silpol

Ejecuto 16.04 y /lib/opendkim/opendkim.service.generate no existe
Laurent

Funciona bien en Ubuntu 18.04. Gracias.
Duque

Esto resolvió mi problema en Debian 9.
jchook

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

55
Esta sería una respuesta mucho mejor si incluyera una explicación de cómo y por qué esto responde la pregunta.
Stephen Rauch

3
¡Bienvenido a Unix y Linux! Si bien este fragmento de código puede resolver la pregunta, incluir una explicación realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, ¡no solo la persona que pregunta ahora! Por favor, editar su respuesta para agregar explicación y dar una indicación de lo que se aplican limitaciones y supuestos.
Toby Speight

1

Una alternativa sería deshabilitar el chroot, esto tiene implicaciones de seguridad:

vi /etc/postfix/master.cf

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

Las advertencias dicen postfix/cleanup, por lo que puede desactivar el chroot para este servicio.


0

conectarse al servicio Milter unix: /clamav/clamav-milter.ctl: permiso denegado

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

clamav-milter.conf

usuario clamav MilterSocketGroup postfix MilterSocketMode 660

permisos de usuario para el milter

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

Funciona para mi


0

Tuve un problema porque OpenDKIM y Postfix funcionan con los derechos de diferentes usuarios y escriben y leen desde el mismo socket.

Agregué usuario postfix al grupo opendkim:

sudo usermod -a -G opendkim postfix
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.