Dies ist eine alte Version des Dokuments!


Benno - Das Echte Mailarchiv

…archiviert Kopano Groupware ;-)

Rechtssichere Emailarchivierung - was heißt das nun?

Benno MailArchiv ist die offene und flexible Lösung für die revisionssichere E-Mail-Archivierung. Der Einsatz von Benno MailArchiv ermöglicht signifkante Kosteneinsparungen beim Ablegen und Suchen von E-Mails im Unternehmen. E-Mails werden automatisch, sicher und zuverlässig archiviert. Die Textinhalte aller E-Mails (incl. der Attachements!) werden on the fly indexiert. Alle E-Mails sind damit Volltext suchbar (bspw. über den Mailtext, Absender, Empfänger, Betreffzeile, Mailheader und natürlich über die Inhalte der Attachements!). Benno MailArchiv unterstützt z.Z. ca. 1.200 verschiedene Dateiformate für Attachements. (ZIP-Dateien werden ausgepackt und dateiweise indexiert). Über die ausgefeilte Suchfunktion wird jede beliebige E-Mail in Sekunden treffsicher gefunden. Das Suchen und Anzeigen von E-Mails kann über die http-Schnittstelle als Web-Service in Drittanwendungen integriert werden. Benno MailArchiv ist damit bestens für die Integration in Geschätsprozesse (SOA) vorbereitet.

Benno entwickelt auf Debian. Die Installation hier bezieht sich auf Ubuntu 20.04 und Debian 10 in einem LXC auf Proxmox Virtualisierung. Abgeholt werden die Mails von einem UCS System wo Kopano als App installiert ist. Als erstes fügen wir für unsere Installation die Paketquelle hinzu:

wget -O - http://www.benno-mailarchiv.de/download/debian/benno.asc | apt-key add -
echo "deb http://www.benno-mailarchiv.de/download/debian /" > /etc/apt/sources.list.d/benno.list
apt update

Als nächstes installieren wir Benno Mailarchiv.

apt install benno-archive benno-rest benno-web apache2 benno-milter

Wenn du Benno MailArchiv ohne gültiges Lizenzfile betreibst, läuft Benno MailArchiv ab Archivierung der ersten E-Mail für 60 Tage im Demo-Modus. Im Demo-Modus stehen alle Funktionen uneingeschränkt zur Verfügung. Möchtest Benno MailArchiv danach weiter betreiben, benötigst du eine gültige Lizenz. Die Informationen zur Anforderung der Lizenz werden mit dem u.g. Kommando ermittelt. /etc/init.d/benno-rest info

Eine Lizenz kann dann unter https://www.benno-mailarchiv.de/lizenz/ angefordert werden. Nachdem man das Lizenzfile (benno.lic) bekommen hat, kopiert man es auf den Bennoserver und setzt die Rechte.

scp benno.lic root@benno.tux.lan:/etc/benno/benno.lic
chown benno:benno /etc/benno/benno.lic
systemctl restart benno-rest.service

Sicherheitscheck von Files:

chgrp benno  /etc/benno/benno.xml
chgrp www-data /etc/benno-web/benno.conf
chmod 640  /etc/benno/benno.xml
chmod 640  /etc/benno-web/benno.conf

ls -l  /etc/benno/benno.xml
-rw-r----- 1 root benno 2622 Nov 22 09:19 /etc/benno/benno.xml

ls -l /etc/benno-web/benno.conf
-rw-r----- 1 root www-data 238 Nov 20 21:52 /etc/benno-web/benno.conf

Um nun die LDAPanbindung zu aktivieren importiert man das CA-Zertifikat seiner UCS-Umgebung nach /usr/local/share/ca-certificates/ucs-root.crt. An diesem Punkt importiere doch auch gleich dein CA das du später für den Apache Webserver benötigst. Z.B. Das von deiner eigenen CA, oder eben ein anderes sofern dies für dich notwendig ist. Dananch führst du den Befehl aus.

update-ca-certificates

Danach editiert man die LDAP-Konfiguration nano /etc/benno-web/ldapauth.conf. Hier ein Beispiel für UCS für die Domäne tux.lan

host = dc1.tux.lan:7389
basedn = dc=tux,dc=lan
usersuffix = cn=users,dc=tux,dc=lan
tls = true
email = mailPrimaryAddress, mailAlternativeAddress, univentionFreeAttribute15
adminuser = Administrator, maxi

