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:
- Sprache
- Tastaturlayout (en entfernen, DE hinzufügen)
- root Passwort
- Software Selection => Minimal Install
- Zielfestplatte
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:
- WebServer Gruppe:
nginx
- MySQL Hostname:
localhost
- MySQL Socket:
/var/lib/mysql/mysql.sock
- MySQL Database: bestätigen
- MySQL Nutzername: bestätigen
- MySQL Piler Passwort: Zufallspasswort generieren
- MySQL Root Passwort: egal was, da socket Authentifizierung verwendet wird
- SMTP Relay Host: öffentlicher Domain des Mail Piler
- SMTP Port: 25
- 2x mit y bestätigen
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.
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.
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
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?
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 )
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?
@matt Vermutlich stimmt noch etwas an der Firewall Konfiguration nicht.