Mail Server · 12 min read · Dec 24, 2025

Идеальный SpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - Страница 2

6. Установите Postfix:

apt-get install postfix postfix-mysql postfix-doc procmail

Вам будет задано два вопроса. Ответьте следующим образом:

Общий тип конфигурации почты: –> Интернет-сайт
Системное имя почты: –> server1.example.com

Остановите Postfix:

postfix stop

Мы хотим отредактировать Postfix следующим образом:

vi master.cf

Нам нужно добавить два элемента ниже типа сервиса pickup. Сервис pickup “забирает” локальную почту (локальная означает “на этом компьютере”) и доставляет её. Это способ обойти фильтрацию содержимого для почты, генерируемой этим компьютером.

Это должно выглядеть так, когда вы закончите:

pickup    fifo  n       -       -       60      1       pickup
         -o content_filter=
         -o receive_override_options=no_header_body_checks

Редактируйте main.cf:

vi /usr/src/postfix.sh
#!/bin/sh
postconf -e "alias_maps = hash:/etc/aliases"
newaliases
postconf -e "myorigin = domain.tld"
postconf -e "myhostname = server1.domain.tld"
postconf -e "mynetworks = 127.0.0.0/8, 192.168.0.0/24"
postconf -e "message_size_limit = 10485760"
postconf -e "local_transport = error:No local mail delivery"
postconf -e "mydestination = "
postconf -e "local_recipient_maps = "
postconf -e "relay_domains = mysql:/etc/postfix/mysql-relay_domains.cf"
postconf -e "relay_recipient_maps = mysql:/etc/postfix/mysql-relay_recipients.cf"
postconf -e "transport_maps = mysql:/etc/postfix/mysql-transports.cf"
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
postconf -e "disable_vrfy_command = yes"
postconf -e "strict_rfc821_envelopes = no"
postconf -e "smtpd_banner = $myhostname ESMTP SpamSnake"
postconf -e "smtpd_delay_reject = yes"
postconf -e "smtpd_recipient_limit = 100"
postconf -e "smtpd_helo_required = yes"
postconf -e "smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, permit"
postconf -e "smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, permit"
postconf -e "smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit"
postconf -e "smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_recipient_domain, reject_unauth_destination, whitelist_policy, grey_policy, rbl_policy, spf_policy, permit"
postconf -e "smtpd_data_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining"
postconf -e "smtpd_restriction_classes = spf_policy, rbl_policy, grey_policy, whitelist_policy"
postconf -e "spf_policy = check_policy_service unix:private/policy"
postconf -e "rbl_policy = reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net"
postconf -e "grey_policy = check_policy_service unix:private/greyfix"
postconf -e "whitelist_policy = check_client_access mysql:/etc/postfix/mysql-global_whitelist.cf, check_sender_access mysql:/etc/postfix/mysql-global_whitelist.cf"
postconf -e "header_checks = regexp:/etc/postfix/header_checks"
touch /etc/postfix/virtual
echo "root [email protected]" >> /etc/postfix/virtual && echo "abuse [email protected]" >> /etc/postfix/virtual && echo "postmaster [email protected]" >> /etc/postfix/virtual
postmap /etc/postfix/virtual
touch /etc/postfix/header_checks
echo "/^Received:/ HOLD" >> /etc/postfix/header_checks
postmap /etc/postfix/header_checks
cat > /etc/postfix/mysql-global_whitelist.cf < /etc/postfix/mysql-relay_domains.cf < /etc/postfix/mysql-relay_recipients.cf < /etc/postfix/mysql-transports.cf <

Примечание: На этом этапе убедитесь, что вы заменили [email protected], example.com и @example.com на реальные значения, соответствующие вашей настройке.

chmod +x /usr/src/postfix.sh

и запустите с помощью

./usr/src/postfix.sh

*Примечание: Пользователь/пароль для файлов cf должны совпадать с пользователем/паролем, которые вы будете использовать с вашей настройкой базы данных Baruwa позже. Убедитесь, что вы изменили всё, что выделено красным, перед запуском скрипта.

Вызов получателя Postfix (необязательно)

Эта функция запрашивает сервер получателя, чтобы узнать, существует ли получатель. Если нет, он отвечает с ошибкой 550 серверу-отправителю и разрывает соединение. Если пользователь существует, SpamSnake продолжит обработку электронной почты. Это просто еще один метод предотвращения обратного рассеяния, но он имеет свою цену. Ознакомьтесь с ним на http://www.postfix.org/ADDRESS_VERIFICATION_README.html. Вы можете пропустить этот метод и использовать метод скрипта (позже в этом руководстве), если решите, что это замедлит ваш сервер.