Die Konfiguration enhält auch schon die Attributerweiterung für das UCS Modul. (mailAlternativeAddress, univentionFreeAttribute15) Die gesamte Dokumentation für das Ldapmodul findest du hier. Default hat jeder Benutzer nur auf seine Mails Zugriff, außer Benutzer die unter „adminuser“ eingetragen sind. Um nun auch anderen Benutzer bestimmte Mailboxen für das Archiv zu zuordnen erweitern wir unseren UCS um ein LDAPattribut.

Kopiere nun die Schema-Datei auf deine UCS-Server in das Verzeichnis /tmp, und imporiere es. Das Schema ist hier zur dokumentationszwecken auch nochmal angehängt.

ssh root@master.tux.lan
wget -O /tmp/bennomailarchiv.schema https://wiki.benno-mailarchiv.de/lib/exe/fetch.php/konfigurationsbeispiele:bennomailarchiv.schema
export UNIVENTION_APP_IDENTIFIER="Benno MailArchiv"
. /usr/share/univention-lib/ldap.sh
ucs_registerLDAPExtension --schema /tmp/bennomailarchiv.schema --packagename BennoMailArchiv --packageversion 1

Das zu importierende Schema wird im LDAP-Modul unter univention » ldapschema unter bennoMailArchiv angezeigt. Die Attribute können jetzt den User- und Gruppenmodulen hinzugefügt werden. Damit können pro User oder Gruppe Einstellungen für Benno MailArchiv vorgenommen werden. Die Konfiguration der Attribute ist in Erweiterung der UCS-Konfiguration beschrieben.

bennomailarchiv.schema
## Attribute (1.3.6.1.4.1.30259.1.2.1)
 
