FAQ Ошибки компиляции и запуска Sendmail + Spamassassin

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 13:22

FDK писал(а):Есть проблема при работе sendmail+spamassasin+redhat9, для начала был сделан простой конфиг local.cf для проверки работы:

Код: Выделить всё

rewrite_header Subject ***SPAM***_HITS***
trusted_networks 127.
trusted_networks 192.168/16
use_bayes 1
bayes_path /etc/mail/spamassasin/bayes
bayes_auto_learn 1
Директория /etc/mail/spamassasin/bayes присутствует и принадлежит пользователю и группе nobody права 755 на нее.
если /etc/mail/spamassasin/bayes - это каталог, то значение параметра bayes_path должно быть равно /etc/mail/spamassasin/bayes/bayes
FDK писал(а):Запускается все след образом - daemon /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter -b user@domen.ru
это запуск милтера
FDK писал(а):После чего получаем в /var/log/messages:

Код: Выделить всё

Dec  6 11:48:01 ns2 spamd: [8092] error: Can't locate object method "new" via package "Net::DNS::Resolver" at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/DnsResolver.pm line 87.
Dec  6 11:48:01 ns2 spamd: [8092] dbg: dns: is Net::DNS::Resolver available? no
Net::DNS::Resolver установлен.
а это - ошибки демона
обновите принудительно модуль Net::DNS::Resolver
FDK писал(а):И при отправке почты пишет в логи, что пытается использовать директорию /root/.spamassassin:

Код: Выделить всё

Dec  6 11:33:41 ns2 spamd[7739]: mkdir /root/.spamassassin: Permission denied at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin.pm line 1467 
а у вас root алиасится на простого юзера или его почта доставляется в /var/mail/root?
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 13:46

если /etc/mail/spamassasin/bayes - это каталог, то значение параметра bayes_path должно быть равно /etc/mail/spamassasin/bayes/bayes
Изменил.

это запуск милтера
daemon /usr/bin/spamd -d -D -u nobody
а это - ошибки демона
обновите принудительно модуль Net::DNS::Resolver
обновил - осталось =\
а у вас root алиасится на простого юзера или его почта доставляется в /var/mail/root?
на простого юзера.

Вот что имеем сейчас:

Код: Выделить всё

Dec  6 12:40:09 ns2 spamd[9289]: config:   
Dec  6 12:40:09 ns2 spamd[9289]: locker: safe_lock: cannot create tmp lockfile /root/.spamassassin/auto-whitelist.lock.ns2.intelcom.su.9289 for /root/.spamassassin/auto-whitelist.lock: Permission denied 
Dec  6 12:40:09 ns2 spamd[9289]: auto-whitelist: open of auto-whitelist file failed: locker: safe_lock: cannot create tmp lockfile /root/.spamassassin/auto-whitelist.lock.ns2.intelcom.su.9289 for /root/.spamassassin/auto-whitelist.lock: Permission denied 
Dec  6 12:40:09 ns2 spamd[9289]: Can't call method "finish" on an undefined value at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/Plugin/AWL.pm line 397, <GEN5> line 532. 
Dec  6 12:40:09 ns2 spamd[9289]: rules: running body-text per-line regexp tests; score so far=7.116 
Dec  6 12:40:09 ns2 spamd[9289]: uri: running uri tests; score so far=7.116 
Dec  6 12:40:09 ns2 spamd[9289]: rules: running raw-body-text per-line regexp tests; score so far=7.116 
Dec  6 12:40:09 ns2 spamd[9289]: rules: running full-text regexp tests; score so far=7.116 
Dec  6 12:40:09 ns2 spamd[9289]: learn: auto-learn: currently using scoreset 1 
Dec  6 12:40:09 ns2 spamd[9289]: learn: auto-learn: message score: 7.116, computed score for autolearn: 7.116 
Dec  6 12:40:09 ns2 spamd[9289]: learn: auto-learn? ham=0.1, spam=12, body-points=0.277, head-points=6.839, learned-points=0 
Dec  6 12:40:09 ns2 spamd[9289]: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam 
Dec  6 12:40:09 ns2 spamd[9289]: check: is spam? score=7.116 required=5 
Dec  6 12:40:09 ns2 spamd[9289]: check: tests=EXTRA_MPART_TYPE,HELO_DYNAMIC_DHCP,HELO_DYNAMIC_IPADDR,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR 
Dec  6 12:40:09 ns2 spamd[9289]: check: subtests=__ANY_OUTLOOK_MUA, 
Dec  6 12:40:09 ns2 spamd[9289]: spamd: identified spam (7.1/5.0) for root:99 in 1.0 seconds, 26361 bytes. 
Dec  6 12:40:09 ns2 spamd[9289]: spamd: result: Y  7 - EXTRA_MPART_TYPE,HELO_DYNAMIC_DHCP,HELO_DYNAMIC_IPADDR,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR scantime=1.0,size=26361,user=root,uid=99,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=56680,
mid=<02f101c5fa46$b100edd0$be710e0a@offprint>
,autolearn=no 
Dec  6 12:40:09 ns2 spamd[9289]: config: copying current conf from backup 
Dec  6 12:40:09 ns2 spamd[9289]: prefork: sysread(7) not ready, wait max 300 secs 
Dec  6 12:40:09 ns2 spamd[9286]: prefork: child 9289: entering state 1 
Dec  6 12:40:09 ns2 spamd[9286]: prefork: new lowest idle kid: 9289 
Dec  6 12:40:09 ns2 spamd[9286]: prefork: child reports idle 
Dec  6 12:40:09 ns2 spamd[9286]: prefork: child states: II 
Последний раз редактировалось FDK 06 дек 2005, 14:23, всего редактировалось 2 раза.

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 14:21

