Não consigo iniciar o serviço spamassassin

Não consigo iniciar o serviço spamassassin

Eu instalei e configurei o spammassassin no meu sistema (14.04) usando estetutor. Quando inicio um serviço usando,

service spamassassin start

estou recebendo resposta como,

Starting SpamAssassin Mail Filter Daemon: server socket setup failed, retry 1: spamd: could not create IO::Socket::INET6 socket on [::1]:783: Cannot assign requested address
server socket setup failed, retry 2: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 3: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 4: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 5: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 6: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 7: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 8: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 9: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use

Eu tentei,

netstat -lptn

está mostrando,

insira a descrição da imagem aqui

há um processo em execução com 127.0.1.1:783

também tentei,

sudo netstat -lepnt

estou conseguindo,

insira a descrição da imagem aqui

aqui também não mostrando nenhum processo executado com 127.0.1.1:783

Por favor me diga onde está a causa do problema?

Responder1

Execute sudo netstat -lptn | grep 783e obtenha o PID (lado direito da saída - algo como 2332/spamd.pid ) do programa que usa a porta 783. Então mate esse programa com sudo kill -9 PID. Então inicie o spamassasin

service spamassassin start

Se você ainda receber o erro de soquete INET6, tente executar o spamd sem suporte IPv6 (supondo que você não precise dele).

sudo nano /etc/default/spamassassin

Adicione -4 à sua linha OPTIONS

spamd --help

...
-4, --ipv4-only, --ipv4           Use IPv4 where applicable, disables IPv6
...

Caso contrário, solucione o problema de sua configuração IPv6.

Responder2

Verifique se o ipv6 está habilitado

sysctl -a|grep disable_ipv6

Se não estiver, habilite ou desabilite o ipv6 no spamassassin conforme sugerido acima.

Responder3

Eu tive o mesmo problema. As respostas aqui não me ajudaram em nada. Descobri que o problema desapareceu, sem desabilitar o IPv6, editando /etc/default/spamassassine adicionando um usuário para spamd, conforme descritoaqui. As etapas essenciais descritas nessa página são:

1)sudo apt-get install spamassassin spamc

2)sudo adduser spamd --disabled-login

3) Edite /etc/default/spamassassinpara incluir o seguinte:

ENABLED=1
SPAMD_HOME="/home/spamd/"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"
PIDFILE="${SPAMD_HOME}spamd.pid"
CRON=1

4) Edite /etc/spamassassin/local.cfpara configurar algumas regras anti-spam, por exemplo,

rewrite_header Subject ***** SPAM *****
report_safe             0
required_score          5.0
use_bayes               1
use_bayes_rules         1
bayes_auto_learn        1

5)sudo service spamassassin start

É descrito mais um passo, para atualizar postfix, que não foi necessário no meu caso. Acho que o cerne da questão é o passo 2 e depois adicionar --username spamdo OPTIONSde/etc/default/spamassassin

Responder4

Atualização: como iniciar o serviço spamassassin com Ubuntu 20.10

Instale spamassassin(e também spamce sa-compile):

% sudo apt install spamassassin

Spamassassin pode ser executado em primeiro plano spamassassine em segundo plano como um daemon com spamd -d.

A instalação cria um usuário sem login debian-spamd.

Por que um usuário dedicado?

% grep spamd /etc/passwd
debian-spamd:x:131:136::/var/lib/spamassassin:/usr/sbin/nologin

Não crie usuário spamd!

Faça um item de inicialização:

% sudo systemctl enable spamassassin  
Synchronizing state of spamassassin.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable spamassassin
Created symlink /etc/systemd/system/multi-user.target.wants/spamassassin.service → /lib/systemd/system/spamassassin.service.

Verifique a configuração:

% cat /lib/systemd/system/spamassassin.service
[Unit]
Description=Perl-based spam filter using text analysis
After=network.target

[Service]
Type=forking
PIDFile=/run/spamd.pid
EnvironmentFile=-/etc/default/spamassassin
ExecStart=/usr/sbin/spamd -d --pidfile=/run/spamd.pid $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=null
StandardError=null
Restart=always

[Install]
WantedBy=multi-user.target

Meu melhor palpite para o arquivo de configuração /etc/default/spamassassiné:

OPTIONS="--debug --create-prefs --username=debian-spamd --max-children=5 --username=debian-spamd --helper-home-dir --syslog=/var/log/spamd.log"

Veja man spamdtodas as opções.

Inicie o serviço sem reiniciar o computador:

% sudo systemctl start spamassassin

ou

% sudo service spamassassin start 

Reinicie o serviço após a alteração da configuração sem reiniciar o computador:

% sudo service spamassassin restart 

Verifique o status:

% sudo service spamassassin status 
● spamassassin.service - Perl-based spam filter using text analysis
     Loaded: loaded (/lib/systemd/system/spamassassin.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-06-21 00:47:10 WEST; 1s ago
    Process: 56524 ExecStart=/usr/sbin/spamd -d --pidfile=/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 56529 (spamd)
      Tasks: 3 (limit: 19035)
     Memory: 98.0M
     CGroup: /system.slice/spamassassin.service
             ├─56529 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/run/spamd.pid --debug --create-prefs --max-children=5 --username=debian-spa>
             ├─56530 spamd child
             └─56531 spamd child

Verifique as opções de execução:

% ps -ef|grep spamd              
root       56529       1  0 00:47 ?        00:00:01 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/run/spamd.pid --debug --create-prefs --max-children=5 --username=debian-spamd --helper-home-dir=/var/lib/spamassassin --syslog=/var/lib/spamassasin/spamd.log
debian-+   56530   56529  0 00:47 ?        00:00:00 spamd child
debian-+   56531   56529  0 00:47 ?        00:00:00 spamd child  

onde debian-+é uma abreviatura para debian-spamd(muito longo para ps).

Verifique o PID:

% cat /run/spamd.pid
56529

Verifique se spamdestá escutando na rede:

% sudo netstat -nlp|grep 56529
tcp        0      0 127.0.0.1:783     0.0.0.0:*  LISTEN      
56529/perl           
tcp6       0      0 ::1:783        :::*    LISTEN      
56529/perl 

Dado o número de porta padrão 783, sudo netstat -nlp|grep 783retornará as mesmas informações independentemente do PID.

spamd pode ser usado com um servidor de emailmas também pode ser usado diretamente na linha de comando. Depois spamc, digite algum texto, saia com Control-D, isso gera um relatório.

O mesmo relatório pode ser obtido com spamassassin.

spamdem si pode ser iniciado na linha de comando.

Em /etc/default/spamassassin, ENABLE, PIDFILE, CRON não têm efeito. Com CRON = 1, não vejo nenhum cron job:

% sudo crontab -u debian-spamd -l
no crontab for debian-spamd

% sudo crontab -u root -l        
no crontab for root

Outro arquivo de configuração: /etc/init.d/spamassassin.

Não confunda o spamassassinserviçoconfiguração (discutida até agora) com a configuração spamassassin (como detectar spam). Este último é explicado em man spamassassin, em particular os nomes dos arquivos de configuração.

informação relacionada