more rspam config

This commit is contained in:
Jeff Moe 2024-09-01 14:44:57 -06:00
parent 3aa5f0e89d
commit bcc37dd497
2 changed files with 254 additions and 56 deletions

View file

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Libre Developers Documentation 0\n" "Project-Id-Version: Libre Developers Documentation 0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-01 14:19-0600\n" "POT-Creation-Date: 2024-09-01 14:44-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@ -62,7 +62,7 @@ msgstr ""
msgid "MariaDB" msgid "MariaDB"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:28 ../../../_source/mail-libre-is.rst:643 #: ../../../_source/mail-libre-is.rst:28 ../../../_source/mail-libre-is.rst:774
msgid "OpenDKIM" msgid "OpenDKIM"
msgstr "" msgstr ""
@ -70,7 +70,7 @@ msgstr ""
msgid "`<http://www.opendkim.org/>`_" msgid "`<http://www.opendkim.org/>`_"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:32 ../../../_source/mail-libre-is.rst:651 #: ../../../_source/mail-libre-is.rst:32 ../../../_source/mail-libre-is.rst:782
msgid "OpenDMARC" msgid "OpenDMARC"
msgstr "" msgstr ""
@ -90,7 +90,7 @@ msgstr ""
msgid "`<https://www.postfix.org/>`_" msgid "`<https://www.postfix.org/>`_"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:44 ../../../_source/mail-libre-is.rst:666 #: ../../../_source/mail-libre-is.rst:44 ../../../_source/mail-libre-is.rst:797
msgid "DNS" msgid "DNS"
msgstr "" msgstr ""
@ -267,6 +267,7 @@ msgid "Edit /etc/postfix/master.cf and change thusly:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:412 #: ../../../_source/mail-libre-is.rst:412
#: ../../../_source/mail-libre-is.rst:539
msgid "Run:" msgid "Run:"
msgstr "" msgstr ""
@ -298,147 +299,213 @@ msgstr ""
msgid "Configure postfix for rspamd." msgid "Configure postfix for rspamd."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:463 #: ../../../_source/mail-libre-is.rst:461
msgid "Administration" msgid "Edit /etc/rspamd/override.d/milter_headers.conf and add:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:464 #: ../../../_source/mail-libre-is.rst:467
msgid "Now that everything is working..." msgid "Edit /etc/dovecot/conf.d/90-sieve.conf and change:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:466 #: ../../../_source/mail-libre-is.rst:473
msgid "Log into the database using the mailadmin databse password:" msgid "Create dir for new sieve filter:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:474 #: ../../../_source/mail-libre-is.rst:479
msgid "List Virtual Domains" msgid "Create /etc/dovecot/sieve-after/spam-to-folder.sieve with these contents:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:482
msgid "List Virtual Users"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:490 #: ../../../_source/mail-libre-is.rst:490
msgid "List Virtual Aliases" msgid "Then compile it:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:498 #: ../../../_source/mail-libre-is.rst:496
msgid "Add Virtual Domain" msgid "Set up redis by adding /etc/rspamd/override.d/redis.conf with this:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:500 #: ../../../_source/mail-libre-is.rst:502
msgid "Add the domain:" msgid "Add this /etc/rspamd/override.d/classifier-bayes.conf with below contents:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:508 #: ../../../_source/mail-libre-is.rst:508
msgid "Add /etc/rspamd/local.d/classifier-bayes.conf with:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:514
msgid "Edit /etc/dovecot/conf.d/20-imap.conf and change:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:520
msgid ""
"Edit /etc/dovecot/conf.d/90-sieve.conf and add below to \"plugins\" "
"section:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:545
msgid "Create /etc/dovecot/sieve/learn-spam.sieve with contents:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:552
msgid "Create /etc/dovecot/sieve/learn-ham.sieve and add:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:562
msgid "Run this to compile:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:571
msgid "Create /etc/dovecot/sieve/rspamd-learn-spam.sh with contents:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:578
msgid "Create /etc/dovecot/sieve/rspamd-learn-ham.sh with contents:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:585
msgid "Set ownership and permissions on scripts:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:594
msgid "Firewall"
msgstr ""
#: ../../../_source/mail-libre-is.rst:595
msgid "Open TCP ports."
msgstr ""
#: ../../../_source/mail-libre-is.rst:597
msgid "Confirm open sieve..."
msgstr ""
#: ../../../_source/mail-libre-is.rst:617
msgid "Administration"
msgstr ""
#: ../../../_source/mail-libre-is.rst:618
msgid "Now that everything is working..."
msgstr ""
#: ../../../_source/mail-libre-is.rst:620
msgid "Log into the database using the mailadmin databse password:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:628
msgid "List Virtual Domains"
msgstr ""
#: ../../../_source/mail-libre-is.rst:636
msgid "List Virtual Users"
msgstr ""
#: ../../../_source/mail-libre-is.rst:644
msgid "List Virtual Aliases"
msgstr ""
#: ../../../_source/mail-libre-is.rst:652
msgid "Add Virtual Domain"
msgstr ""
#: ../../../_source/mail-libre-is.rst:654
msgid "Add the domain:"
msgstr ""
#: ../../../_source/mail-libre-is.rst:662
msgid "Add a Mail User" msgid "Add a Mail User"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:509 #: ../../../_source/mail-libre-is.rst:663
msgid "Generate a password with dovecot:" msgid "Generate a password with dovecot:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:515 #: ../../../_source/mail-libre-is.rst:669
msgid "" msgid ""
"Log into database as mailadmin and run this command, using the dovecot " "Log into database as mailadmin and run this command, using the dovecot "
"generated password string, and set the domain and user email." "generated password string, and set the domain and user email."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:518 #: ../../../_source/mail-libre-is.rst:672
msgid "Note, upstream docs are missing \"(\" and \")\" for VALUES." msgid "Note, upstream docs are missing \"(\" and \")\" for VALUES."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:528 #: ../../../_source/mail-libre-is.rst:682
msgid "Add a User Alias" msgid "Add a User Alias"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:529 #: ../../../_source/mail-libre-is.rst:683
msgid "" msgid ""
"Example to add an alias. The first email should be the alias, the second " "Example to add an alias. The first email should be the alias, the second "
"email is where it should go to." "email is where it should go to."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:540 #: ../../../_source/mail-libre-is.rst:694
msgid "Change a User Password" msgid "Change a User Password"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:541 #: ../../../_source/mail-libre-is.rst:695
msgid "Generate string for new password:" msgid "Generate string for new password:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:547 #: ../../../_source/mail-libre-is.rst:701
msgid "Use that string:" msgid "Use that string:"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:555 #: ../../../_source/mail-libre-is.rst:709
msgid "Delete Virtual Domain" msgid "Delete Virtual Domain"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:563 #: ../../../_source/mail-libre-is.rst:717
msgid "Delete User" msgid "Delete User"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:571 #: ../../../_source/mail-libre-is.rst:725
msgid "Delete Alias" msgid "Delete Alias"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:579 #: ../../../_source/mail-libre-is.rst:733
msgid "Firewall"
msgstr ""
#: ../../../_source/mail-libre-is.rst:580
msgid "Open TCP ports."
msgstr ""
#: ../../../_source/mail-libre-is.rst:582
msgid "Confirm open sieve..."
msgstr ""
#: ../../../_source/mail-libre-is.rst:602
msgid "Email Client Setup" msgid "Email Client Setup"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:603 #: ../../../_source/mail-libre-is.rst:734
msgid "Set up mail clients thusly." msgid "Set up mail clients thusly."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:607 #: ../../../_source/mail-libre-is.rst:738
msgid "Thunderbird" msgid "Thunderbird"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:608 #: ../../../_source/mail-libre-is.rst:739
msgid "Example email Address: username@libre.is" msgid "Example email Address: username@libre.is"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:629 #: ../../../_source/mail-libre-is.rst:760
msgid "Other" msgid "Other"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:630 #: ../../../_source/mail-libre-is.rst:761
msgid "Perhaps these too." msgid "Perhaps these too."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:637 #: ../../../_source/mail-libre-is.rst:768
msgid "Perhaps easier to admin with this script." msgid "Perhaps easier to admin with this script."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:639 #: ../../../_source/mail-libre-is.rst:770
msgid "`<https://github.com/cgzones/ispmail-userctl>`_" msgid "`<https://github.com/cgzones/ispmail-userctl>`_"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:652 #: ../../../_source/mail-libre-is.rst:783
msgid "Requires database setup." msgid "Requires database setup."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:661 #: ../../../_source/mail-libre-is.rst:792
msgid "SPF" msgid "SPF"
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:662 #: ../../../_source/mail-libre-is.rst:793
msgid "Set up SPF." msgid "Set up SPF."
msgstr "" msgstr ""
#: ../../../_source/mail-libre-is.rst:667 #: ../../../_source/mail-libre-is.rst:798
msgid "Set up DNS." msgid "Set up DNS."
msgstr "" msgstr ""

