From bcc37dd49710f79b5795f2a896b9d1b29653e678 Mon Sep 17 00:00:00 2001 From: Jeff Moe Date: Sun, 1 Sep 2024 14:44:57 -0600 Subject: [PATCH] more rspam config --- .../locale/en/LC_MESSAGES/mail-libre-is.po | 179 ++++++++++++------ docs/_source/mail-libre-is.rst | 131 +++++++++++++ 2 files changed, 254 insertions(+), 56 deletions(-) diff --git a/docs/_source/locale/en/LC_MESSAGES/mail-libre-is.po b/docs/_source/locale/en/LC_MESSAGES/mail-libre-is.po index c96e76c..1775679 100644 --- a/docs/_source/locale/en/LC_MESSAGES/mail-libre-is.po +++ b/docs/_source/locale/en/LC_MESSAGES/mail-libre-is.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Libre Developers Documentation 0\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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -62,7 +62,7 @@ msgstr "" msgid "MariaDB" 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" msgstr "" @@ -70,7 +70,7 @@ msgstr "" msgid "``_" 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" msgstr "" @@ -90,7 +90,7 @@ msgstr "" msgid "``_" 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" msgstr "" @@ -267,6 +267,7 @@ msgid "Edit /etc/postfix/master.cf and change thusly:" msgstr "" #: ../../../_source/mail-libre-is.rst:412 +#: ../../../_source/mail-libre-is.rst:539 msgid "Run:" msgstr "" @@ -298,147 +299,213 @@ msgstr "" msgid "Configure postfix for rspamd." msgstr "" -#: ../../../_source/mail-libre-is.rst:463 -msgid "Administration" +#: ../../../_source/mail-libre-is.rst:461 +msgid "Edit /etc/rspamd/override.d/milter_headers.conf and add:" msgstr "" -#: ../../../_source/mail-libre-is.rst:464 -msgid "Now that everything is working..." +#: ../../../_source/mail-libre-is.rst:467 +msgid "Edit /etc/dovecot/conf.d/90-sieve.conf and change:" msgstr "" -#: ../../../_source/mail-libre-is.rst:466 -msgid "Log into the database using the mailadmin databse password:" +#: ../../../_source/mail-libre-is.rst:473 +msgid "Create dir for new sieve filter:" msgstr "" -#: ../../../_source/mail-libre-is.rst:474 -msgid "List Virtual Domains" -msgstr "" - -#: ../../../_source/mail-libre-is.rst:482 -msgid "List Virtual Users" +#: ../../../_source/mail-libre-is.rst:479 +msgid "Create /etc/dovecot/sieve-after/spam-to-folder.sieve with these contents:" msgstr "" #: ../../../_source/mail-libre-is.rst:490 -msgid "List Virtual Aliases" +msgid "Then compile it:" msgstr "" -#: ../../../_source/mail-libre-is.rst:498 -msgid "Add Virtual Domain" +#: ../../../_source/mail-libre-is.rst:496 +msgid "Set up redis by adding /etc/rspamd/override.d/redis.conf with this:" msgstr "" -#: ../../../_source/mail-libre-is.rst:500 -msgid "Add the domain:" +#: ../../../_source/mail-libre-is.rst:502 +msgid "Add this /etc/rspamd/override.d/classifier-bayes.conf with below contents:" msgstr "" #: ../../../_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" msgstr "" -#: ../../../_source/mail-libre-is.rst:509 +#: ../../../_source/mail-libre-is.rst:663 msgid "Generate a password with dovecot:" msgstr "" -#: ../../../_source/mail-libre-is.rst:515 +#: ../../../_source/mail-libre-is.rst:669 msgid "" "Log into database as mailadmin and run this command, using the dovecot " "generated password string, and set the domain and user email." msgstr "" -#: ../../../_source/mail-libre-is.rst:518 +#: ../../../_source/mail-libre-is.rst:672 msgid "Note, upstream docs are missing \"(\" and \")\" for VALUES." msgstr "" -#: ../../../_source/mail-libre-is.rst:528 +#: ../../../_source/mail-libre-is.rst:682 msgid "Add a User Alias" msgstr "" -#: ../../../_source/mail-libre-is.rst:529 +#: ../../../_source/mail-libre-is.rst:683 msgid "" "Example to add an alias. The first email should be the alias, the second " "email is where it should go to." msgstr "" -#: ../../../_source/mail-libre-is.rst:540 +#: ../../../_source/mail-libre-is.rst:694 msgid "Change a User Password" msgstr "" -#: ../../../_source/mail-libre-is.rst:541 +#: ../../../_source/mail-libre-is.rst:695 msgid "Generate string for new password:" msgstr "" -#: ../../../_source/mail-libre-is.rst:547 +#: ../../../_source/mail-libre-is.rst:701 msgid "Use that string:" msgstr "" -#: ../../../_source/mail-libre-is.rst:555 +#: ../../../_source/mail-libre-is.rst:709 msgid "Delete Virtual Domain" msgstr "" -#: ../../../_source/mail-libre-is.rst:563 +#: ../../../_source/mail-libre-is.rst:717 msgid "Delete User" msgstr "" -#: ../../../_source/mail-libre-is.rst:571 +#: ../../../_source/mail-libre-is.rst:725 msgid "Delete Alias" msgstr "" -#: ../../../_source/mail-libre-is.rst:579 -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 +#: ../../../_source/mail-libre-is.rst:733 msgid "Email Client Setup" msgstr "" -#: ../../../_source/mail-libre-is.rst:603 +#: ../../../_source/mail-libre-is.rst:734 msgid "Set up mail clients thusly." msgstr "" -#: ../../../_source/mail-libre-is.rst:607 +#: ../../../_source/mail-libre-is.rst:738 msgid "Thunderbird" msgstr "" -#: ../../../_source/mail-libre-is.rst:608 +#: ../../../_source/mail-libre-is.rst:739 msgid "Example email Address: username@libre.is" msgstr "" -#: ../../../_source/mail-libre-is.rst:629 +#: ../../../_source/mail-libre-is.rst:760 msgid "Other" msgstr "" -#: ../../../_source/mail-libre-is.rst:630 +#: ../../../_source/mail-libre-is.rst:761 msgid "Perhaps these too." msgstr "" -#: ../../../_source/mail-libre-is.rst:637 +#: ../../../_source/mail-libre-is.rst:768 msgid "Perhaps easier to admin with this script." msgstr "" -#: ../../../_source/mail-libre-is.rst:639 +#: ../../../_source/mail-libre-is.rst:770 msgid "``_" msgstr "" -#: ../../../_source/mail-libre-is.rst:652 +#: ../../../_source/mail-libre-is.rst:783 msgid "Requires database setup." msgstr "" -#: ../../../_source/mail-libre-is.rst:661 +#: ../../../_source/mail-libre-is.rst:792 msgid "SPF" msgstr "" -#: ../../../_source/mail-libre-is.rst:662 +#: ../../../_source/mail-libre-is.rst:793 msgid "Set up SPF." msgstr "" -#: ../../../_source/mail-libre-is.rst:667 +#: ../../../_source/mail-libre-is.rst:798 msgid "Set up DNS." msgstr "" diff --git a/docs/_source/mail-libre-is.rst b/docs/_source/mail-libre-is.rst index 3c59a10..2ce7da0 100644 --- a/docs/_source/mail-libre-is.rst +++ b/docs/_source/mail-libre-is.rst @@ -458,6 +458,137 @@ Configure postfix for rspamd. 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}" +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 ========