Add anti-spam

Julien LepillerSun Jul 28 18:50:19+0200 2024

e70905c

Add anti-spam

modules/config/mail.scm

7171
table blacklist file:" blacklist-file "
7272
7373
# A simple spam filter
74+
filter check-rdns phase connect match !rdns disconnect \"550 no rDNS\"
7475
filter spam-filter phase mail-from match mail-from <blacklist> reject \"555 Your spam level is over NINE THOUSAND!\"
76+
filter rspamd proc-exec \"" opensmtpd-filter-rspamd "/libexec/opensmtpd/filter-rspamd\"
7577
7678
# port 25 is used only for receiving from external servers, and they may start a
7779
# TLS session if the want.
78-
listen on " interface " port 25 tls pki lepiller.eu filter spam-filter
80+
listen on " interface " port 25 tls pki lepiller.eu filter { check-rdns, spam-filter, rspamd }
7981
# For sending messages from outside of this server, you need to authenticate and
8082
# use TLS.
8183
listen on " interface " port 587 tls-require pki lepiller.eu mask-src auth <passwd>
8284
# Localhost is used by the .onion, so we use the same configuration for
8385
# local connections.
84-
listen on lo port 25 tls pki lepiller.eu filter spam-filter
86+
listen on lo port 25 tls pki lepiller.eu filter { check-rdns, spam-filter, rspamd }
8587
# Since incoming connection uses tor, we don't need tls, but still require
8688
# authentication; we're not a relay
8789
listen on lo port 587 tls pki lepiller.eu mask-src auth <passwd>

151153
                      (type 'domainkeys)
152154
                      (method "nofws")))))))))
153155
156+
(define (lepiller-rspamd-service)
157+
  (service rspamd-service-type))
158+
154159
(define* (lepiller-mail-services #:key interface domain)
155160
  (list
156161
    (lepiller-smtp-service interface domain)
157162
    (lepiller-imap-service domain)
158-
    (lepiller-dkim-service domain)))
163+
    (lepiller-dkim-service domain)
164+
    (lepiller-rspamd-service)))
159165