View file

@ -458,6 +458,137 @@ Configure postfix for rspamd.
sudo postconf non_smtpd_milters=inet:127.0.0.1:11332 sudo postconf non_smtpd_milters=inet:127.0.0.1:11332
sudo postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}" sudo postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}"
Edit /etc/rspamd/override.d/milter_headers.conf and add:
.. code-block:: cfg
extended_spam_headers = true;
Edit /etc/dovecot/conf.d/90-sieve.conf and change:
.. code-block:: cfg
sieve_after = /etc/dovecot/sieve-after
Create dir for new sieve filter:
.. code-block:: sh
sudo mkdir /etc/dovecot/sieve-after
Create /etc/dovecot/sieve-after/spam-to-folder.sieve with these contents:
.. code-block:: cfg
require ["fileinto"];
if header :contains "X-Spam" "Yes" {
fileinto "Junk";
stop;
}
Then compile it:
.. code-block:: sh
sudo sievec /etc/dovecot/sieve-after/spam-to-folder.sieve
Set up redis by adding /etc/rspamd/override.d/redis.conf with this:
.. code-block:: cfg
servers = "127.0.0.1";
Add this /etc/rspamd/override.d/classifier-bayes.conf with below contents:
.. code-block:: cfg
autolearn = [-5, 10];
Add /etc/rspamd/local.d/classifier-bayes.conf with:
.. code-block:: cfg
users_enabled = true;
Edit /etc/dovecot/conf.d/20-imap.conf and change:
.. code-block:: cfg
mail_plugins = $mail_plugins quota imap_sieve
Edit /etc/dovecot/conf.d/90-sieve.conf and add below to "plugins" section:
.. code-block:: cfg
# From elsewhere to Junk folder
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/etc/dovecot/sieve/learn-spam.sieve
# From Junk folder to elsewhere
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/etc/dovecot/sieve/learn-ham.sieve
sieve_pipe_bin_dir = /etc/dovecot/sieve
sieve_global_extensions = +vnd.dovecot.pipe
sieve_plugins = sieve_imapsieve sieve_extprograms
Run:
.. code-block:: sh
sudo mkdir /etc/dovecot/sieve
Create /etc/dovecot/sieve/learn-spam.sieve with contents:
.. code-block:: cfg
require ["vnd.dovecot.pipe", "copy", "imapsieve"];
pipe :copy "rspamd-learn-spam.sh";
Create /etc/dovecot/sieve/learn-ham.sieve and add:
.. code-block:: cfg
require ["vnd.dovecot.pipe", "copy", "imapsieve", "variables"];
if string "${mailbox}" "Trash" {
stop;
}
pipe :copy "rspamd-learn-ham.sh";
Run this to compile:
.. code-block:: sh
sudo sievec /etc/dovecot/sieve/learn-spam.sieve
sudo sievec /etc/dovecot/sieve/learn-ham.sieve
sudo chmod 600 /etc/dovecot/sieve/learn-{spam,ham}.{sieve,svbin}
sudo chown vmail:vmail /etc/dovecot/sieve/learn-{spam,ham}.{sieve,svbin}
Create /etc/dovecot/sieve/rspamd-learn-spam.sh with contents:
.. code-block:: cfg
#!/bin/sh
exec /usr/bin/rspamc learn_spam
Create /etc/dovecot/sieve/rspamd-learn-ham.sh with contents:
.. code-block:: cfg
#!/bin/sh
exec /usr/bin/rspamc learn_ham
Set ownership and permissions on scripts:
.. code-block:: sh
sudo chmod 700 /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
sudo chown vmail:vmail /etc/dovecot/sieve/rspamd-learn-{spam,ham}.sh
Firewall Firewall
======== ========