ansible-role-rspamd/README.md
2024-04-20 15:59:58 +02:00

105 lines
No EOL
2.5 KiB
Markdown

# rspamd
## configuration
```
rspamd:
redis: false
train_from_junk: false
dmarc_reporting:
enabled: false
local_configs: {}
```
### redis
configure redis and tell rspamd to use it:
```
redis:
instances:
- name: rspamd
socket_enabled: true
maxmemory: 200M
maxmemory_policy: volatile-ttl
- name: rspamd-bayes
socket_enabled: true
maxmemory: 500M
maxmemory_policy: volatile-ttl
- name: rspamd-fuzzy
socket_enabled: true
maxmemory: 200M
maxmemory_policy: volatile-ttl
rspamd:
redis: true
```
### milter
add rspamd to your smtpd_milters:
```
postfix:
smtpd_milters:
- "inet:localhost:11332"
```
## dkim signing
rspamd can sign outgoing mails with dkim. the following steps are necessary:
* create a keypair: `rspamadm dkim_keygen -d <domain> -s <selector>`
* domain should be the domain you want to sign mails for
* selector should be an unique identifier, for example: 2021020801
* add dns record
* create private key file at `/var/lib/rspamd/dkim/<domain>.<selector>.key`
* `chown _rspamd /var/lib/rspamd/dkim/*`
* `chmod u=r,go= /var/lib/rspamd/dkim/*`
* create/update selector in `/etc/rspamd/dkim_selectors.map`: `<domain> <selector>`
## dmarc reporting
rspamd can be instructed to send dmarc reports:
```
rspamd:
dmarc_reporting:
enabled: true # Enable reports in general
email: 'dmarc-reports-noreply@example.de' # Source of DMARC reports
domain: 'example.de' # Domain to serve
org_name: 'example' # Organisation
# Optional parameters
bcc_addrs: # additional addresses to copy on reports
- "postmaster@example.de"
report_local_controller: false # Store reports for local/controller scans (for testing only)
helo: 'rspamd.localhost' # Helo used in SMTP dialog
smtp: '127.0.0.1' # SMTP server IP
smtp_port: 25 # SMTP server port
from_name: 'rspamd' # SMTP FROM
msgid_from: 'rspamd' # Msgid format
max_entries: 1000
keys_expire: 172800 # 2 days
```
## spam learning
To train ham/spam from move actions from/to junk folder, `imap_sieve` needs to be enabled in dovecot.
```
rspamd:
train_from_junk: true
```
## writing manual rules
example:
```
files:
"/etc/rspamd/local.d/rspamd.lua":
owner: _rspamd
group: root
mode: "0640"
content: |
-- Generica
config['regexp']['SUBJECT_GENERICA'] = {
re = 'Subject=/Die besten Generica/Hu',
description = 'Subject contains "Die besten Generica"',
score = 13.37,
group = 'headers'
}
```