spamassassin 서비스를 시작할 수 없습니다

spamassassin 서비스를 시작할 수 없습니다

나는 이것을 사용하여 내 시스템(14.04)에 spammassassin을 설치하고 구성했습니다.가정 교사. 다음을 사용하여 서비스를 시작할 때,

service spamassassin start

다음과 같은 응답을 받고 있습니다.

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

나는 노력했다,

netstat -lptn

보여주고 있어요,

여기에 이미지 설명을 입력하세요

127.0.1.1:783으로 실행 중인 프로세스가 있습니다.

또한 시도했고,

sudo netstat -lepnt

점점,

여기에 이미지 설명을 입력하세요

여기에서도 127.0.1.1:783으로 실행되는 프로세스가 표시되지 않습니다.

문제의 원인이 어디에 있는지 알려주세요.

답변1

sudo netstat -lptn | grep 783783 포트를 사용하는 프로그램의 PID(출력의 가장 오른쪽 - 2332/spamd.pid 와 같은 것)를 실행 하고 가져옵니다. 그런 다음 sudo kill -9 PID. 그런 다음 스팸을 시작하세요

service spamassassin start

INET6 소켓 오류가 계속 발생하면 IPv6 지원 없이 spamd를 실행해 보십시오(필요하지 않다고 가정).

sudo nano /etc/default/spamassassin

OPTIONS 라인에 -4를 추가하세요.

spamd --help

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

그렇지 않으면 IPv6 구성 문제를 해결하세요.

답변2

IPv6이 활성화되어 있는지 확인하십시오.

sysctl -a|grep disable_ipv6

활성화되지 않은 경우 위에서 제안한 대로 spamassassin에서 ipv6을 비활성화하거나 비활성화하십시오.

답변3

나는 같은 문제가 있었다. 여기에 대한 답변은 나에게 전혀 도움이 되지 않았습니다. 설명된 대로 /etc/default/spamassassin에 대한 사용자를 편집하고 추가하면 IPv6를 비활성화하지 않고도 문제가 해결되는 것으로 나타났습니다.spamd여기. 해당 페이지에 설명된 필수 단계는 다음과 같습니다.

1)sudo apt-get install spamassassin spamc

2)sudo adduser spamd --disabled-login

3) /etc/default/spamassassin다음을 포함하도록 편집합니다.

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) /etc/spamassassin/local.cf스팸 방지 규칙을 설정하도록 편집합니다. 예:

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

postfix내 경우에는 필요하지 않은 업데이트 단계가 하나 더 설명되어 있습니다 . 문제의 핵심은 2단계 --username spamd에서 OPTIONS다음을 추가하는 것이라고 생각합니다./etc/default/spamassassin

답변4

업데이트: Ubuntu 20.10에서 spamassassin 서비스를 시작하는 방법

설치 spamassassin(및 spamcsa-compile):

% sudo apt install spamassassin

Spamassassin은 를 사용하여 포그라운드에서 실행될 수 spamassassin있고 를 사용하여 데몬으로 백그라운드에서 실행될 수 있습니다 spamd -d.

설치하면 로그인하지 않은 사용자가 생성됩니다 debian-spamd.

왜 전용 사용자인가요?

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

사용자를 생성하지 마십시오 spamd!

시작 항목 만들기:

% 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.

구성을 확인하십시오.

% 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

구성 파일에 대한 최선의 추측은 다음 /etc/default/spamassassin과 같습니다.

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

man spamd모든 옵션을 보려면 참조하세요 .

컴퓨터를 다시 시작하지 않고 서비스를 시작합니다.

% sudo systemctl start spamassassin

또는

% sudo service spamassassin start 

컴퓨터를 다시 시작하지 않고 구성 변경 후 서비스를 다시 시작합니다.

% sudo service spamassassin restart 

상태 확인:

% 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

실행 옵션을 확인하세요.

% 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  

는 (너무 길다 ) debian-+의 약어입니다 .debian-spamdps

PID 확인:

% cat /run/spamd.pid
56529

spamd네트워크에서 수신 대기 중인지 확인하세요 .

% 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 

기본 포트 번호 783이 주어지면 sudo netstat -nlp|grep 783PID와 독립적으로 동일한 정보를 반환합니다.

spamd는 메일 서버와 함께 사용할 수 있습니다그러나 명령줄에서 직접 사용할 수도 있습니다. 뒤에 spamc텍스트를 입력하고 로 종료하면 Control-D보고서가 생성됩니다.

에서도 동일한 보고서를 얻을 수 있습니다 spamassassin.

spamd자체는 명령줄에서 시작할 수 있습니다.

에서는 /etc/default/spamassassinENABLE, PIDFILE, CRON이 적용되지 않습니다. CRON = 1이면 cron 작업이 표시되지 않습니다.

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

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

기타 구성 파일: /etc/init.d/spamassassin.

스팸 암살자를 혼동하지 마십시오서비스spamassassin 구성(스팸을 탐지하는 방법)을 사용하여 구성(지금까지 논의함)을 수행합니다. 후자는 man spamassassin특히 구성 파일 이름에 대해 설명되어 있습니다.

관련 정보