Skip to content

Installation und Einrichtung von Rspamd (Debian/Ubuntu)

Zuerst fügen wir das Repository von Rspamd mit dem folgenden Befehl zu Ihren apt-Quellen hinzu.

wget -O- https://rspamd.com/apt-stable/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/rspamd.gpg] http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | \
    tee -a /etc/apt/sources.list.d/rspamd.list

Dann aktualisieren wir den Apt-Cache und installieren rspamd wie folgt.

apt update && apt install rspamd

Die Datei /etc/rspamd/local.d/worker-normal.inc enthält Informationen über den Port, auf dem Rspamd lauscht. Der Standardport ist 11333. Wir binden ihn an unseren lokalen Host, indem wir der Datei die folgende Zeile hinzufügen.

cat <<CONF | tee /etc/rspamd/local.d/worker-normal.inc >/dev/null
bind_socket = "127.0.0.1:11333";
CONF

Nun konfigurieren wir einen Proxy zwischen Postfix und Rspamd, der Port 11332 überwacht und als Milter für die Kommunikation zwischen den beiden Tools fungiert. Wie bearbeiten die Datei /etc/rspamd/local.d/worker-proxy.inc wie folgt.

cat <<CONF | tee /etc/rspamd/local.d/worker-proxy.inc >/dev/null
bind_socket = "127.0.0.1:11332";
CONF

Nun legen wir ein Passwort für den Worker fest. Um ein verschlüsseltes Passwort zu generieren, führen wir den folgenden Befehl aus.

rspamadm pw --encrypt -p your_secret_password
$2$93qin9nkifzjpr7taqhs9guua888tnny$dnys6um6xm1gb1amgnz9hocuz7grxuk5z9yjw87psrk6yu641oiy

Dann bearbeiten wir die Datei /etc/rspamd/local.d/worker-controller.inc und geben das verschlüsselte Passwort ein.

cat <<CONF | tee /etc/rspamd/local.d/worker-controller.inc >/dev/null
# Web UI Passwort (hashed)
password = "$2$q46exb84f7yh7359bcem1sd71xsott15$yhm6fu5iep8u3jwq3faqyfc6k71hbtapjh4ceoqkykqbgegsxjgb";

# Bind nur lokal
bind_socket = "127.0.0.1:11334";

# sichere IP für passwortlosen Zugriff
secure_ip = "127.0.0.1";
CONF

Nun konfigurieren wir Redis für die Verwendung mit rspamd, indem wir die Datei /etc/rspamd/local.d/classifier-bayes.conf bearbeiten,

cat <<CONF | tee /etc/rspamd/local.d/classifier-bayes.conf >/dev/null
servers = "127.0.0.1";
backend = "redis";
CONF

Dann setzen wir die milter headers in der Datei /etc/rspamd/local.d/milter_headers.conf wie folgt.

cat <<CONF | tee /etc/rspamd/local.d/milter_headers.conf >/dev/null
use = ["x-spamd-bar", "x-spam-level", "authentication-results"];
CONF

Nun können wir den rspamd Daemon neu starten.

systemctl restart rspamd

Nun erstellen wir uns einen VirtualHost Datei wie z.B. /etc/apache2/sites-available/rspamd.example.com.conf. Dieser Schnipzel zeigt nur die Proxy Konfiguration des Apache Webservers. Zu beachten ist, dass <rspamd.example.com> mit den korrekten Namen ausgetauscht wird.

    <IfModule mod_proxy.c>
        ProxyRequests Off
        ProxyPreserveHost On
        #RequestHeader unset Accept-Encoding
        #RequestHeader set X-Forwarded-Proto "https"
        #RequestHeader set X-Forwarded-Port "443"
        <Proxy *>
            Require all granted
        </Proxy>
        ProxyPass / http://localhost:11334/
        ProxyPassReverse / http://localhost:11334/
        ProxyPassReverseCookieDomain 127.0.0.1 <rspamd.example.com>
    </IfModule>

Wir aktivieren nun die neue VirtualHost Datei und starten den Apache Webserver neu.

a2ensite rspamd.example.com.conf && systemctl restart apache2

Um Rspamd mit Postfix zu verwenden, muss die Konfiguration mit postconf wie folgt aktualisiert werden.

postconf -e "milter_protocol = 6"
postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
postconf -e "milter_default_action = accept"
postconf -e "smtpd_milters = inet:127.0.0.1:11332"
postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"

Dann starten wir postfix neu, damit die Änderungen wirksam werden.

systemctl restart postfix