Qmail, clamd, spamassasin (аля qmailrock)

Категория: / DEV Блог / Сервер (FreeBSD)
clamd

Контроллер

/usr/local/etc/rc.d/clamd.sh

Не стартует clamd после обновления.
Посмотреть ldd все ли сошки на месте

/libexec/ld-elf.so.1: Shared object "libcurl.so.3" not found, required by "clamd"
[root@host /usr/local/etc/rc.d]# whereis clamd
clamd: /usr/local/sbin/clamd
[root@host /usr/local/etc/rc.d]# ldd /usr/local/sbin/clamd


# Обновить вирусную базу
freshclam

При отправке писем возникает ошибка:

Temporary server error [451 qq temporary problem (#4.3.0)]
#В логах
Mon Aug 13 13:21:20 2007 -> Reading databases from /usr/local/share/clamav
Mon Aug 13 14:41:53 2007 -> ERROR: Unable to open file or directory


Делаем

chmod 665 на daily.inc и main.inc
/usr/local/share/clamav


Не стартует из за невозможности обновления антивирусных баз??

удаляем папку daily.inc в /usr/local/share/clamav, рестартим clamd
 
freshclam:
Ignoring mirror 62.181.41.8 (too often connections with outdated version)
Ignoring mirror 80.93.48.167 (too often connections with outdated version)


Утилита для управления очередью qmail

QMQTool

Usage: qmqtool [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]
 
The following single-character options are accepted:
        With arguments: -n -v -f -o -E -U -B
        Boolean (without arguments): -h -l -L -R -S -T -s -Q -c -r -i -w -V
 
Options may be merged together.  -- stops processing of options.
Space is not required between options and their arguments.
  [Now continuing due to backward compatibility and excessive paranoia.
   See ``perldoc Getopt::Std'' about $Getopt::Std::STANDARD_HELP_VERSION.]
        qmqtool version 1.12
        syntax: qmqtool [-l] [-L] [-R] [-S [-nN]] [-T] [-s] [-Q] [-c] [-r] [-i [-nN]] [-V]
                        [-E(A|R|L)] [-U(A|R|L)] [-vN [-w]] [-e(N|[-f 'STRING'|-oN])] [-u(N|[-f 'STRING'|-oN])]
                        [-d(N|[-f 'STRING'|-oN])] [-f 'STRING'] [-oN] [-B(b|r)]
 
        -l              list messages in all parts of the queue
        -L              list messages in local queue
        -R              list messages in remote queue
        -T              list messages in todo queue
        -s              show statistical information
        -Q              be as quiet as possible (useful for snmp, cron, and such)
        -V              be more verbose
        -B
          b             Backup queue into /var/qmail/queue.backup/
          r             Restore backup from /var/qmail/queue.backup/
        -c              check queue consitancy
        -r              repair queue (by deleting fragments) found by checking queue consistancy
        -i              show how many messages are queued per ip
           -nN          pay attention to the Nth last smtp-hop
        -S              show how many bytes are queued per ip
        -e              expire message
                        may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
        -u              unexpire message
                        may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
        -d              delete message
                        may specify N (multiples may be comma separated), or -f 'STRING' and/or -o N
        -E              expire messages in [A]ll, [R]emote, or [L]ocal queues
        -U              unexpire messages in [A]ll, [R]emote, or [L]ocal queues
        -v
          N             view first 100 lines of message number N
          N -w          view whole message N
        -f 'STRING'     display comma separated list of message number(s) containing STRING.
                        prints 0 if no matches are found.
        -o N            display comma separated list of message number(s) older than N hours.
                        prints 0 if no matches are found.


qmHandle

Более простая, но с интересными возможностями.
Устанавливаем -
pkg_add -r qmhandle
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/qmhandle.tbz... Done.

[root# /var/qmail/control]# qmHandle --help
qmHandle v1.3.2
Copyright 1998-2003 Michele Beltrame
 
Available parameters:
  -a       : try to send queued messages now (qmail must be running)
  -l       : list message queues
  -L       : list local message queue
  -R       : list remote message queue
  -s       : show some statistics
  -mN      : display message number N
  -dN      : delete message number N
  -fsender : delete message from sender
  -f're'   : delete message from senders matching regular expression re
  -Stext   : delete all messages that have/contain text as Subject
  -h're'   : delete all messages with headers matching regular expression re (case insensitive)
  -b're'   : delete all messages with body matching regular expression re (case insensitive)
  -H're'   : delete all messages with headers matching regular expression re (case sensitive)
  -B're'   : delete all messages with body matching regular expression re (case sensitive)
  -t're'   : flag messages with recipients in regular expression 're' for earlier retry (note: this lengthens the time message can stay in queue)
  -D       : delete all messages in the queue (local and remote)
  -V       : print program version
 
Additional (optional) parameters:
  -c       : display colored output
  -N       : list message numbers only
           (to be used either with -l, -L or -R)
 
You can view/delete multiple message i.e. -d123 -v456 -d567


Боремся с doublebounce-ингом

Если вы видите подобные вещи в своей системе

[root@4style /var/qmail/control]# ps ax | grep qmail-re
19167  ??  I      0:00.00 qmail-remote bonvoyagecharny.com ihvwmamrh@bonvoyagecharny.com
27398  ??  I      0:00.00 qmail-remote yahoo.com.au iazgu3@yahoo.com.au
33437  ??  I      0:00.00 qmail-remote yahoo.com.au hzmxw3@yahoo.com.au
36546  ??  I      0:00.00 qmail-remote bluesmog.com dsy@bluesmog.com
36747  ??  I      0:00.00 qmail-remote yahoo.com dance2franki@yahoo.com
38715  ??  I      0:00.00 qmail-remote chan.ne.jp inadequate006@chan.ne.jp
39184  ??  I      0:00.00 qmail-remote dva.gov.au |stuart.fraser@dva.gov.au


Это значит вас спамят на несуществующие ящики и ваш хост пытается сообщить об ошибке отправителю -
при этом расходуется как трафик так и ресурсы системы.

Запрещаем этот беспредел:

#Записываем в файл "#" решетку
/var/qmail/control/doublebounceto
qmailctl restart


Альтернативным методом - является создание "фиктивного" пользователя почты и запись его в doublebounceto.
Далее, для этого пользователя правим файл .qmail и прописываем туда "|exit 0" (без кавычек).