Por padrão, o postfix do FreeBSD é executado em chrooted para /var/spool/postfix
. Altere sua linha smtpd_milters
para que esse diretório seja sua raiz. Por exemplo:
smtpd_milters = unix:/clamav/clamav-milter.ctl, ...
Estou executando o postfix post-3.3.1_1,1 e o clamav-milter clamav-milter-0.100.1_1 no FreeBSD 11.2. O postfix e o milter estão configurados para se comunicar por meio de um soquete. Eu não consigo colocar o milter e o postfix juntos, eu devo estar ignorando alguma coisa.
No meu maillog
, recebo estas mensagens:
xSep 21 11:33:57 mail2 postfix/smtpd[85759]: warning: connect to Milter service unix:/var/run/clamav/clmilter.sock: Permission denied
O postfix é executado como user: group postfix: postfix. Clamav é executado como clamav: clamav. (Quando eu executo o clamav como postfix: postfix, o problema ainda persiste.) O postfix do usuário também é membro do grupo clamav.
As permissões no próprio socket são:
srwxrwxrwx 1 clamav clamav 0B Sep 21 11:46:26 2018 /var/run/clamav/clmilter.sock
Em clamav-milter.conf eu executo valores padrão, alterando o usuário para postfix não funcionou:
MilterSocket unix:/var/run/clamav/clmilter.sock
# MilterSocket unix:/var/spool/postfix/var/run/clamav/clmilter.sock
# MilterSocket inet:8890
# ClamdSocket unix:/var/run/clamav/clmilter.sock
#MilterSocket inet:7357
# Define the group ownership for the (unix) milter socket.
# Default: disabled (the primary group of the user running clamd)
#MilterSocketGroup postfix
# Sets the permissions on the (unix) milter socket to the specified mode.
# Default: disabled (obey umask)
#MilterSocketMode 660
# Remove stale socket after unclean shutdown.
#
# Default: yes
FixStaleSocket yes
# Run as another user (clamav-milter must be started by root for this option to work)
#
# Default: unset (don't drop privileges)
User postfix
No rc.conf
clamav_milter_enable="YES"
clamav_milter_socket="/var/run/clamav/clmilter.sock"
clamav_milter_socket_user="postfix"
clamav_milter_socket_group="postfix"
No main.cf do postfix também é bastante normal:
smtpd_milters = unix:/var/run/clamav/clmilter.sock inet:127.0.0.1:8891
Por padrão, o postfix do FreeBSD é executado em chrooted para /var/spool/postfix
. Altere sua linha smtpd_milters
para que esse diretório seja sua raiz. Por exemplo:
smtpd_milters = unix:/clamav/clamav-milter.ctl, ...