# global attributes
attributetype ( 1.3.6.1.4.1.30259.1.2.1.1 NAME 'bennoContainer'
    DESC 'Benno Container the user has access to'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
 
# user attributes
attributetype ( 1.3.6.1.4.1.30259.1.2.1.2 NAME 'bennoEmailAddress'
    DESC 'Additional E-Mail addresses that could be searched by user'
    EQUALITY caseIgnoreIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
attributetype ( 1.3.6.1.4.1.30259.1.2.1.3 NAME 'bennoRole'
    DESC 'Role of the user: [USER|ADMIN|REVISOR]'
    EQUALITY caseIgnoreIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE)
 
## Objektklassen (1.3.6.1.4.1.30259.1.2.2)
 
objectclass ( 1.3.6.1.4.1.30259.1.1.2.2 NAME 'BennoMailarchivUser'
    DESC 'Per user configuration data of Benno Mailarchiv' SUP top AUXILIARY
    MAY  ( bennoContainer $ bennoEmailAddress $ bennoRole ) )

Ist das ganze durch sehen wir uns noch die Hauptkonfiguration an: nano /etc/benno-web/benno.conf Das ist Default leer und benutzt eben auch die Defaultkonfiguration von Benno. Eine mögliche empfohlene Konfiguration findest du gleich hier:

#DEBUG           = 0
SHOW_IMAGES = true
SUPPRESS_LEADING_WILDCARD = 0
SUPPRESS_SINGLE_WILDCARD = 0
PERMALINK_UNAUTHENTICATED = no
REST_SSL_VERIFY = no
INFO_DISABLED = SYSDATA
USERPERMISSONS = ENABLED
LOGIN_SHOWLAST = 30
SHOW_SPAM = true

Diese Optionen sind im Benno Wiki im Detail beschrieben.

Benno-Milter wird so konfiguriert damit dieser auf TCP Ebene von unserem Kopanoserver die Mails entgegen nehmen kann. nano /etc/default/benno-milter

#
# Start options for benno-milter
#
#SOCKET=/var/spool/postfix/benno-milter/benno-milter.sock

SOCKET_TYPE=inet
SOCKET=22500@0.0.0.0

SPOOLDIR=/srv/benno/inbox
#MILTERARGS="-x myhostname"

MILTER_GROUP=postfix

#BENNOHOST=your.benno-archive.host

Nun starten wir den Serverdienst und Milter einmal neu und können uns danach auch schon mit unseren Usern am Webinterface einloggen.

systemctl restart benno-milter.service benno-archive.service

Um das Web-GUI per HTTPS abzusichern, muss der Webserver für HTTPS konfiguriert werden. Hierzu aktivieren wir das ssl Modul und die Default SSL Website im Apache Webserver. Zusätzliche bauen wir unser eigenes Zertifikat unserer CA ein. Du kannst natürlich eines mit UCS generieren, ein Wildcard deiner Organisation verwenden, Let's Encrypt, oder eines kaufen.

Hierzu kopiere deinen Key unter /etc/ssl/private/benno-apache.key setzte die Rechte, und installiere die nötigen Pakete.

chown root:ssl-cert /etc/ssl/private/benoo-apache.key
chmod 640 /etc/ssl/private/benno-apache.key
apt install libapache2-mod-php -y
a2enmod ssl
a2ensite default-ssl

Das zuständige CA befindet sich ja schon am Server. Nun im File /etc/apache2/sites-enabled/default-ssl.conf die beiden Zertifikate setzen:

...
SSLCertificateFile      /etc/ssl/certs/benno-apache.crt
SSLCertificateKeyFile /etc/ssl/private/benno-apache.key
...

Apache neu starten: systemctl restart apache2 Weiters kann man unter /var/www/html/index.html noch eine einfache Weiterleitung erstellen. Zur internen Verwendung genügt das.

index.html
<html>
        <head>
                <meta http-equiv="refresh" content="0; URL=https://benno.tux.lan/benno/">
        </head>
</html>

Ansonsten sollte man dafür Apache selbst verwenden

Möchte man bestimmte Adressen von der Archivierung ausschließen, z.B. aus Datenschutz rechtlichen Gründen, ist das über ein File leicht möglich nano /etc/benno/benno.xml

benno.xml
...
<simplecontainer>
 <identifier>BennoContainer</identifier>
   <conditions>
     <not> 
       <or>  
         <address sender="true" recipient="true" from="true" to="true" cc="true">bewerbungen@tux.lan</address>
         <address sender="true" recipient="true" from="true" to="true" cc="true">datenschutz@tux.lan</address>
       </or>
     </not>
   </conditions>
    ...
 

Achte hier auf den richtigen Container.

Am Kopanoserver müssen auch die Quellen wie schon auf der Seite beschrieben eingebunden werden. Installiert wird lediglich das Webapp-Plugin. Damit integriert sich das Archiv als eigener TAB vollheitlich in Kopano.

apt install benno-kopano-webapp-plugin

Während der Installation wird nach den RestSettings gefragt. Dort muss der Name deines Benno MailarchivServers angegeben werden. Z.B. so:

https://benno.tux.lan/benno/rest.php

Bei Nachfrage nach dem Bennotcontainer einfach BennoContainer reinschreiben. Danach solltest du unbedingt noch einen Blick auf die Konfiguration des Plugns werfen, ob du etwas ändern möchtest.

nano /etc/benno-kopano-webapp-plugin/config.php

Damit Benno auch alle Mails bekommst, holen wir diese mit dem MILTER Daemon ab. Das ganze bauen wir UCS konform.

ucr set mail/postfix/mastercf/options/smtps/milter_default_action=tempfail
ucr set mail/postfix/mastercf/options/smtp/milter_default_action=tempfail
ucr set mail/postfix/mastercf/options/smtps/smtpd_milters=inet:benno.tux.lan:22500
ucr set mail/postfix/mastercf/options/smtp/smtpd_milters=inet:benno.tux.lan:22500

Nun noch zusätzliche Config in die main.cf schreiben. nano /etc/postfix/main.cf.local

non_smtpd_milters = inet:benno.tux.lan:22500
milter_default_action = tempfail

Konfiguration aktivieren:

ucr commit /etc/postfix/{main,master}.cf
systemctl restart postfix.service

Achte drauf das dein Benno MailarchivServer mit den gesetzten Ports auch erreichbar ist. Sprich 443 und 22500. Ist dies gesetzt, werden deine gesamten Mail bereits alle archiviert.

Hier gibt es mehrere Möglichkeiten:

  • benno-pop3
  • benno-imapimport

Mit Pop3 können alle Mails von der Inbox importiert werden. Mit dem ImapConnector die Mails des gesamten Kontos. Leider ist der ImapConnector in Ubuntu 20.04 noch nicht funktionsfähig, da dieser zuerst auf Python3 migriert werden muss. Benno wird Default auf Debian entwickelt. Diese haben andere Releasezyklen als Ubuntu. Benno ist hier drann um auch dieses Feature wieder zu akivieren.

Beispiel:

benno-imapimport -u meinUserName -H benno.tux.lan -f -v -p 'geheim'

Hier gehts zur Dokumentation der gesamten Schnittstellen.

Großer Dank gilt hier dem Entwickler von Benno, LW-Systems die mich hierbei stark untersützt haben. Die Firma hat ein tolles Team und einen fachkundinge Support. Benno ist ein MEGA Produkt und ich darf es jedem der etwas auf seine Maildaten hält, wärmstens empfehlen. Stell dir doch mal vor: „Kein Mail wird mehr gelöscht!“ Sprich auch wenn du versehentlich etwas löscht, ist es noch immer im Archiv und für dich verfügbar. Bitte, wie genial ist das denn 8-)!