<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Mailserver_mit_Rspamd%2C_ClamAV_und_DKIM</id>
	<title>Mailserver mit Rspamd, ClamAV und DKIM - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Mailserver_mit_Rspamd%2C_ClamAV_und_DKIM"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Mailserver_mit_Rspamd,_ClamAV_und_DKIM&amp;action=history"/>
	<updated>2026-07-07T19:10:51Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Mailserver_mit_Rspamd,_ClamAV_und_DKIM&amp;diff=70884&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Mailserver komplett =  = Installation = ;Pakete installieren *apt update *apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils *apt install…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Mailserver_mit_Rspamd,_ClamAV_und_DKIM&amp;diff=70884&amp;oldid=prev"/>
		<updated>2026-06-09T14:57:10Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Mailserver komplett =  = Installation = ;Pakete installieren *apt update *apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils *apt install…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Mailserver komplett =&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
;Pakete installieren&lt;br /&gt;
*apt update&lt;br /&gt;
*apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils&lt;br /&gt;
*apt install rspamd redis clamav clamav-daemon&lt;br /&gt;
*apt install roundcube roundcube-core php-net-smtp&lt;br /&gt;
&lt;br /&gt;
;Bei der Postfix-Abfrage '''Internet Site''' wählen&lt;br /&gt;
&lt;br /&gt;
= Benutzer anlegen =&lt;br /&gt;
*useradd -m -s /bin/bash martha&lt;br /&gt;
*useradd -m -s /bin/bash leroy&lt;br /&gt;
*passwd martha&lt;br /&gt;
*passwd leroy&lt;br /&gt;
&lt;br /&gt;
;Maildir-Struktur für neue Benutzer&lt;br /&gt;
*mkdir -p /etc/skel/Maildir/{cur,new,tmp}&lt;br /&gt;
&lt;br /&gt;
;Für bestehende Benutzer&lt;br /&gt;
*mkdir -p /home/martha/Maildir/{cur,new,tmp}&lt;br /&gt;
*mkdir -p /home/leroy/Maildir/{cur,new,tmp}&lt;br /&gt;
&lt;br /&gt;
= Zertifikate =&lt;br /&gt;
;Privkey und Zertifikat erstellen und ablegen unter&lt;br /&gt;
*/etc/ssl/own.crt&lt;br /&gt;
*/etc/ssl/own.key&lt;br /&gt;
&lt;br /&gt;
= Postfix =&lt;br /&gt;
&lt;br /&gt;
== /etc/postfix/main.cf ==&lt;br /&gt;
*vi /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)&lt;br /&gt;
biff = no&lt;br /&gt;
append_dot_mydomain = no&lt;br /&gt;
compatibility_level = 3.6&lt;br /&gt;
&lt;br /&gt;
# TLS&lt;br /&gt;
smtpd_tls_cert_file=/etc/ssl/own.crt&lt;br /&gt;
smtpd_tls_key_file=/etc/ssl/own.key&lt;br /&gt;
smtpd_tls_security_level=may&lt;br /&gt;
smtp_tls_CApath=/etc/ssl/certs&lt;br /&gt;
smtp_tls_security_level=may&lt;br /&gt;
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache&lt;br /&gt;
&lt;br /&gt;
# Relay&lt;br /&gt;
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination&lt;br /&gt;
&lt;br /&gt;
myhostname = mail.it213.int&lt;br /&gt;
myorigin = it213.int&lt;br /&gt;
alias_maps = hash:/etc/aliases&lt;br /&gt;
alias_database = hash:/etc/aliases&lt;br /&gt;
mydestination = $myhostname, localhost, it213.int&lt;br /&gt;
relayhost =&lt;br /&gt;
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128&lt;br /&gt;
mailbox_size_limit = 0&lt;br /&gt;
recipient_delimiter = +&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = all&lt;br /&gt;
&lt;br /&gt;
# Maildir&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
mailbox_command =&lt;br /&gt;
&lt;br /&gt;
# SASL über Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
&lt;br /&gt;
# Rspamd Milter&lt;br /&gt;
smtpd_milters = inet:127.0.0.1:11332&lt;br /&gt;
non_smtpd_milters = inet:127.0.0.1:11332&lt;br /&gt;
milter_default_action = accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== /etc/postfix/master.cf ==&lt;br /&gt;
;SMTPS auf Port 465 aktivieren – mit Milter&lt;br /&gt;
*vi /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
smtps     inet  n       -       y       -       -       smtpd&lt;br /&gt;
  -o smtpd_tls_wrappermode=yes&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_milters=inet:127.0.0.1:11332&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Ohne die -o smtpd_milters Zeile ruft Postfix Rspamd für Roundcube-Mails (Port 465) nicht auf – DKIM-Signing findet dann nicht statt&lt;br /&gt;
