Linux
  • << DEBIAN >>
  •   < 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 Сървър
  •     DNS Практика
  •     Инсталиране и настройка на Apache
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Първо надграждане на MAIL сървъра
  •     Инсталиране и настройка на пощенски сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •     WEB сървър с Nginx
  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Сървър за отдалечен достъп - 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
  •   Ubuntu BUDGIE
  •     Инсталиране Ubuntu BUDGIE
  •     Първоначални настройки на Ubuntu BUDGIE
  •     Ubuntu BUDGIE като MAC OS
  •     Приложения за Ubuntu BUDGIE
  • GNOME работна среда
  •   Ubuntu GNOME
  •     Инсталиране на Ubuntu 21.04 GNOME
  •     Ubuntu 21.04 GNOME като MacOS
  • XFCE работна среда
  •   Debian - Install XFCE
  •     Debian XFCE - допълнение
  •     Debian XFCE като MacOS
  •   Ubuntu - Install XFCE
  •     Ubuntu XFCE - допълнение
  •     Ubuntu XFCE като MacOS
  • МАТЕ работна среда
  •   Debian - Install MATE
  •     Настройка на Debian MATE
  • PROGRAMS
  •   Conky
  •   Sublime Text
  • Филтриране на спам със SpamAssassin

    Вече има работещ сървър но проблема със спама си остава. Единия от вариантите е да се четат списъци с IP адреси които са забранени (RBLs). Проблема обаче е, че ако го няма адреса в този списък то не означава, че не генерира спам. На помощ идва SpamAssasin. Той поддържа евристични методи за анализ на заглавието и текста в тялото на писмото, филтри по Bayesian, DNS блокиращ списък и съвместни бази данни за филтриране. Той е основан на Perl скрипт. С инсталацията идва и над 60 добавки помагащи да изчистят спама. Инсталацията му е следната:

    # apt-get install spamassassin -su: 101: /usr/share/bash-completion/bash_completion: Syntax error: "(" unexpected (expecting "}") dpkg: error processing package spamassassin (--configure): subprocess installed post-installation script returned error exit status 2 dpkg: dependency problems prevent configuration of sa-compile: sa-compile depends on spamassassin; however: Package spamassassin is not configured yet. dpkg: error processing package sa-compile (--configure): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.24-11+deb9u4) ... Processing triggers for systemd (232-25+deb9u11) ... Errors were encountered while processing: spamassassin sa-compile E: Sub-process /usr/bin/dpkg returned an error code (1)

    Това е така защото spamassassin се мъче да създаде потребител debian-spamd, който да ползва щел /bin/sh. Това няма да се получи, тъй като ние ползваме /bin/bash. Да оправим грешката:

    # vipw # Търсим реда: debian-spamd:x:112:118::/var/lib/spamassassin:/bin/sh # Поправяме го на: debian-spamd:x:112:118::/var/lib/spamassassin:/bin/bash


    Да поправим грешката:

    # dpkg --configure -a Setting up spamassassin (3.4.2-1~deb9u1) ... Setting up sa-compile (3.4.2-1~deb9u1) ... Running sa-compile (may take a long time)


    Всичко е наред, да продължим със spamass-milter

    # apt-get install spamass-milter

    Активиране на спам сканиране със 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:

    # vi /etc/default/spamassassin # Търсим реда: ENABLED=0 # Заменяме го с: ENABLED=1 # Търсим реда: OPTIONS="--create-prefs --max-children 5 --helper-home-dir" # Заменяме го с: OPTIONS="--create-prefs --max-children 5 --helper-home-dir -x -u vmail" # Търсим реда: CRON=0 # Заменяме го с: CRON=1

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

    # 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


    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 debian-spamd debian-spamd : debian-spamd


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

    # service spamassassin restart # service spamass-milter restart # 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 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:

    # apt-get install swaks # swaks --to tachko@home.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt # vi /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

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


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

    # mkdir /etc/dovecot/sieve-after


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

    # vi /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@home.tlan.net --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

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


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

    # vi /etc/dovecot/conf.d/15-mailboxes.conf # If you have a virtual "Flagged" mailbox: #mailbox virtual/Flagged { # special_use = \Flagged # comment = All my flagged messages #} mailbox INBOX.Junk { auto = subscribe special_use = \Junk autoexpunge = 30d } mailbox INBOX.Trash { auto = subscribe 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 писма на ден то има по добър нчин но в следващата статия.