vi /etc/postfix/main.cf

и добавьте следующее:

verify_recipient = reject_unknown_recipient_domain, reject_unverified_recipient  
look_ahead = check_recipient_access hash:/etc/postfix/access  
unverified_recipient_reject_code = 550  
address_verify_map = btree:/var/lib/postfix/verify

Добавьте это в ваши smtpd_restriction_classes:

verify_recipient, look_ahead

Добавьте это в smptd_recipient_restrictions:

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, look_ahead, whitelist_policy, grey_policy, rbl_policy, spf_policy, permit
touch /etc/postfix/access

и добавьте ваши домены:

domainA.com verify_recipient  
domainB.com verify_recipient

*Примечание: Убедитесь, что вы добавили действительные домены, которые вы фильтруете.

Postmap это:

postmap /etc/postfix/access

Финальный взгляд на установку Postfix:

less /etc/postfix/main.cf

Проверьте содержимое файла на наличие ошибок и исправьте, если необходимо. Запустите Postfix:

postfix start

Проверьте, что Postfix отвечает:

telnet 127.0.0.1 25

Вы должны увидеть:

220 [yourFQDNhere] ESMTP Postfix (Ubuntu)

7. Установите MailScanner (Apparmor, Clamav, DCC, Pyzor, Razor и Spamassassin)

cd /usr/src  
wget http://http.us.debian.org/debian/pool/main/libt/libtool/libltdl3_1.5.26-4+lenny1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
dpkg -i libltdl*  
apt-get install razor pyzor clamav-daemon libclamav6 apparmor

Конфигурация Apparmor для Clamav

Добавьте clamav в группу www-data, чтобы он мог получить доступ к директории:

usermod -a -G www-data clamav

Теперь отредактируйте профиль для clamd:

vi /etc/apparmor.d/usr.sbin.clamd

и добавьте папку Incoming в список папок

/usr/sbin/clamd {
   #clamav
   /var/spool/MailScanner/ rw,
   /var/spool/MailScanner/incoming/ rw,
   }

Перезагрузите apparmor:

/etc/init.d/apparmor reload

Конфигурация DCC 32bit/64bit

Установите DCC из .deb источника:

cd /tmp  
wget http://ppa.launchpad.net/jonasped/ppa/ubuntu/pool/main/d/dcc/dcc-common_1.3.130-0ubuntu1~ppa1~karmic1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb && dpkg -i dcc-common_1.3.130-0ubuntu1~ppa1~karmic1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb  
wget http://ppa.launchpad.net/jonasped/ppa/ubuntu/pool/main/d/dcc/dcc-client_1.3.130-0ubuntu1~ppa1~karmic1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb && dpkg -i dcc-client_1.3.130-0ubuntu1~ppa1~karmic1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb

Проверьте нашу установку с помощью:

cdcc info

Вы должны получить ‘запросы в порядке’ от серверов.

Конфигурация Pyzor

Поскольку pyzor не работает с python2.6 очень хорошо, обходной путь заключается в том, чтобы добавить следующее в первую строку /usr/bin/pyzor, чтобы она выглядела так:

#!/usr/bin/python -Wignore::DeprecationWarning

Здесь мы указываем IP-адрес сервера Pyzor для Pyzor. Это создаст IP-адрес сервера в файле servers. Затем он протестирует соединение. Если вы находитесь за брандмауэром, откройте порт 24441/udp в и из вашего сервера. Пока вы находитесь в этом, также откройте 6277/udp для DCC, 2703/tcp для Razor и 783/tcp для SpamAssassin:

mkdir /var/lib/MailScanner  
pyzor --homedir=/var/lib/MailScanner discover  
pyzor ping

Конфигурация Razor

Создайте конфигурацию .razor:

cd && rm /etc/razor/razor-agent.conf  
mkdir /var/lib/MailScanner/.razor  
razor-admin -home=/var/lib/MailScanner/.razor -create  
razor-admin -home=/var/lib/MailScanner/.razor -discover  
razor-admin -home=/var/lib/MailScanner/.razor -register
vi /var/lib/MailScanner/.razor/razor-agent.conf
debuglevel      = 0
razorhome         = /var/lib/MailScanner/.razor/

Установите зависимости:

apt-get install libconvert-tnef-perl libdbd-sqlite3-perl libfilesys-df-perl libmailtools-perl libmime-tools-perl libmime-perl libnet-cidr-perl libsys-syslog-perl libio-stringy-perl libfile-temp-perl libole-storage-lite-perl libarchive-zip-perl libsys-hostname-long-perl libnet-cidr-lite-perl libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl libncurses5-dev libdigest-hmac-perl libdigest-sha1-perl libnet-ip-perl liburi-perl libfile-spec-perl spamassassin libnet-ident-perl libmail-spf-query-perl libmail-dkim-perl dnsutils libio-socket-ssl-perl gdebi-core

Скачайте и установите последнюю версию MailScanner:

cd /usr/src && wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.81.4-1.tar.gz  
tar xvfz MailScanner-install-4.81.4-1.tar.gz && cd MailScanner-install-4.81.4  
./install.sh

Запустите crontab -e и добавьте следующие записи:

37      5 * * *  /opt/MailScanner/bin/update_phishing_sites &> /dev/null  
07      * * * *  /opt/MailScanner/bin/update_bad_phishing_sites &> /dev/null  
58     23 * * * /opt/MailScanner/bin/clean.quarantine &> /dev/null  
42      * * * *  /opt/MailScanner/bin/update_virus_scanners &> /dev/null  
3,23,43 * * * *  /opt/MailScanner/bin/check_mailscanner &> /dev/null  

SpamAssassin

Сначала нам нужно отключить файл конфигурации SpamAssassin по умолчанию:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

Теперь давайте создадим резервную копию файла конфигурации SpamAssassin в MailScanner, а затем отредактируем:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back

SQL Bayes для SpamAssassin

Предварительные требования: Вам нужно установить модули perl-DBI и perl-DBD-MySQL.

Предположения и переменные:

Имя базы данных Bayes для SpamAssassin: sa_bayes
Имя пользователя базы данных Bayes для SpamAssassin: sa_user
Пароль базы данных Bayes для SpamAssassin: sa_password

Создайте базу данных MySQL на сервере, где вы собираетесь хранить байесовскую информацию.

mysql -u root -p  
mysql> create database sa_bayes;  
mysql> GRANT ALL ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'sa_password';  
mysql> flush privileges;

Импортируйте структуру базы данных:

mysql -u sa_user -p sa_bayes < /usr/share/doc/spamassassin/sql/bayes_mysql.sql

vi /etc/spamassassin/v310.pre для включения DCC:

loadplugin  Mail::SpamAssassin::Plugin::DCC

Создайте следующее, чтобы предотвратить ошибку в тесте lint:

mkdir /var/www/.spamassassin
vi /opt/MailScanner/etc/spam.assassin.prefs.conf

и добавьте следующее в начало:

#pyzor
use_pyzor 1
pyzor_options --homedir /var/lib/MailScanner/
   
#razor
use_razor2 1
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

Исправьте путь DCC:

dcc_path /usr/bin/dccproc

Обновите строку заголовка:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information
#use_auto_whitelist 0

“YOURDOMAIN-COM” следует заменить на то, что вы использовали для “%org-name%” в файле MailScanner.conf. Оставьте “X-“ на месте. Это то же самое имя организации, которое использовалось в MailScanner.conf выше.

Добавьте строку подключения sql внизу:

bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:sa_bayes:localhost
bayes_sql_username sa_user
bayes_sql_password sa_password
bayes_sql_override_username root
vi v310.pre

и закомментируйте domainkeys, так как DKIM его заменил:

#loadplugin  Mail::SpamAssassin::Plugin::DomainKeys

Добавьте это в cron:

30 01 * * * /usr/bin/sa-learn --force-expire --sync -p /opt/MailScanner/etc/spam.assassin.prefs.conf 

Установите недостающие perl-пакеты:

perl -MCPAN -e shell  
install IP::Country::Fast  
install Encode::Detect  
install Crypt::OpenSSL::RSA

Установите разрешения, чтобы всё свести воедино:

chown -R postfix:www-data /var/spool/postfix/hold  
chmod -R ug+rwx /var/spool/postfix/hold

Проверьте настройку:

spamassassin -x -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lint

Проверьте наличие строк, таких как:

debug: bayes: Database connection established
debug: bayes: found bayes db version 3
debug: bayes: Using userid: 2

Вы должны увидеть строки с DCC, Pyzor и Razor, которые говорят о загрузке плагина и, надеюсь, без ошибок.