&lt;br /&gt;
= Dovecot =&lt;br /&gt;
&lt;br /&gt;
== /etc/dovecot/conf.d/10-mail.conf ==&lt;br /&gt;
*vi /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_driver = maildir&lt;br /&gt;
mail_home = /home/%{user | username}&lt;br /&gt;
mail_path = %{home}/Maildir&lt;br /&gt;
namespace inbox {&lt;br /&gt;
  inbox = yes&lt;br /&gt;
}&lt;br /&gt;
mail_privileged_group = mail&lt;br /&gt;
protocol !indexer-worker {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== /etc/dovecot/conf.d/10-ssl.conf ==&lt;br /&gt;
*vi /etc/dovecot/conf.d/10-ssl.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssl = yes&lt;br /&gt;
ssl_server_cert_file = /etc/ssl/own.crt&lt;br /&gt;
ssl_server_key_file = /etc/ssl/own.key&lt;br /&gt;
ssl_min_protocol = TLSv1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== /etc/dovecot/conf.d/10-master.conf ==&lt;br /&gt;
*vi /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service imap-login {&lt;br /&gt;
  inet_listener imap { }&lt;br /&gt;
  inet_listener imaps { }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
service lmtp {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/dovecot-lmtp {&lt;br /&gt;
    mode = 0600&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
service auth-worker {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Rspamd =&lt;br /&gt;
&lt;br /&gt;
== Redis ==&lt;br /&gt;
*systemctl enable --now redis&lt;br /&gt;
&lt;br /&gt;
== /etc/rspamd/local.d/redis.conf ==&lt;br /&gt;
*vi /etc/rspamd/local.d/redis.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
servers = &amp;quot;127.0.0.1:6379&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DKIM Key generieren ==&lt;br /&gt;
*mkdir -p /etc/rspamd/dkim&lt;br /&gt;
*rspamadm dkim_keygen -b 2048 -s mail -d it213.int -k /etc/rspamd/dkim/mail.key&lt;br /&gt;
*chown -R _rspamd:_rspamd /etc/rspamd/dkim&lt;br /&gt;
*chmod 600 /etc/rspamd/dkim/mail.key&lt;br /&gt;
&lt;br /&gt;
;DNS-Eintrag auslesen&lt;br /&gt;
*cat /etc/rspamd/dkim/mail.txt&lt;br /&gt;
&lt;br /&gt;
;In der DNS-Zone eintragen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail._domainkey IN TXT &amp;quot;v=DKIM1; k=rsa; p=&amp;lt;public key&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Prüfen&lt;br /&gt;
*dig TXT mail._domainkey.it213.int&lt;br /&gt;
&lt;br /&gt;
== /etc/rspamd/local.d/dkim_signing.conf ==&lt;br /&gt;
*vi /etc/rspamd/local.d/dkim_signing.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enabled = true;&lt;br /&gt;
&lt;br /&gt;
domain {&lt;br /&gt;
  it213.int {&lt;br /&gt;
    selector = &amp;quot;mail&amp;quot;;&lt;br /&gt;
    path = &amp;quot;/etc/rspamd/dkim/mail.key&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
use_domain = &amp;quot;header&amp;quot;;&lt;br /&gt;
allow_username_mismatch = true;&lt;br /&gt;
sign_authenticated = true;&lt;br /&gt;
sign_local = true;&lt;br /&gt;
sign_inbound = false;&lt;br /&gt;
use_esld = true;&lt;br /&gt;
check_pubkey = true;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;allow_username_mismatch = true ist notwendig wenn SASL-User ohne Domain-Suffix authentifiziert werden (z.B. '''martha''' statt '''martha@it213.int''')&lt;br /&gt;
&lt;br /&gt;
== ClamAV ==&lt;br /&gt;
*systemctl enable --now clamav-daemon&lt;br /&gt;
*freshclam&lt;br /&gt;
&lt;br /&gt;
== /etc/rspamd/override.d/antivirus.conf ==&lt;br /&gt;
*vi /etc/rspamd/override.d/antivirus.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enabled = true;&lt;br /&gt;
&lt;br /&gt;
clamav {&lt;br /&gt;
  type = &amp;quot;clamav&amp;quot;;&lt;br /&gt;
  symbol = &amp;quot;CLAM_VIRUS&amp;quot;;&lt;br /&gt;
  servers = &amp;quot;/var/run/clamav/clamd.ctl&amp;quot;;&lt;br /&gt;
  scan_text_mime = true;&lt;br /&gt;
  scan_mime_parts = true;&lt;br /&gt;
  min_size = 0;&lt;br /&gt;
  scan_unauthenticated = true;&lt;br /&gt;
  stream = true;&lt;br /&gt;
  score = 20.0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Roundcube =&lt;br /&gt;
&lt;br /&gt;
== /var/www/roundcube/config/config.inc.php ==&lt;br /&gt;
*vi /var/www/roundcube/config/config.inc.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$config['imap_host'] = 'ssl://mail.it213.int:993';&lt;br /&gt;
$config['smtp_host'] = 'ssl://mail.it213.int:465';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dienste starten =&lt;br /&gt;
*systemctl restart postfix&lt;br /&gt;
*systemctl restart dovecot&lt;br /&gt;
*systemctl restart rspamd&lt;br /&gt;
*systemctl restart clamav-daemon&lt;br /&gt;
&lt;br /&gt;
= Kontrolle =&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
*ss -4lntp | egrep &amp;quot;25|465|993|143&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== DKIM ==&lt;br /&gt;
;Nach dem Versand einer Mail prüfen ob der DKIM-Signature Header gesetzt ist&lt;br /&gt;
*grep DKIM_SIGNED /var/log/rspamd/rspamd.log | tail -5&lt;br /&gt;
&lt;br /&gt;
== Rspamd Webinterface ==&lt;br /&gt;
*http://mail.it213.int:11334&lt;br /&gt;
&lt;br /&gt;
= Logging =&lt;br /&gt;
*journalctl -f -u postfix&lt;br /&gt;
*tail -f /var/log/rspamd/rspamd.log&lt;br /&gt;
*tail -f /var/log/mail.log&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>