FDK писал(а):
это запуск милтера
daemon /usr/bin/spamd -d -D -u nobody
при запуске демона не от root'а необходимо использовать -x

а для чего вам одновременно -d и -D?
FDK писал(а):
а это - ошибки демона
обновите принудительно модуль Net::DNS::Resolver
обновил - осталось =\
каким образом был обновлен модуль?
FDK писал(а):
а у вас root алиасится на простого юзера или его почта доставляется в /var/mail/root?
на простого юзера.
это уже не имеет значения при юзании -u без -x
FDK писал(а):Вот что имеем сейчас:
сначала используйте -x, потом посмотрим на результат

p. s. ну и нафига запихивать в форум строки такой длины из логи?!?!
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 14:29

при запуске демона не от root'а необходимо использовать -x
убрал лишнюю -d и поставил -x
каким образом был обновлен модуль?
обновлял как через шелл перл:

Код: Выделить всё

cpan> install Net::DNS
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 06 Dec 2005 01:01:00 GMT
Net::DNS is up to date.
так и руками скачивая с cpan.org и устанавливая модуль.

Результат:
Dec  6 13:26:15 ns2 spamd[10160]: mkdir //.spamassassin: Permission denied at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin.pm line 1467
Dec  6 13:26:15 ns2 spamd[10160]: locker: safe_lock: cannot create tmp lockfile //.spamassassin/auto-whitelist.lock.ns2.server.ru.10160 for //.spamassassin/auto-whitelist.lock: No such file or directory
Dec  6 13:26:15 ns2 spamd[10160]: auto-whitelist: open of auto-whitelist file failed: locker: safe_lock: cannot create tmp lockfile //.spamassassin/auto-whitelist.lock.ns2.intelcom.su.10160 for //.spamassassin/auto-whitelist.lock: No such file or directory
Dec  6 13:26:15 ns2 spamd[10160]: Can't call method "finish" on an undefined value at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/Plugin/AWL.pm line 397, <GEN4> line 20.
Dec  6 13:26:15 ns2 spamd[10160]: bayes: locker: safe_lock: cannot create tmp lockfile /etc/mail/spamassasin/bayes/bayes.lock.ns2.intelcom.su.10160 for /etc/mail/spamassasin/bayes/bayes.lock: No such file or directory
Dec  6 13:26:15 ns2 spamd[10160]: spamd: clean message (-1.4/5.0) for root:99 in 0.0 seconds, 562 bytes.
Dec  6 13:26:15 ns2 spamd[10160]: spamd: result: . -1 - ALL_TRUSTED scantime=0.0,size=562,user=root,uid=99,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=56694,mid=<4395680F.7030408@intelcom.su>,autolearn=failed
Dec  6 13:26:16 ns2 spamd[10157]: prefork: child states: II

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 15:43

