Add local rspamd and redis to the mail edge gateway (#553)
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
Edge gateways need cheap deterministic in-session filtering behind the postfix milter, with no AI and no ClamAV on 1GB VMs. - add a signature-checked rspamd yum repo via artifactapi, enabled for the gateway role - add profiles::rspamd::edge managing the package and local.d files from hiera - fetch rule files without blocking the service: empty placeholder, swap only on a successful changed fetch, then reload - run a self-scanning milter proxy on 11332; reject at 13, header at 6, no greylisting, subject rewrite or gpt - add a local 128MB redis for bayes autolearn; load SpamAssassin rules from rspamd-rules - bypass rspamd for mail relayed out by the smarthost Stacked on #552; requires terraform-artifactapi #63 applied first. Reviewed-on: #553 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
This commit was merged in pull request #553.
This commit is contained in:
@@ -1,4 +1,58 @@
|
||||
---
|
||||
hiera_include:
|
||||
- redis
|
||||
|
||||
profiles::yum::global::repos:
|
||||
rspamd:
|
||||
ensure: present
|
||||
|
||||
# local redis for rspamd bayes and history; bayes tokens carry a ttl so volatile-ttl can evict
|
||||
redis::maxmemory: '128mb'
|
||||
redis::maxmemory_policy: 'volatile-ttl'
|
||||
|
||||
# local rspamd, deterministic checks only; module defaults cover spf/dkim/dmarc/arc/rbl/phishing/mime_types/fuzzy_check
|
||||
profiles::rspamd::edge::rules:
|
||||
edge.cf: 'https://git.unkin.net/unkin/rspamd-rules/raw/branch/main/edge.cf'
|
||||
profiles::rspamd::edge::local_d:
|
||||
worker-proxy.inc: |
|
||||
bind_socket = "127.0.0.1:11332";
|
||||
milter = yes;
|
||||
timeout = 120s;
|
||||
count = 1;
|
||||
upstream "local" {
|
||||
default = yes;
|
||||
self_scan = yes;
|
||||
}
|
||||
worker-normal.inc: |
|
||||
enabled = false;
|
||||
redis.conf: |
|
||||
servers = "127.0.0.1:6379";
|
||||
actions.conf: |
|
||||
reject = 13;
|
||||
add_header = 6;
|
||||
rewrite_subject = null;
|
||||
greylist = null;
|
||||
greylist.conf: |
|
||||
enabled = false;
|
||||
gpt.conf: |
|
||||
enabled = false;
|
||||
classifier-bayes.conf: |
|
||||
backend = "redis";
|
||||
expire = 8640000;
|
||||
autolearn {
|
||||
spam_threshold = 6.0;
|
||||
ham_threshold = -0.5;
|
||||
check_balance = true;
|
||||
}
|
||||
spamassassin.conf: |
|
||||
ruleset = "/etc/rspamd/rules/*.cf";
|
||||
alpha = 0.1;
|
||||
settings.conf: |
|
||||
smarthost_outbound {
|
||||
priority = high;
|
||||
ip = "103.216.191.185";
|
||||
want_spam = yes;
|
||||
}
|
||||
|
||||
# base postfix configuration (passed to postfix class)
|
||||
postfix::relayhost: 'direct'
|
||||
|
||||
Reference in New Issue
Block a user