Я не могу запустить службу spamassassin

Я не могу запустить службу spamassassin

Я установил и настроил spammassassin в своей системе (14.04) с помощью этогорепетитор. Когда я запускаю службу, используя,

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 783и получите PID (правая часть вывода - что-то вроде 2332/spamd.pid ) программы, которая использует порт 783. Затем убейте эту программу с помощью sudo kill -9 PID. Затем запустите spamassasin

service spamassassin start

Если ошибка сокета INET6 все еще возникает, попробуйте запустить spamd без поддержки IPv6 (при условии, что она вам не нужна).

sudo nano /etc/default/spamassassin

Добавьте -4 к строке OPTIONS

spamd --help

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

В противном случае устраните неполадки в конфигурации IPv6.

решение2

Проверьте, включен ли ipv6.

sysctl -a|grep disable_ipv6

Если это не так, включите его или отключите ipv6 в spamassassin, как предложено выше.

решение3

У меня была та же проблема. Ответы здесь мне совсем не помогли. Я обнаружил, что проблема исчезла, без отключения IPv6, путем редактирования /etc/default/spamassassinи добавления пользователя для 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

Обновление: как запустить службу spamassassin в Ubuntu 20.10

Установить spamassassin(а также spamcи sa-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-spamd(слишком длинно для ps).

Проверьте 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 783будет возвращена та же информация независимо от PID.

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, в частности имена файлов конфигурации.

Связанный контент