MailPiler E-Mail Archivierung

Veröffentlicht: 19.02.2023

Mail Piler ist eine Open-Source Software zur Archivierung von E-Mails. Im Business Umfeld muss zum Beispiel jede E-Mail für 10 Jahre archiviert werden. In der folgenden Anleitung werde ich die Installation unter Rocky Linux 9 vornehmen. Da Rocky von RedHat abstammt, bietet es einen sehr langen Support und eignet sich hervorragend für Archivierungsanwendungen. Die Distro bietet noch offiziellen Support bis 2032.

Installation des OS

Als erstes wird eine Installations ISO benötigt. Ich habe meiner VM 2 Kerne, 2GB RAM und 32GB Speicher zugewiesen, diese Resourcen können aber auch jederzeit angepasst werden. Unter Proxmox ( auf einem anderen Hypervisor habe ich es noch nicht getestet ) funktioniert die Installation nur, wenn der CPU Typ auf Host gestellt ist. Nachdem der Installaer gebootet ist müssen folgende Einstellungen festgelegt werden:

Nun kann das Betriebssystem installiert werden. Nach dem ersten starten muss das System noch auf den aktuellsten Stand gebracht werdent. Dies geschieht mit dem folgenden Befehlt:

dnf update

Nun müssen die Extra Packages für RHEL aktiviert werden. Dies geschieht mit dem folgenden Befehl:

dnf -y install epel-release

Nachdem wir die Extra Pakete installiert haben geht es mit ein paar allgemeinen Tools, die auf jedem System meiner Meinung nach installiert werden sollten weiter:

dnf install htop wget nano git tar

Nachdem dies erledigt ist müssen wir der VM noch einen Hostnamen geben, dazu die Datei /etc/hostname bearbeiten und den Namen eintragen (bspw. mit nano). Abschließend muss zum übernehmen des Namens noch die VM neugestartet werden.

Abhängigkeiten Installieren

Nachdem das Betriebssystem nun aufgesetzt ist kann mit der eigentlichen Installation begonnen werden. Ein Teil der Abhängigkeiten kann direkt als Paket heruntergeladen werden, der Rest muss so auf dem System installiert werden

dnf install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
dnf install openssl mariadb mariadb-server php php-ldap php-gd php-memcache php-pdo php-mysqli php-curl php-zip nginx manticore manticore-extra tre-devel sysstat python3 gcc poppler libytnef-devel memcached tcp_wrappers-libs openssl-devel zlib-devel mariadb-connector-c-devel
systemctl enable --now sysstat 
wget http://ftp.wagner.pp.ru/pub/catdoc/catdoc-0.95.tar.gz
tar -xzf catdoc-0.95.tar.gz
cd catdoc-0.95
./configure
make
make install
cd ..
rm catdoc-0.95 -Rf
dnf install http://repo.iotti.biz/CentOS/9/x86_64/unrtf-0.21.9-17.el9.lux.x86_64.rpm http://repo.iotti.biz/CentOS/7/x86_64/xlhtml-0.5-19.el7.lux.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/tcp_wrappers-devel-7.6-77.el7.x86_64.rpm   https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/tcp_wrappers-libs-7.6-77.el7.x86_64.rpm https://dl.rockylinux.org/pub/rocky/9/CRB/x86_64/os/Packages/l/libzip-devel-1.7.3-7.el9.x86_64.rpm
systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl enable nginx
systemctl disable manticore
systemctl stop manticore
chown nginx:nginx /var/lib/php/session -R

# SELinux deaktivieren
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
setenforce 0

# Firewall Ports öffnen
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=25/tcp

Nun muss noch in /etc/php-fpm.d/www.conf der user und der group Parameter auf nginx geändert werden. und abswchließend der PHP-FPM Prozess mit systemctl restart php-fpm neugestartet werden.

Piler Installieren

Nun sollten alle Abhängigkeiten auf dem System installiert sein und wir können mit der Installation des Pilers an sich weitermachen. Dazu muss als erstes ein neuer Nutzer angelegt werden:

groupadd piler
useradd -g piler -m -s /bin/bash -d /var/piler piler
usermod -L piler
chmod 755 /var/piler

Nachdem der Nutzer angelegt ist können wir weiterhin als root Piler bauen und installieren:

wget https://bitbucket.org/jsuto/piler/downloads/piler-1.4.1.tar.gz
tar -xzf piler-1.4.1.tar.gz
cd piler-1.4.1
./configure --localstatedir=/var --with-database=mariadb
make
make install
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

Nun ist Mail Piler auf dem System installiert. Zur initialen Konfiguration müssen wir nun mit OPENSSL_ENABLE_SHA1_SIGNATURES=1 make postinstall den Konfigurationsassistenten durchlaufen. Dabei müssen die folgenden Optionen eingegeben werden:

Das Script sollte nun erfolgreich durchlaufen und zum Abschluss die Meldung Done post installation tasks. bringen. Nachdem der eigentliche Piler jetzt läuft müssen wir den WebServer konfigurieren. Dazu habe ich eine fertige Konfiguration, welche wir nur einspielen müssen und anschließend den Nginx neustarten:

rm /etc/nginx/nginx.conf
wget -O /etc/nginx/nginx.conf https://jonasled.de/download/mailpiler-nginx.conf
systemctl restart nginx

Nun können wir die Diente für den Mailpiler einrichten und starten.

ln -s /usr/local/sbin/piler /usr/sbin/piler
ln -s /usr/local/sbin/piler-smtp /usr/sbin/piler-smtp
ln -s /usr/local/etc/piler /etc/piler
ln -s /usr/local/etc/piler/manticore.conf /usr/local/etc/piler/sphinx.conf

ln -s /usr/local/libexec/piler/pilersearch.service /etc/systemd/system/pilersearch.service
ln -s /usr/local/libexec/piler/piler.service /etc/systemd/system/piler.service
ln -s /usr/local/libexec/piler/piler-smtp.service /etc/systemd/system/piler-smtp.service
systemctl daemon-reload
systemctl enable --now piler
systemctl enable --now pilersearch
systemctl enable --now piler-smtp

Nachdem die Dienste laufen sollte nun auch die Administrator Oberfläche erreichbar sein. Die Standart Zugangsdaten lauten admin@local für den Nutzername und pilerrocks als Passwort. Falls es nach dem Login zu einem redirect auf eine falsche Domain kommt muss in der Datei /usr/local/etc/piler/config-site.php der SITE_NAME geändert werden.

login Screenshot admin Screenshot

Hier kann auch unter administration => users ein Passwort für den auditor Nutzer festgelegt werden. Dieser darf alle E-Mails sehen. Um den Piler zu testen, können wir nun testweise eine E-Mail an diesen schicken. Die Empfängeradresse ist hierbei egal. Da der Piler nicht dauerhaft die E-Mails aktualisiert kann dies nun bis zu einer Stunde dauern bis die Test E-Mail in der Oberfläche auftaucht. Um dies zu beschleunigen kann man auch die entsprechenden Befehle als Piler Nutzer ausführen:

# Als Piler Nutzer anmelden
su piler

/usr/bin/indexer --quiet tag1 --rotate --config /usr/local/etc/piler/manticore.conf
/usr/bin/indexer --quiet note1 --rotate --config /usr/local/etc/piler/manticore.conf
/usr/local/libexec/piler/indexer.delta.sh

Danach sollte in der Oberfläche wenn man als Auditor Nutzer angemeldet ist eine E-Mail erscheinen wie auf dem Screenshot zu sehen.

MailPiler Auditor Ansicht

Login via IMAP

Damit auch besitzer einer Mailbox sich am Piler anmelden können und auch E-Mails aus dem Piler wiederherstellen können, kann sich der Piler gegen einen IMAP Server authentifizieren, dazu muss in der Datei /usr/local/etc/piler/config-site.php folgender Inhalt hinzugefügt und entsprechend angepasst werden:

$config['ENABLE_IMAP_AUTH'] = 1;
$config['RESTORE_OVER_IMAP'] = 1;
$config['IMAP_RESTORE_FOLDER_INBOX'] = 'INBOX';
$config['IMAP_RESTORE_FOLDER_SENT'] = 'Sent';
$config['IMAP_HOST'] = '<HOST DES E-MAIL SERVERS>';

Neues Kommentar verfassen



captcha
gravatar icon
Manuel vor einem Jahr

Hi Jonas, vielen Dank für deinen Guide. Ich hätte 2 Pakete die bei meinem Almalinux (was ja relativ sehr ähnlich zum Rocky ist) noch gefehlt haben. Installation der Pakete auch gleich so: dnf -y install which gettext. Was ich grundsätzlich bei solchen Servern immer empfehlen würde (auch wenn es nicht zu diesem eigentlich Guide gehört) wäre die Pakete dnf -y install net-tools bind-utils telnet openssh-server Zu guter letzt funktioniert der Piler bei mir natürlich nicht :D Auf der Weboberfläche erhalte ich immer direkt: Error: SQLSTATE[HY000] [2002] Connection refused on database: sphinx Hast du dafür eine Idee?

gravatar icon
Jonas Leder vor einem Jahr

Hi Manuel, die weiteren Pakete kannst du gerne installieren, wobei ich finde dass man bis auf den SSH Server die nicht unbedingt braucht und den installiert Rocky gleich mit. Dein Problem hört sich so an, als würde der Sphinx Service noch nicht laufen ( pilersearch )

gravatar icon
matt vor einem Jahr

Hallo Jonas, Danke für dein Tutorial. Bei mir funktioniert alles, um mit localhost auf den Server zuzugreifen, aber es ist unmöglich, von einem anderen Computer in meinem lokalen Netzwerk mit seiner IP-Adresse darauf zuzugreifen. Hast du eine Idee?

gravatar icon
Jonas Leder vor einem Jahr

@matt Vermutlich stimmt noch etwas an der Firewall Konfiguration nicht.