Não é possível obter o Sendmail para se conectar ao MIMEDefang

1

Eu gostaria de definir um milter usando o MIMEDefang no Ubuntu 16.04. Eu tenho um servidor existente usando o Sendmail 8.15.2-3. Eu instalei MIMEDefang 2.78-1ubuntu1.1 (pacote padrão do apt). Configurei meu filtro como queria e o serviço parece estar em execução. Eu não consigo fazer o sendmail se conectar ao milter.

Eu originalmente tentei adicionar essa linha à minha linha sendmail.mc:

INPUT_MAIL_FILTER('mimedefang', 'S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:1m;R:1m')

mas com essa configuração eu ninguém pode enviar e-mail e o arquivo de log mostra:

May 23 11:21:52  sm-mta[17052]: w4NFLq30017052: Milter (mimedefang): local socket name /var/spool/MIMEDefang/mimedefang.sock unsafe
May 23 11:21:52  sm-mta[17052]: w4NFLq30017052: Milter (mimedefang): 
to error state
May 23 11:21:52  sm-mta[17052]: w4NFLq30017052: Milter: initialization failed, temp failing commands

Eu posso ver a listagem de soquetes executando netstat -na | grep fang

unix  2      [ ACC ]     STREAM     LISTENING     154381   /var/spool/MIMEDefang/mimedefang-multiplexor.sock
unix  2      [ ACC ]     STREAM     LISTENING     154399   /var/spool/MIMEDefang/mimedefang.sock

Mas se eu listar o conteúdo de / var / spool / MIMEDefang, o soquete não está listado ( ls -l /var/spool/MIMEDefang ):

total 8
-rw------- 1 defang defang 6 May 23 15:15 mimedefang-multiplexor.pid
srwx------ 1 defang defang 0 May 23 15:15 mimedefang-multiplexor.sock
-rw------- 1 defang defang 6 May 23 15:15 mimedefang.pid

Eu não achei que fosse a resposta, mas eu tentei vincular o sendmail ao mimedefang-multiplexor.sock, já que eu não vi o mimedefang.sock no ls , mas desde que eu recebi um erro diferente. Se é isso que eu devo fazer, então estou fazendo a pergunta errada.

Sinto que estou sentindo falta de algo óbvio.

Editar: O melhor que posso dizer a partir do status do serviço parece que o mimedefang começou corretamente:

● mimedefang.service
   Loaded: loaded (/etc/init.d/mimedefang; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-05-23 16:51:17 EDT; 4min 34s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 21578 ExecStop=/etc/init.d/mimedefang stop (code=exited, status=0/SUCCESS)
  Process: 20006 ExecReload=/etc/init.d/mimedefang reload (code=exited, status=0/SUCCESS)
  Process: 21587 ExecStart=/etc/init.d/mimedefang start (code=exited, status=0/SUCCESS)
    Tasks: 8
   Memory: 20.8M
      CPU: 122ms
   CGroup: /system.slice/mimedefang.service
           ├─21617 /usr/bin/mimedefang-multiplexor -p /var/spool/MIMEDefang/mimedefang-multiplexor.pid -E -z /var/spool/MIMEDefang -m 2 -x 10 -U defang -b 600 -l -y 0 -s /var/spool/MIMEDefang/mimedefang-multiplexor.sock
           ├─21634 /usr/bin/mimedefang -P /var/spool/MIMEDefang/mimedefang.pid -R -1 -m /var/spool/MIMEDefang/mimedefang-multiplexor.sock -z /var/spool/MIMEDefang -U defang -s  -p /var/spool/MIMEDefang/mimedefang.sock
           ├─21636 /usr/bin/mimedefang-multiplexor -p /var/spool/MIMEDefang/mimedefang-multiplexor.pid -E -z /var/spool/MIMEDefang -m 2 -x 10 -U defang -b 600 -l -y 0 -s /var/spool/MIMEDefang/mimedefang-multiplexor.sock
           └─21647 /usr/bin/mimedefang-multiplexor -p /var/spool/MIMEDefang/mimedefang-multiplexor.pid -E -z /var/spool/MIMEDefang -m 2 -x 10 -U defang -b 600 -l -y 0 -s /var/spool/MIMEDefang/mimedefang-multiplexor.sock

May 23 16:51:17  systemd[1]: Starting mimedefang.service...
May 23 16:51:17  mimedefang[21587]: Starting mimedefang-multiplexor:                            [  OK  ]
May 23 16:51:17  mimedefang-multiplexor[21617]: started; minSlaves=2, maxSlaves=10, maxRequests=500, maxIdleTime=300, busyTimeout=600, clientTimeout=10
May 23 16:51:17  mimedefang[21634]: MIMEDefang alive. slavesReservedForLoopback=-1 AllowNewConnectionsToQueue=0 doRelayCheck=0 doHeloCheck=0 doSenderCheck=1 doRecipientCheck=0
May 23 16:51:17  mimedefang-multiplexor[21617]: Initialized embedded Perl interpreter
May 23 16:51:17  mimedefang-multiplexor[21617]: Starting slave 0 (pid 21636) (1 running): Bringing slaves up to minSlaves (2)
May 23 16:51:17  mimedefang[21634]: Multiplexor alive - entering main loop
May 23 16:51:17  mimedefang[21587]: Starting mimedefang:                                        [  OK  ]
May 23 16:51:17  systemd[1]: Started mimedefang.service.
May 23 16:51:20  mimedefang-multiplexor[21617]: Starting slave 1 (pid 21647) (2 running): Bringing slaves up to minSlaves (2)

O log aqui não reage ao sendmail tentando usar o soquete MD normal. Ele mostra um erro (acho que foi um erro de tempo limite) se eu tentar o soquete do multiplexador.

    
por Fr33dan 23.05.2018 / 22:24

1 resposta

1

Depois de observar atentamente o status do serviço, percebi o problema. Se você olhar o comando listado no status da pergunta, será assim:

-U defang -s  -p /var/spool/MIMEDefang/mimedefang.sock

O ponto crucial a ser observado é que há dois espaços entre o parâmetro -s e o parâmetro -p . Eu mergulhei em /etc/init.d/mimedefang para investigar. Não estou nem perto de um especialista em bash mas notei que as citações nessas linhas parecem suspeitas:

'[ "$MD_SKIP_BAD_RCPTS" = "yes" ] && echo "-N"' \
"'[ -n "$X_SCANNED_BY" ] && \
        ( [ "$X_SCANNED_BY" = "-" ] && \
            echo "-X" || echo "-x$X_SCANNED_BY" )'" \
'[ "$ALLOW_NEW_CONNECTIONS_TO_QUEUE" = "yes" ] && echo "-q"' \

Eu suspeitava que mesmo se $X_SCANNED_BY não estivesse definido como é no meu caso, o espaço em branco entre os comandos ainda seria adicionado. Eu não sabia qual era o propósito deles e, como meu caso não usa $X_SCANNED_BY , removi as aspas externas:

'[ "$MD_SKIP_BAD_RCPTS" = "yes" ] && echo "-N"' \
'[ -n "$X_SCANNED_BY" ] && \
        ( [ "$X_SCANNED_BY" = "-" ] && \
            echo "-X" || echo "-x$X_SCANNED_BY" )' \
'[ "$ALLOW_NEW_CONNECTIONS_TO_QUEUE" = "yes" ] && echo "-q"' \

Depois disso, o comando só tinha um único espaço entre as opções e a meia aparece como deveria nos ls results:

total 8
-rw------- 1 defang defang 6 May 24 10:29 mimedefang-multiplexor.pid
srwx------ 1 defang defang 0 May 24 10:29 mimedefang-multiplexor.sock
-rw------- 1 defang defang 6 May 24 10:29 mimedefang.pid
srwx------ 1 defang defang 0 May 24 10:29 mimedefang.sock

Finalmente, o Sendmail funciona sem problemas.

    
por 24.05.2018 / 17:10