Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • Надграждане на сървъра за електронна поща Антиспам

    Тази статия е продължение на Подобрение ВИРТУАЛИЗАЦИЯ и MySQL До тук имаме: ● инсталиран сървър за електронна ● инсталиран и настроен PostFix ● инсталиран и настроен Dovecot ● инсталиран и настроен Roundcube ● PostFix приема и изпраща писма, след това ги предава на Dovecot ● Dovecot отговаря за пощенските кутии и удостоверенията, включително за PostFix ● ползваме потребители и домейни от база данни на MySQL. Усложняваме задачата с: ● инсталиране и настройване на програми за Антиспам ● защита от фишинг атаки ● инсталиране и настройване на антивирус за сървъра

    Антиспам с SpamAssassin

    SpamAssasin работи по следния начин:

    Pic01

    От 1 до 3 сървъра за електронна поща получава писмо от външен сървър. т.4 - получил писмото PostFix прави заявка към базата данни дали е отговорен за получателя. Ако има валиден получател, PostFix го поставя на опашка и го изпраща за проверка на СПАМ. т.5 - SpamAssasin получава копие на писмото използвайки протокола milter. Извършва проверка на копието и изчислява вероятността за спам. Добавя запис към заглавието на писмото показващ дали е спам или не е. Връща резултата отново на PostFix т.6,7 - Ако писмото не е спам PostFix го препраща на Dovecot който пък ще го запише на диска на сървъра Така работи проверката за СПАМ. В случая ползваме SpamAssasin да проверява, но по същата логика работят и другите антиспам решения. Примерно едно различно такова е RSpamd. В случая ще се занимаем със SpamAssassin защото е по-лесен за настройка и по-разбираем, а в някоя друга статия ще покажа и RSpamd. Поглеждайки ръководството на Debian https://wiki.debian.org/DebianSpamAssassin имаме два пътя за осъществяване на задачата. 1. PostFix заедно със SpamAssassin сканират имейлите за спам. SpamAssassin ще се използва като филтър на съдържанието на подателя SMTP. Двоичния файл spamc предава мейла към spamd - демона на SpamAssassin и след това се връща обратно към опашката на пощата. За целта са необходими инсталирани postfix, spamassassin и spamc. 2. Другия начин на стартиране на SpamAssassin с PostFix е като Milter. Демонът spamass-milter ще бъде звикан от двоичния файл на PostFix spamc. spamass-milter ще изпълни файла spamc, който предава мейла на spamd. За целта се ползва протокола Milter за изпращане на промените в заглавието на писмото. Необходимо е да са инсталирани postfix, spamassassin, spamass-milter и spamc. Ще разгледаме и двата варианта.

    Инсталиране и настройка на SpamAssassin - Вариант 1

    apt install spamassassin spamc -y

    Инсталирахме: spamassassin - базиран на Perl спам филтър, използващ анализ на текст spamc - клиент за демон за филтриране на спам SpamAssassin едновременно с това бе създаден потребител debian-spamd, който е член на групата debian-spamd За конфигуриране име два файла /etc/default/spamd - файл описващ как да се стартира демона /etc/spamassassin/local.cf - файл създаващ правила за определяне на спама Започваме с първия файл /etc/default/spamd

    nano /etc/default/spamd OPTIONS="--create-prefs --max-children 5 --helper-home-dir" PIDFILE="/run/spamd.pid"

    В по-стари версии на Debian този файл беше /etc/default/spamassassin. Освен горните параметри имаше и CRON=1. Това правеше запис в CRON в /etc/cron.daily/spamassasin и караше всяка вечер да се теглят нови антиспам правила. В сегашната версия на Debian, тази опция я няма. Но независимо от това в CRON правилото съществура. Можем да проверим:

    ls -l /etc/cron.daily total 24 -rwxr-xr-x 1 root root 539 Oct 11 2023 apache2 -rwxr-xr-x 1 root root 1478 May 25 2023 apt-compat -rwxr-xr-x 1 root root 123 Mar 26 2023 dpkg -rwxr-xr-x 1 root root 377 Dec 14 2022 logrotate -rwxr-xr-x 1 root root 1395 Mar 12 2023 man-db -rwxr-xr-x 1 root root 1662 Apr 30 2023 spamassassin

    Да проверим дали SpamAssassin е стартиран.

    service spamd status spamd.service - Perl-based spam filter using text analysis Loaded: loaded (/lib/systemd/system/spamd.service; enabled; preset: enabled) Active: active (running) since Mon 2024-05-13 16:18:20 EDT; 33min ago Main PID: 4453 (spamd) Tasks: 3 (limit: 4644) Memory: 135.9M CPU: 1.568s CGroup: /system.slice/spamd.service ├─4453 /usr/bin/perl "-T -w" /usr/sbin/spamd --pidfile=/run/spamd.pid --create-prefs --max-children 5 --helper-home-dir ├─4461 "spamd child" └─4462 "spamd child" May 13 16:18:20 ns1 systemd[1]: Started spamd.service - Perl-based spam filter using text analysis. May 13 16:18:21 ns1 spamd[4453]: zoom: able to use 388/388 'body_0' compiled rules (100%) May 13 16:18:22 ns1 spamd[4453]: spamd: server started on IO::Socket::IP [::1]:783, IO::Socket::IP [127.0.0.1]:783 (running version 4.0.0) May 13 16:18:22 ns1 spamd[4453]: spamd: server pid: 4453 May 13 16:18:22 ns1 spamd[4453]: spamd: server successfully spawned child process, pid 4461 May 13 16:18:22 ns1 spamd[4453]: spamd: server successfully spawned child process, pid 4462 May 13 16:18:22 ns1 spamd[4453]: prefork: child states: II

    Значи демона стои и чака от PostFix писмо за проверка. За целта трябва да свържем PostFix и SpamAssasin да работят заедно, а по-точно SpamAssasin да получи копие от писмото от PostFix, да го обработи и да върне отговор. Начина на обработка на файла се конфигурира в /etc/spamassassin/local.cf

    nano /etc/spamassassin/local.cf # Add *****SPAM***** to the Subject header of spam e-mails # # rewrite_header Subject *****SPAM***** rewrite_header Subject ***** SPAM _SCORE_ ***** report_safe 0 required_score 5.0 use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 skip_rbl_checks 0 use_razor2 0 use_dcc 0 use_pyzor 0

    rewrite_header Тема *****SPAM***** - маркираме спам в MUA заглавието на писмото. Вече сме готови да получим писмото от PostFix за обработка и да му го върнем. Дефинирахме няколко правила за проверка на спам. По-подразбиране SpamAssassin идва с много строги правила и доста често нормално писмо го взема за спам. Примерно ако е пратено с по-стар мейл клиент, тогава писмото го маркира като спам , а то не е. Затова създадохме малко по-меки правила за тест на спама. За целта да настроим PostFix.

    nano /etc/postfix/master.cf # ========================================================================== smtp inet n - y - - smtpd -o content_filter=spamassassin submission inet n - - - - smtpd -o content_filter=spamassassin smtps inet n - y - - smtpd -o content_filter=spamassassin ### Най-накрая на файла spamassassin unix - n n - - pipe user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} service postfix restart service spamd restart

    Внимавайте, пред (-o) и user=debian-spamd винаги оставяйте отстъп поне една табулация или една шпация. Едната част от задачата я свършихме. Да проверим как ще се маркира писмото като спам. Първо пращаме писмо като спам.

    swaks --to tachko@my.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

    Проверяваме писмото в пощенската кутия на https://my.tlan.net/roundcube/

    Pic02

    Писмото е маркирано като спам, значи е открито като такова. Записано е в папката за нормални писма. До го накараме да се записва в папка за спам.

    Спам писмата в спам папка

    За целта се грижи файла /etc/dovecot/conf.d/90-sieve.conf

    nano /etc/dovecot/conf.d/90-sieve.conf # Търсим реда: #sieve_after = # Под него поставяме: sieve_after = /etc/dovecot/sieve-after


    Горното действие ни заставя да създадем папката /etc/dovecot/sieve-after

    mkdir /etc/dovecot/sieve-after


    Да създадем и следния файл:

    nano /etc/dovecot/sieve-after/spam-to-folder.sieve require ["fileinto","mailbox"]; if header :contains "X-Spam-Flag" "YES" { fileinto :create "INBOX.Junk"; stop; }


    Ако SpamAssasin маркира заглавие като спам, то ще премести писмото в Junk папката. Dovecot все още не знае какво да прави затова трябва да му се укаже за спама:

    sievec /etc/dovecot/sieve-after/spam-to-folder.sieve


    Рестартираме Dovecot:

    service dovecot restart service dovecot status


    И отново да тестваме спама:

    swaks --to tachko@my.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

    Pic03

    Сега ако влезем с браузъра в пощенската кутия, ще видим, че писмото се намира в папка Спам. Готово антиспама работи.


    Една благинка, Анди Олсен казва, че Dovecot е въвел функция за автоматично изтриване на съдържанието в папките Trash и Junk. Нека да се възползваме:

    nano /etc/dovecot/conf.d/15-mailboxes.conf namespace inbox { # These mailboxes are widely used and could perhaps be created automatically: mailbox Drafts { auto = create special_use = \Drafts } mailbox Junk { special_use = \Junk autoexpunge = 30d } mailbox Trash { auto = create special_use = \Trash autoexpunge = 30d } service dovecot restart

    След 30-тия ден, автоматично папките Спам и Кошче ще се изпразнят.


    Сега нещо важно: Понякога сървъра се пълни със страшно много спам. И тогава:

    postqueue -p Mail queue is empty


    В случая няма заявки за спам, но ако имаше и то много се предлага следното:

    postsuper -d ALL И ако имаше много заявки ще върне нещо от рода: postsuper: Deleted: 11018 messages в зависимот от броя спам


    След тази операция като се провери ще се получи следнот:

    postqueue -p Mail queue is empty

    Всичко това чисти опашката за спам. Това е единия начин за справяне със спама. Този метод работи и то добре, при условие, че не получавате много поща. Примрно ако получавате по 100 000 писма на ден то има по добър нчин но в следващата статия.

    Тест на антиспама

    Всичко се върти около един стринг. XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X Когато този стринг го има в писмото, антиспама го засича, оценява го и казва, че е спам. По-долу ще покажа няколко начина да си изпратите писмо което да е спам.

    swaks --to tachko@my.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

    Изпращаме писмо до себе си като за съдържание използваме съдържанието на файла /usr/share/doc/spamassassin/examples/sample-spam.txt. Ако пък разгледаме какво има във файла, отново ще открием прословутия стринг. Втори начин на тест.

    echo 'XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X' > body && \ swaks --to tachko@my.tlan.net --body body

    Отново стригна го вкарваме в тялото на писмото и го изпращаме до себе си. Крайния резултат отново е спам писмо. Трети вариант.

    cd wget http://spamassassin.apache.org/gtube/gtube.txt sendmail tachko@my.tlan.net < gtube.txt

    Смъкваме файл gtube.txt от http://spamassassin.apache.org/gtube/. Със sendmail го изпращаме до себе си. Крайния резултат отново е спам писмо. Вместо sendmail може да се пробва помощната програма mail която инсталирахме чрез пакета на mailutils.

    mail tachko@my.tlan.net < gtube.txt

    Крайния резултат отново ще е както горните. Ако пък имате и антивирусна програма на сървъра то тогава теста ще изглежда по следния начин.

    cd ~ && \ wget https://secure.eicar.org/eicar.com && \ swaks --to tachko@my.tlan.net --attach - --server my.tlan.net < eicar.com

    Обърнете внимание, ако вместо eicar.com пратите файла gtube.txt, то нямаше да откриете вирус в писмото а ще го маркирате като спам. С това приключваме първия вариант на инсталация и настройка на SpamAssassin

    Инсталиране и настройка на SpamAssassin - Вариант 2

    Колко е хубаво да се ползват виртуални машини. Точно за този момент става на въпрос. Трябва да се върнем в състояние Подобрение ВИРТУАЛИЗАЦИЯ и MySQL, защото ще тестваме работата на SpamAssassin по друг начин. Отново се връщаме в състояние на инсталиран сървър за електронна поща с виртуални потребители и домейни използващи SQL база данни. Ще инсталираме защита от спам, чрез SpamAssassin. Последния ще е стартиран като демон и ще чака за проверка на писмо от PostFix. Разликата с първия вариант е, че ще се ползва Milter протокол за тази цел. PostFix и SpamAssassin ще работят през сокет. Стандартно PostFix работи в chroot по подразбиране. Започваме с инсталацията. Имаме инсталиран postfix, необходими са spamassassin, spamc и spamass-milter.

    apt install spamassassin spamc spamass-milter -y

    Инсталирахме: spamassassin - базиран на Perl спам филтър, използващ анализ на текст spamc - клиент за демон за филтриране на спам SpamAssassin spamass-milter - milter протокол едновременно с това бяха създадени потребители debian-spamd, който е член на групата debian-spamd и spamass-milter, който е член на spamass-milter За конфигуриране име няколко файла /etc/default/spamd - файл описващ как да се стартира демона /etc/spamassassin/local.cf - файл създаващ правила за определяне на спама /etc/default/spamass-milter - файл определящ milter протокола /etc/postfix/main.cf - конфигурационен файл на PostFix Демонът spamass-milter ще извика PostFix. Също така активира и spamc. Предава писмото от PostFix на spamd (демона на SpamAssassin). Ако писмото е спам му се променя заглавието и отново през протокола Milter се връща на PostFix. Казахме по пдразбиране smtpd_milters е във вида smtpd_milters = unix:/spamass/spamass.sock (chroot). Може да имате и други Milters които да ги допълвате. Използвайте запетаи за да ги разделите. smtpd_milters може да има друго значение, примерно smtpd_milters = unix:/var/spool/postfix/spamass/spamass.sock. Да пробваме да го дефинираме в /etc/postfix/main.cf и това ще е през команда.

    Активиране на спам сканиране със SpamAssassin

    SpamAssassin ще се стартира като демон и ще чака през цялото време за връзка с Postfix. Връзката ще работи върху milter протокол.

    postconf smtpd_milters=unix:/spamass/spamass.sock


    SpamAssasin ще очаква специални променливи (макроси), затова ще се добавят и те към Postfix за да се страртират.

    postconf milter_connect_macros="i j {daemon_name} v {if_name} _"


    Да настроим и SpamAssassin:

    nano /etc/default/spamd OPTIONS="--create-prefs --max-children 5 --helper-home-dir -x -u vmail"

    Допълнителните опции -x -u vmail поясняват на SpamAssasin да гледа за its Bayes database в домашната папка на vmail потребителите. За по голяма точност ще се поставят в /var/vmail/.spamassassin директорията. В по-стари версии на Debian имаше опция CRON=1 прави запис на Cron в /etc/cron.daily/spamassasin и тегли нови антиспам правила всяка вечер. Тук без да се дефинира това правило в CRON-a имаме това условие. За да се стартира автоматично процеса spamd изпълнете:

    systemctl enable spamd Synchronizing state of spamassassin.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable spamassassin


    SpamAssain milter се нуждае от досъпт до данните на spamd. Трябва да се дефинира потребител с права да пуска и спира демона spamd. Ще се добави потребител debian-spamd в групата spamass-milter.

    adduser spamass-milter debian-spamd Adding user `spamass-milter' to group `debian-spamd' ... Adding user spamass-milter to group debian-spamd Done.


    Да проверм дали всичко е направено:

    groups spamass-milter spamass-milter : spamass-milter debian-spamd


    Всичко е точно, да рестартираме антиспама:

    service spamd restart service spamass-milter restart service spamd 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 2019-07-08 20:19:05 EEST; 45s ago Process: 2968 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamd.pid $OPTIONS (code=exited, stat us=0/SUCCESS) Main PID: 2970 (spamd) Tasks: 3 (limit: 4915) CGroup: /system.slice/spamassassin.service ├─2970 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/var/run/spamd.pid --create-prefs --max-children 5 --helper-home-dir -x -u vmail ├─2971 spamd child └─2972 spamd child Jul 08 20:19:03 post systemd[1]: Starting Perl-based spam filter using text analysis... Jul 08 20:19:03 post spamd[2968]: logger: removing stderr method Jul 08 20:19:04 post spamd[2970]: zoom: able to use 346/346 'body_0' compiled rules (100%) Jul 08 20:19:05 post spamd[2970]: spamd: server started on IO::Socket::IP [::1]:783, IO::Socket::IP [ 127.0.0.1]:783 (running version 3.4.2) Jul 08 20:19:05 post spamd[2970]: spamd: server pid: 2970 Jul 08 20:19:05 post spamd[2970]: spamd: server successfully spawned child process, pid 2971 Jul 08 20:19:05 post spamd[2970]: spamd: server successfully spawned child process, pid 2972 Jul 08 20:19:05 post systemd[1]: Started Perl-based spam filter using text analysis. Jul 08 20:19:05 post spamd[2970]: prefork: child states: II service spamass-milter status spamass-milter.service - LSB: milter for spamassassin Loaded: loaded (/etc/init.d/spamass-milter; generated; vendor preset: enabled) Active: active (running) since Mon 2019-07-08 20:19:39 EEST; 4min 7s ago Docs: man:systemd-sysv-generator(8) Process: 2999 ExecStop=/etc/init.d/spamass-milter stop (code=exited, status=0/SUCCESS) Process: 3006 ExecStart=/etc/init.d/spamass-milter start (code=exited, status=0/SUCCESS) Tasks: 5 (limit: 4915) CGroup: /system.slice/spamass-milter.service └─3019 /usr/sbin/spamass-milter -P /var/run/spamass/spamass.pid -f -p /var/spool/postfix/s pamass/spamass.sock -u spamass-milter -i 127.0.0.1 Jul 08 20:19:38 post systemd[1]: Starting LSB: milter for spamassassin... Jul 08 20:19:38 post spamass-milter[3019]: spamass-milter 0.4.0 starting Jul 08 20:19:39 post spamass-milter[3006]: Starting Sendmail milter plugin for SpamAssassin: spamass- milter Jul 08 20:19:39 post systemd[1]: Started LSB: milter for spamassassin.

    Спам проверка

    С инсталацията на SpamAssasin идва тестово спам писмо. То се нарича GTUBE. Това писмо съдържа articial модел който се смята за спам. За целта трябва пощна програма SWAKS:

    swaks --to tachko@my.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt cat /var/log/mail.log Jul 8 20:31:00 post dovecot: imap-login: Login: user=<tachko@home.tlan.net>, method=PLAIN, rip=::1, lip=::1, mpid=3122, secured, session=<M/G8zi6NSrAAAAAAAAAAAAAAAAAAAAAB> Jul 8 20:31:00 post dovecot: imap(tachko@home.tlan.net): Logged out in=123 out=1194 Jul 8 20:31:00 post postfix/smtpd[3100]: connect from localhost[::1] Jul 8 20:31:00 post postfix/smtpd[3100]: 59CCF100ACE: client=localhost[::1] Jul 8 20:31:00 post postfix/cleanup[3103]: 59CCF100ACE: message-id=<GTUBE1.1010101@example.net> Jul 8 20:31:00 post spamd[2971]: spamd: connection from ::1 [::1]:38232 to port 783, fd 5 Jul 8 20:31:00 post spamd[2971]: spamd: processing message <GTUBE1.1010101@example.net> for tachko:5000 Jul 8 20:31:00 post spamd[2971]: spamd: identified spam (1001.3/5.0) for tachko:5000 in 0.1 seconds, 1096 bytes. Jul 8 20:31:00 post spamd[2971]: spamd: result: Y 1001 - ALL_TRUSTED,DATE_IN_PAST_96_XX,GTUBE,HEADER_FROM_DIFFERENT_DOMAINS scantime=0.1,size=1096,user=tachko,uid=5000,required_score=5.0,rhost=::1,raddr=::1,rport=38232,mid=<GTUBE1.1010101@example.net>,autolearn=no autolearn_force=no Jul 8 20:31:00 post postfix/qmgr[773]: 59CCF100ACE: from=, size=3191, nrcpt=1 (queue active) Jul 8 20:31:00 post postfix/smtpd[3100]: disconnect from localhost[::1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5 Jul 8 20:31:00 post spamd[2970]: prefork: child states: II Jul 8 20:31:00 post dovecot: lmtp(3125): Connect from local Jul 8 20:31:00 post dovecot: lmtp(tachko@home.tlan.net): vGAkINR9I101DAAARu5irg: msgid=<GTUBE1.1010101@example.net>: saved mail to INBOX Jul 8 20:31:00 post postfix/lmtp[3105]: 59CCF100ACE: to=<tachko@home.tlan.net>, relay=home.tlan.net[private/dovecot-lmtp], delay=0.28, delays=0.16/0/0.01/0.11, dsn=2.0.0, status=sent (250 2.0.0 <tachko@home.tlan.net> vGAkINR9I101DAAARu5irg Saved) Jul 8 20:31:00 post dovecot: lmtp(3125): Disconnect from local: Successful quit Jul 8 20:31:00 post postfix/qmgr[773]: 59CCF100ACE: removed

    SpamAssassin е отбелязал 1001 точки което е много. Границата е 5 и така мейла е маркиран като спам. Проверката за спам работи. Трябва писмата маркирани като спам да се поставят в папката за спам. Както и в горния вариант, ако проверим писмото ще видим че във папка Входящи писма.

    Спам писмата в спам папката

    За целта се грижи файла /etc/dovecot/conf.d/90-sieve.conf

    nano /etc/dovecot/conf.d/90-sieve.conf # Търсим реда: #sieve_after = # Под него поставяме: sieve_after = /etc/dovecot/sieve-after


    Горното действие ни заставя да създадем папката /etc/dovecot/sieve-after

    mkdir /etc/dovecot/sieve-after


    Да създадем и следния файл:

    nano /etc/dovecot/sieve-after/spam-to-folder.sieve require ["fileinto","mailbox"]; if header :contains "X-Spam-Flag" "YES" { fileinto :create "INBOX.Junk"; stop; }


    Ако SpamAssasin маркира заглавие като спам, то ще премести писмото в INBOX.Junk папката. Dovecot все още не знае какво да прави затова трябва да му се укаже за спама:

    sievec /etc/dovecot/sieve-after/spam-to-folder.sieve


    Рестартираме Dovecot:

    service dovecot restart service dovecot status


    И отново да тестваме спама:

    swaks --to tachko@my.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

    Сега ако влезем с браузъра в пощенската кутия, ще видим, че писмото се намира в папка Спам. Готово антиспама работи.


    Една благинка, Анди Олсен казва, че Dovecot е въвел функция за автоматично изтриване на съдържанието в папките Trash и Junk. Нека да се възползваме:

    nano /etc/dovecot/conf.d/15-mailboxes.conf # These mailboxes are widely used and could perhaps be created automatically: mailbox Drafts { auto = create special_use = \Drafts autoexpunge = 30d } mailbox Junk { special_use = \Junk } mailbox Trash { auto = create special_use = \Trash autoexpunge = 30d } service dovecot restart

    autoexpunge = 30d - след 30-тия ден, автоматично папките Спам и Кошче ще се изпразнят.


    Сега нещо важно: Понякога сървъра се пълни със страшно много спам. И тогава:

    # postqueue -p Mail queue is empty


    В случая няма заявки за спам, но ако имаше и то много се предлага следното:

    # postsuper -d ALL И ако имаше много заявки ще върне нещо от рода: postsuper: Deleted: 11018 messages в зависимот от броя спам


    След тази операция като се провери ще се получи следнот:

    # postqueue -p Mail queue is empty

    Всичко това чисти опашката за спам. Това е единия начин за справяне със спама. Този метод работи и то добре, при условие, че не получавате много поща. Примрно ако получавате по 100 000 писма на ден то има по добър нчин но в следващата статия.