Für Informationen zu Mail für Endanwender siehe: Mail
Hinweise zur Installation eines Servers sind zu finden unter: https://wiki.pinneberg.freifunk.net/mail
Public Key Verfahren
Vorarbeiten
apt-get install opendkim opendkim-tools mkdir /etc/opendkim chmod 750 /etc/opendkim chown opendkim:opendkim /etc/opendkim mkdir /etc/opendkim/keys chmod 700 /etc/opendkim/keys chown opendkim:opendkim /etc/opendkim/keys
Schlüssel erstellen
cd /etc/opendkim/keys opendkim-genkey -d example.com -b 2048 -r -s 202410
Tabellen anlegen
cd /etc/opendkim touch trusted key.table signing.table chmod 640 trusted key.table signing.table
DNS-Server: Zonendatei anpassen
youselector._domainkey.yourdomain.com yourdomain.com:selector:/etc/opendkim/keys/domain.private
Postfix-Integration
opendkim-Socket innerhalb des Postfix-Jails sollte oben schon geschehen sein.
adduser postfix opendkim mkdir -m o-rwx /var/spool/postfix/opendkim chown opendkim: /var/spool/postfix/opendkim
smtpd_milters = unix:opendkim/opendkim.sock milter_default_action = accept
Im Standard wird die Zustellung von Mails mit von Postfix übernommen
mailbox_command =
Um erweiterte Funktionen wie z.B. Indexerstellung bei Zustelling, Filterregeln mit Sieve und Quota-Beachtung zu erhalten, kann der Dovecot-Delivery-Agent verwendet werden.
mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
Es wird postgrey
mit Socket verwendet, weil dieser weniger Overhead hat als den ganzen IP-Stack auf localhost. Siehe https://postgrey.schweikert.ch/.
POSTGREY_OPTS="--unix=/var/spool/postfix/postgrey/socket --whitelist-clients=/etc/postgrey/whitelist_clients.local"
# Local Whitelist 192.168.201.0/24
postmaster@ abuse@
mkdir /var/spool/postfix/postgrey chown postfix:postgrey /var/spool/postfix/postgrey chmod 770 /var/spool/postfix/postgrey
/etc/init.d/postgrey restart
smtpd_recipient_restrictions |...] check_policy_service unix:postgrey/socket
/etc/init.d/postfix reload
Filterregeln können mit Sieve verarbeitet werden. Sieve kommt als
Erweiterung zu Dovecot. Wird die Mailzustellung von Postfix aus über
dovecot-lda
durchgeführt, kann Sieve in der zugehörigen Konfigurationsdatei
15-lda.conf
aktiviert werden.
protocol lda { mail_plugins = $mail_plugins sieve }
Die Standard-Filterregeln werden z.B. in der Datei .dovecot.sieve
eingestellt.
Mit Managesieve können die Filterregeln in Roundcube über das gleichnamige Plugin verwaltet werden. Damit ist alles hübsch integriert.
Spezielle Konfigurationsoptionen können in 90-sieve.conf
vorgenommen werden.
Im einfachsten Fall ist Sieve aber ohne dortige Konfiguration funktionsfähig.
Postfix
postmap -q …
Dovecot
doveadm …
Datenbank
mysql postfixadmin
Die Konfiguration in /etc/spamassassin/local.cf
.
Aktivierung des Cron-Jobs für Regelaktualisierung über /etc/default/spamassassim
.
Konfiguration für spamd
über /etc/default/spamd
.
Spamassassin erpfiehlt einen lokalen DNS-Resolver wie z.B. unbound
:
apt-get install unbound
Den resolver in /etc/resolv.conf
aktivieren.
CRON=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --username debian-spamd --groupname debian-spamd"
dns_available yes rewrite_header Subject *****SPAM*****
Aktivierung über die Transportkonfiguration von Postfix in master.cf
.
Z.B.:
smtp inet n - y - - smtpd -o content_filter=spamassassin [...] spamassassin unix - n n - - pipe user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Der Bayes-Filter liegt unter /var/lib/spamassassin/.spamassassin
.
Manuell trainieren:
su -c "sa-learn --ham /tmp/mail.eml" debian-spamd su -c "sa-learn --spam /tmp/spam.eml" debian-spamd
Informationen anzeigen
su -c "sa-learn --dump magic" debian-spamd
Razor integrieren
apt-get install razor su debian-spamd -s /bin/bash razor-admin -create razor-admin -register Register successful. Identity stored in /var/lib/spamassassin/.razor/identity-xxxxxxxxxx exit
logs
muß durch den Webserver beschreibbar sein. U.a. werden Fehlermeldungen in die Datei errors.log
geschrieben.<Directory .../roundcube/> AllowOverride All </Directory>
config.inc.php
vornehmen$config['smtp_log'] = false;
, Datensparsamkeit, logs/smtp.log
soll nicht geschrieben werdenBackup machen
tar cjf /var/backups/roundcube_$(date -I).tar.bz2 /var/www/roundcubemail mysqldump -u root -p roundcubemail > /var/backups/mysql/roundcubedb_$(date -I).sql
Neue Version herunterladen und auspacken
cd /tmp wget https://github.com/roundcube/roundcubemail/releases/download/1.2.3/roundcubemail-1.2.3-complete.tar.gz tar xzf roundcubemail-1.2.3-complete.tar.gz
Installation durchführen
cd roundcubemail-1.2.3 ./bin/installto.sh /var/www/roundcubemail
Berechtigungen korrigieren
cd /var/www chown -R 0 roundcubemail chgrp -R www-data roundcubemail chmod -R g-w roundcubemail
cd roundcubemail chmod g+w temp logs chmod g+w plugins/enigma/home
Plugin Enigma: Das Verzeichnis home
muß für die Gruppe www-data
beschreibbar sein.
Hinweise sind auch im ausgepacken Archiv in UPDATING
vorhanden.
Roundcube-DB: Benutzer nach ID entfernen
ID herausfinden
SELECT user_id, username, mail_host, created FROM users;
Löschen
DELETE FROM users WHERE user_id=4;
Detailtabellen sind über Constraints verknüpft und werden somit automatisch bereinigt
Das Kalender-Plugin kommt aus dem Kolab-Projekt. Allerdings unterstützt das Original keine Verbindungen zu CalDAV-Servern. Für diese Funktion ist der Fork von Awsome-IT notwendig. Die folgende Installationsanleitung bezieht sich darauf.
cd /tmp git clone https://gitlab.awesome-it.de/kolab/roundcube-plugins.git cd roundcube-plugins git checkout feature_caldav cd /<path-to-roundcube>/plugins cp -r /tmp/roundcube-plugins/plugins/calendar . cp -r /tmp/roundcube-plugins/plugins/libcalendaring .
apt-get install php-curl
, darauf achten, daß der Zertifikatsherausgeber des Zielservers in /etc/ssl/certs
vorhanden ist. U.a. Let's Encrypt muß dort manuell eingetragen werden.apt-get install php-sabre-dav
plugins/calendar.lib
kann man etwas mit dem Composer herumwürgen:composer remove fkooman/oauth-client composer require fkooman/oauth-client
Anscheinend ist das aber noch nicht ausreichend, es gibt noch Fehler im Frontend. → TODO
Q()
durch rcube::Q()
cd calendar/ cp config.inc.php.dist config.inc.php edit config.inc.php
mysql -u user -p roundcubemail < drivers/database/SQL/mysql.initial.sql mysql -u user -p roundcubemail < drivers/carddav/SQL/mysql.initial.sql
Für Roundcube Versin > 1.3 muß eine Anpassung in mysql.initial.sql
vorgenommen werden
CREATE TABLE IF NOT EXISTS `system` ( `name` VARCHAR(64) NOT NULL, `value` mediumtext, PRIMARY KEY(`name`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
cd ../../ edit config/config.inc.php
$config['plugins'] = array( [...] 'libcalendaring', 'calendar' );
Betrieb eines Mailarchivs mit Mail-Piler (https://www.mailpiler.org/).