FDK писал(а):
при запуске демона не от root'а необходимо использовать -x
убрал лишнюю -d и поставил -x
т. е. spamd запускается в отладочном режиме без демонизации?
FDK писал(а):
каким образом был обновлен модуль?
обновлял как через шелл перл:

Код: Выделить всё

cpan> install Net::DNS
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 06 Dec 2005 01:01:00 GMT
Net::DNS is up to date.
так и руками скачивая с cpan.org и устанавливая модуль.
и что возвратит сия конструкция?

Код: Выделить всё

perl -e 'use Net::DNS::Resolver'
FDK писал(а):Результат:
Dec  6 13:26:15 ns2 spamd[10160]: mkdir //.spamassassin: Permission denied at /usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin.pm line 1467
ну так вы запускаете spamd от имени пользователя, у которого в качестве homedir прописан корневой каталог. выводы делайте сами
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 15:48

Вот строка запуска из скрипта:
daemon /usr/bin/spamd -d -x -u nobody
соот-но spamd запускается же от имени пользователя nobody и каталог у него соот-но не корень ?

Возвращает след:

Код: Выделить всё

Can't locate Net/IP.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/Base.pm line 24.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/Base.pm line 24.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/UNIX.pm line 9.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/UNIX.pm line 9.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver.pm line 19.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver.pm line 22.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 16:08

FDK писал(а):Вот строка запуска из скрипта:
daemon /usr/bin/spamd -d -x -u nobody
соот-но spamd запускается же от имени пользователя nobody и каталог у него соот-но не корень ?
покажите

Код: Выделить всё

grep ^nobody: /etc/passwd
FDK писал(а):Возвращает след:

Код: Выделить всё

Can't locate Net/IP.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/Base.pm line 24.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/Base.pm line 24.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/UNIX.pm line 9.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver/UNIX.pm line 9.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver.pm line 19.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Net/DNS/Resolver.pm line 22.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
устраните проблемы с перловыми модулями, потом уже тестируйте работу spamd
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 16:13

Хм, вы оказались правы - корень - домашняя директория пользователя nobody, домашнюю директорию задать нужно /etc/mail/spamassasin ?
Сейчас сделаю отдельно группу и пользователя для spamd, как можно устранить данную проблему с модулями?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 16:24

FDK писал(а):Хм, вы оказались правы - корень - домашняя директория пользователя nobody,
вообщем-то я чаще всего сначала проверяю данные, которые публикую тут
FDK писал(а):домашнюю директорию задать нужно /etc/mail/spamassasin ?
нет. лучше пользователя настройки nobody не трогать.

лучше создать отдельного пользователя для запуска spamd от его имени. порт FreeBSD p5-Mail-SpamAssassin создает пользователя spamd. можете пойти по тому же пути

и есть второй путь - можно попробовать продолжать работать от имени nobody, но в параметрах запуска демона использовать опции -H и/или --virtual-config
FDK писал(а):Сейчас сделаю отдельно группу и пользователя для spamd, как можно устранить данную проблему с модулями?
доставить недостающий модуль
это очевидно из вывода на STDERR того командострочного скрипта, который я просил запустить
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 16:40

Добавил пользователя spamd, соот-но назначил права на директорию /etc/mail/spamassasin тому же пользователю, поменял пользователя в скрипте запуска демона, так же устранили проблему с модулями - на данный момент дает следующее:

Код: Выделить всё

Dec  6 15:37:39 ns2 spamd[12864]: bayes: locker: safe_lock: cannot create tmp lockfile /etc/mail/spamassasin/bayes/bayes.lock.ns2.server.ru.12864 for /etc/mail/spamassasin/bayes/bayes.lock: No such file or directory 
Dec  6 15:37:39 ns2 spamd[12864]: spamd: clean message (-1.4/5.0) for root:1027 in 0.0 seconds, 560 bytes. 
Dec  6 15:37:39 ns2 spamd[12864]: spamd: result: . -1 - ALL_TRUSTED scantime=0.0,size=560,user=root,uid=1027,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=56756,mid=<439586DB.80804@server.ru>,autolearn=failed 
Dec  6 15:37:39 ns2 spamd[12861]: prefork: child states: II 

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 06 дек 2005, 17:11