Конфигурация MailScanner

Нам нужно создать директорию для SpamAssassin в спуле и дать postfix разрешения на неё, если вы запускаете sa-learn –force от имени root, база данных bayes, которая хранится в этих директориях, изменится на root:root, и spamassassin выдаст ошибку при обращении к базе данных. Просто следите за mail.log, и вы вспомните, чтобы изменить разрешения обратно. Также отключите конфигурации по умолчанию MailScanner:

mkdir /var/spool/MailScanner/spamassassin

Создайте резервную копию вашего файла MailScanner.conf:

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.dist  
vi /opt/MailScanner/etc/MailScanner.conf

Измените следующие параметры в MailScanner.conf с помощью следующего скрипта:

vi /usr/src/mailscanner.sh
chmod +x mailscanner.sh

и запустите с помощью

./usr/src/mailscanner.sh
sed -i "/^%org-name% =/ c\%org-name% =orgname" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^%org-long-name% =/ c\%org-long-name% = longorgname" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^%web-site% =/ c\%web-site% = www.domain.tld" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Run As User =/ c\Run As User = postfix" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Run As Group =/ c\Run As Group =  www-data" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Incoming Work Group =/ c\Incoming Work Group = clamav" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Incoming Work Permissions =/ c\Incoming Work Permissions = 0640" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Incoming Queue Dir =/ c\Incoming Queue Dir = /var/spool/postfix/hold" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Outgoing Queue Dir =/ c\Outgoing Queue Dir = /var/spool/postfix/incoming" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^MTA =/ c\MTA = postfix" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Quarantine User =/ c\Quarantine User = root" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Quarantine Group =/ c\Quarantine Group = www-data" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Quarantine Permissions =/ c\Quarantine Permissions = 0660" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Quarantine Whole Message =/ c\Quarantine Whole Message = yes" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Virus Scanners =/ c\Virus Scanners = clamd" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Monitors for ClamAV Updates =/ c\Monitors for ClamAV Updates = /var/lib/clamav/*.cld /var/lib/clamav/*.cvd" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Clamd Socket =/ c\Clamd Socket = /var/run/clamav/clamd.ctl" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Clamd Lock File =/ c\Clamd Lock File = /var/run/clamav/clamd.pid" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Spam Subject Text =/ c\Spam Subject Text = *SPAM*" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Spam Actions =/ c\Spam Actions = deliver store" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^High Scoring Spam Actions =/ c\High Scoring Spam Actions = store delete" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^Non Spam Actions =/ c\Non Spam Actions = deliver store" /opt/MailScanner/etc/MailScanner.conf
sed -i "/^SpamAssassin User State Dir =/ c\SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin" /opt/MailScanner/etc/MailScanner.conf 

*Примечание: Убедитесь, что вы изменили элементы, выделенные красным, перед запуском скрипта.

Скрипт запуска MailScanner:

vi /etc/init.d/mailscanner

с следующим содержимым и выполните

chmod +x /etc/init.d/mailscanner
#! /bin/sh
   ### BEGIN INIT INFO
   # Provides:          MailScanner daemon
   # Required-Start:    $local_fs $remote_fs
   # Required-Stop:     $local_fs $remote_fs
   # Default-Start:     2 3 4 5
   # Default-Stop:      0 1 6
   # Short-Description: Controls mailscanner instances
   # Description:       MailScanner is a queue-based spam/virus filter
   ### END INIT INFO
   # Author: Simon Walter <[email protected]>
   # PATH should only include /usr/* if it runs after the mountnfs.sh script
   PATH=/usr/sbin:/usr/bin:/bin:/sbin:/opt/MailScanner/bin
   DESC="mail spam/virus scanner"
   NAME=MailScanner
   PNAME=mailscanner
   DAEMON=/opt/MailScanner/bin/$NAME
   STARTAS=MailScanner
   SCRIPTNAME=/etc/init.d/$PNAME
   CONFFILE=/opt/MailScanner/etc/MailScanner.conf
   # Exit if the package is not installed
   [ -x "$DAEMON" ] || exit 0
   run_nice=0
   stopped_lockfile=/var/lock/subsys/MailScanner.off
   # Read configuration variable file if it is present
   [ -r /etc/default/$PNAME ] && . /etc/default/$PNAME
   # Load the VERBOSE setting and other rcS variables
   . /lib/init/vars.sh
   # Define LSB log_* functions.
   # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
   . /lib/lsb/init-functions
   # sanity check for permissions
   fail()
   {
   echo >&2 "$0: $1"
   exit 1
   }
   check_dir()
   {
   if [ ! -d $1 ]; then
   mkdir -p "$1" || \
   fail "directory $1: does not exist and cannot be created"
   fi
   actual="$(stat -c %U $1)"
   if [ "$actual" != "$2" ]; then
   chown -R "$2" "$1" || \
   fail "directory $1: wrong owner (expected $2 but is $actual)"
   fi
   actual="$(stat -c %G $1)"
   if [ "$actual" != "$3" ]; then
   chgrp -R "$3" "$1" || \
   fail "directory $1: wrong group (expected $3 but is $actual)"
   fi
   }
   user=$(echo $(awk -F= '/^Run As User/ {print $2; exit}' $CONFFILE))
   group=$(echo $(awk -F= '/^Run As Group/ {print $2; exit}' $CONFFILE))
   check_dir /var/spool/MailScanner       ${user:-postfix} ${group:-www-data}
   check_dir /var/lib/MailScanner         ${user:-postfix} ${group:-www-data}
   check_dir /var/run/MailScanner         ${user:-postfix} ${group:-www-data}
   check_dir /var/lock/subsys ${user:-root} ${group:-root} #Required to Create Folder
   check_dir /var/lock/subsys/MailScanner ${user:-postfix} ${group:-www-data}
   #
   # Function that starts the daemon/service
   #
   do_start()
   {
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started
   start-stop-daemon --start --quiet --startas $STARTAS --name $NAME --test > /dev/null \
   || return 1
   start-stop-daemon --start --quiet --nicelevel $run_nice --chuid postfix:www-data --exec $DAEMON --name $NAME -- $DAEMON_ARGS \
   || return 2
   # Add code here, if necessary, that waits for the process to be ready
   # to handle requests from services started subsequently which depend
   # on this one.  As a last resort, sleep for some time.
   # Set lockfile to inform cronjobs about the running daemon
   RETVAL="$?"
   if [ $RETVAL -eq 0 ]; then
   touch /var/lock/subsys/mailscanner
   rm -f $stopped_lockfile
   fi
   if [ $RETVAL -eq 0 ]; then
   echo "MailScanner Started"
   fi
   }
   #
   # Function that stops the daemon/service
   #
   do_stop()
   {
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred
   start-stop-daemon --stop --retry=TERM/30 --name $NAME
   RETVAL="$?"
   [ "$RETVAL" = 2 ] && return 2
   # Remove lockfile for cronjobs
   if [ $RETVAL -eq 0 ]; then
   rm -f /var/lock/subsys/mailscanner
   touch $stopped_lockfile
   fi
   if [ $RETVAL -eq 0 ]; then
   echo "MailScanner Stopped"
   fi
   }
   #
   # Function that sends a SIGHUP to the daemon/service
   #
   do_reload() {
   start-stop-daemon --stop --signal 1 --quiet --name $NAME
   return 0
   }
   case "$1" in
   start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
   do_start
   case "$?" in
   0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
   2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
   stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
   do_stop
   case "$?" in
   0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
   2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
   restart|force-reload)
   #
   # If the "reload" option is implemented then remove the
   # 'force-reload' alias
   #
   log_daemon_msg "Restarting $DESC" "$NAME"
   do_stop
   case "$?" in
   0|1)
   do_start
   case "$?" in
   0) log_end_msg 0 ;;
   1) log_end_msg 1 ;; # Old process is still running
   *) log_end_msg 1 ;; # Failed to start
   esac
   ;;
   *)
   # Failed to stop
   log_end_msg 1
   ;;
   esac
   ;;
   *)
   echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
   exit 3
   ;;
   esac
 exit 0

Создайте символьные ссылки, чтобы скрипт mailscanner работал:

chmod 755 /etc/init.d/mailscanner  
update-rc.d mailscanner defaults  
ln -s /opt/MailScanner/bin/Quick.Peek /usr/sbin/Quick.Peek

Запустите систему:

/etc/init.d/mailscanner start  
/etc/init.d/postfix start

Проверьте ваши журналы на наличие ошибок:

tail -f /var/log/mail.log

Проверьте ваш mail.log (tail –f /var/log/mail.log), и вы должны увидеть следующее:

Jun 13 12:18:23 hoshi MailScanner[26388]: MailScanner E-Mail Virus Scanner version 4.81.4 starting...

Поздравляем - теперь у вас есть MailScanner, записывающий в MySQL.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.