Implementación pypolicyd-spf
de soporte en Postfix 3.3.1 enRHEL 8, encontré el siguiente error en /var/log/maillog
:
spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
spawn[xxxx]: fatal: spawn_comand: execvp /usr/bin/python: No such file or directory
postfix/spawn[xxxx]: warning: command /usr/bin/python exit status 1
postfix/smtpd[xxxx]: warning: problem talking to server private/policyd-spf: Connection reset by peer
No puede ser un problema de ruta porque el usuariosufijono tiene camino:
$ getent passwd postfix
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
¿Dónde arreglas esto?
Respuesta1
PROBLEMA:
A primera vista, parecía ser un problema de ruta, pero no lo era.spf políticorequiere unCORRECTOruta absoluta para encontrar Python dentroSufijoen la master.cf
configuración.
El camino que tuve inicialmente-Creo que lo copié de algún tutorial en algún lugar de la red.- en la master.cf
integración fue:
policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf
Estuvo cerca, pero no fue un cigarro: la ruta a Python proporcionada argv
no incluía el número de versión, por lo que se estaban vomitando errores.
SOLUCIÓN:
Primero: Encuentra dónde vive Python. EnRHEL 8.1, Veo:
whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/share/man/man1/python.1.gz
Segundo: Suministre unCorrectoruta absoluta a Python en elspf políticoconfiguración en /etc/postfix/master.conf
:
policyd-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/python3.6 /usr/libexec/postfix/policyd-spf
Finalmente, reinicie Postfix:
systemctl restart postfix
CONCLUSIÓN:
No persigas tu cola investigando problemas de ruta, y este no es un problema específico deRHEL 8cualquiera. La falla quedará enterrada en la ruta absoluta a Python especificada en elspf políticoconfigurar enmaster.cf