FDK писал(а):Добавил пользователя spamd, соот-но назначил права на директорию /etc/mail/spamassasin тому же пользователю, поменял пользователя в скрипте запуска демона, так же устранили проблему с модулями - на данный момент дает следующее:

Код: Выделить всё

Dec  6 15:37:39 ns2 spamd[12864]: bayes: locker: safe_lock: cannot create tmp lockfile /etc/mail/spamassasin/bayes/bayes.lock.ns2.server.ru.12864 for /etc/mail/spamassasin/bayes/bayes.lock: No such file or directory 
в студию

Код: Выделить всё

ls -ld /etc/mail/spamassasin/bayes
и

Код: Выделить всё

id spamd
--
/corvax

FDK
member
Сообщения: 29
Зарегистрирован: 22 июн 2005, 13:21
Контактная информация:

Сообщение FDK » 06 дек 2005, 17:17

Все, кажется нашли ошибку - имя директории spamassassin, a не spamasssasin.
Теперь можно и настраивать =)
Спасибо за помощь!

akotovsky
Junior member
Сообщения: 19
Зарегистрирован: 19 дек 2005, 18:18

Сообщение akotovsky » 19 дек 2005, 18:25

Здраствуйте.

Выдержка из /usr/local/etc/mail/spamassassin/local.cf
...
bayes_path /mail/spam/bayes

#ls -la /mail/spam/ | grep bayes
-rw------- 1 spam spam      4333 Dec 19 13:19 bayes.mutex
-rw------- 1 spam spam   3452425 Dec 19 13:19 bayes_seen
-rw------- 1 spam spam    804533 Dec 19 13:19 bayes_toks

ps -aux | grep spamd
Видно что запушено от nobody.

Но из за того что spamd работает от пользователя nobody в логах вот такая ошибка:

Dec 19 17:06:45 mail spamd[6466]: bayes: cannot write to /mail/spam/bayes_journal, bayes db update ignored: Permission denied

Файла bayes_jornal там нету.

И еще вот что смущает:

Dec 19 16:58:24 mail spamd[46909]: spamd: connection from localhost [127.0.0.1] at port 59368
Dec 19 16:58:24 mail spamd[46909]: spamd: setuid to root succeeded
Dec 19 16:58:24 mail spamd[46909]: spamd: still running as root: user not specified with -u, not found, or set to root, falling back to nobody at /usr/local/bin/spamd line 1147, <GEN12583> line 4.

Помогите, в чем может быть дело.

Заранее спасибо за вашу помощь.

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 19 дек 2005, 18:38

akotovsky писал(а):Здраствуйте.

Выдержка из /usr/local/etc/mail/spamassassin/local.cf
...
bayes_path /mail/spam/bayes

#ls -la /mail/spam/ | grep bayes
-rw------- 1 spam spam      4333 Dec 19 13:19 bayes.mutex
-rw------- 1 spam spam   3452425 Dec 19 13:19 bayes_seen
-rw------- 1 spam spam    804533 Dec 19 13:19 bayes_toks

ps -aux | grep spamd
Видно что запушено от nobody.

Но из за того что spamd работает от пользователя nobody в логах вот такая ошибка:

Dec 19 17:06:45 mail spamd[6466]: bayes: cannot write to /mail/spam/bayes_journal, bayes db update ignored: Permission denied

Файла bayes_jornal там нету.

И еще вот что смущает:

Dec 19 16:58:24 mail spamd[46909]: spamd: connection from localhost [127.0.0.1] at port 59368
Dec 19 16:58:24 mail spamd[46909]: spamd: setuid to root succeeded
Dec 19 16:58:24 mail spamd[46909]: spamd: still running as root: user not specified with -u, not found, or set to root, falling back to nobody at /usr/local/bin/spamd line 1147, <GEN12583> line 4.

Помогите, в чем может быть дело.

Заранее спасибо за вашу помощь.
так а что тут непонятно? spamd работает от имени пользователя, не имеющего прав ни на чтение ни на запись (кстати, зачем она вам? для автообучения?) в базы байеса. меняйте владельца файлов баз.
--
/corvax

akotovsky
Junior member
Сообщения: 19
Зарегистрирован: 19 дек 2005, 18:18

Сообщение akotovsky » 19 дек 2005, 18:43

т.е. поставиль владельцем файлов nobody ?

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»