Installazione di Mailpiler in Debian per l'archiviazione email

From RVM Wiki
Jump to navigation Jump to search

Compilazione

  • Scaricare e scompattare:
cd /tmp
wget https://bitbucket.org/jsuto/piler/downloads/piler-0.1.21.tar.gz
tar xvzf piler-0.1.21.tar.gz
cd piler-0.1.21/
  • Occorre preparare le utenze prima di compilarlo:
sudo groupadd piler
sudo useradd -g piler -s /bin/sh -d /var/piler piler
sudo usermod -L piler
  • Installare i requisiti di compilazione:
sudo apt-get install libssl-dev libtre-dev libmysqlclient-dev poppler-utils catdoc unrtf
  • Configurare:
./configure \
       --enable-clamd \
       --enable-memcached \
       --localstatedir=/var
  • Compilare
make

Installazione

  • Installare:
sudo make install
  • Installare le dipendenze runtime:
sudo apt-get install sysstat phpmyadmin mysql-server mysql-client

  • Aggiornare le librerie:
sudo ldconfig


Configurazione

  • Configurare
sudoedit /usr/local/etc/piler.conf
  • Dominio email
mydomains=mycompany.com,aaa.fu,example.com
  • Porta di ascolto server smtp interno
listen_port=2525
  • Dati mysql:
mysqlhost=127.0.0.1
mysqlport=3306
mysqluser=piler
mysqlpwd=verystrongpassword
  • Creare la chiave di cifratura delle email:
make key
sudo cp piler.key /usr/local/etc
sudo chgrp piler /usr/local/etc/piler.key
sudo chmod 640 /usr/local/etc/piler.key
  • Creare il database:
mysql -u root -p
create database piler character set 'utf8';
grant all privileges on piler.* to piler@localhost identified by 'verystrongpassword';
flush privileges;
quit;
  • Popolare il database:
mysql -u piler -p piler < util/db-mysql.sql

Sphinx

  • Versione i386:
wget http://sphinxsearch.com/files/sphinxsearch_2.0.6-release-1_i386.deb
  • Versione amd64:
wget http://sphinxsearch.com/files/sphinxsearch_2.0.6-release-1_amd64.deb
sudo dpkg -i sphinxsearch_2*.deb
  • Oppure
sudo apt-get install sphinxsearch
  • Stoppare sphinxsearch Disabilitare l'avvio automatico:
sudo invoke-rc.d sphinxsearch stop
sudo update-rc.d -f sphinxsearch remove

  • Copiare la configurazione, modificarla e testarla:
sudo cp etc/sphinx.conf /usr/local/etc
sudo sed -i -e 's/sql_pass = piler/sql_pass = verystrongpassword/g' /usr/local/etc/sphinx.conf
sudo -u piler indexer --config /usr/local/etc/sphinx.conf --all
  • Linkare gli eseguibili di sphinx:
sudo ln -s /usr/bin/indexer /usr/local/bin/indexer
sudo ln -s /usr/bin/searchd /usr/local/bin/searchd
  • Lanciare i demoni, usando gli rc file presenti nella cartella sorgente:
sudo sh init.d/rc.piler start
  • Modificare il percorso di searchd nel rc file:
vi init.d/rc.searchd
su piler -c '/usr/bin/searchd -c /usr/local/etc/sphinx.conf'
  • Stoppare sphinxsearch:
sudo invoke-rc.d sphinxsearch stop
  • Avviare searchd:
sudo sh init.d/rc.searchd start

Webgui

  • Copiare i files:
sudo mv webui /var/www/piler
sudo chown -R root:www-data /var/www/piler
sudo chmod -R g+w /var/www/piler/tmp
  • Modificare la configurazione:
sudoedit /var/www/piler/config.php
define('SITE_NAME', 'mailpiler.example.com');
define('SITE_URL', 'http://mailpiler.example.com/');

define('PILER_HOST', '1.2.3.4');
define('PILER_PORT', 2525);
define('SMARTHOST', '127.0.0.1'); //Server SMTP per inviare email di restore
define('SMARTHOST_PORT', 25);
define('SMTP_DOMAIN', 'example.com');
define('SMTP_FROMADDR', 'no-reply@example.com');
define('ADMIN_EMAIL', 'admin@example.com');

define('DIR_BASE', '/var/www/piler/');
define('DB_PASSWORD', 'verystrongpassword');
define('TIMEZONE', 'Europe/Rome');
  • Lanciare un'indicizzazione manuale:
sudo -u piler indexer --config /usr/local/etc/sphinx.conf --all --rotate


  • Creare il virtualhost eome indicato in SITE_URL
sudoedit /etc/apache2/sites-available/mailpiler
NameVirtualHost 1.2.3.4:80

<VirtualHost 1.2.3.4:80>
        ServerName mailpiler.example.com
        DocumentRoot /var/www/piler
</VirtualHost>
  • Abilitare il Virtualhost
sudo a2ensite mailpiler


  • Abilitare il rewrite in apache
sudo a2enmod rewrite
sudo invoke-rc.d apache2 reload
  • Creare il nome dns indicato in SITE_URL
admin@local
pilerrocks
  • Creare il dominio in
Administration / Domains
  • Aggiungere un nuovo utente nel dominio col livello Auditor (potrà vedere le email di tutti, altrimenti ogni utente può vedee solo le proprie)
 Administration / Users
  • Sloggarsi

Cronjobs

  • Crearlo per lo user piler:
sudo -u piler crontab -e
*/5 * * * * LC_ALL=C mpstat | tail -1 | awk '{print $11}' > /var/piler/stat/cpu.stat
*/15 * * * * /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet delta1 --rotate && sleep 2 && /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet --merge main1 delta1 --merge-dst-range deleted 0 0 --rotate
*/15 * * * * /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet tag1 --rotate
*/15 * * * * /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet note1 --rotate
30 7 * * * /usr/local/libexec/piler/daily-report.php /var/www/piler


  • Per mettere in debug piler:
sudoedit /usr/local/etc/piler.conf
verbositiy=5
sudo sh rc.piler restart
sudo tail -f /var/log/mail.log| grep piler

Test

  • Mailpiler scarta i messaggi duplicati, quindi usare un corpo messaggio diverso per ogni test:
echo $(date)  | swaks --server smtp.example.com --port 2525 --from sender@example.com --to recipient@example.com --body -
  • Eseguire a mano i cronjob per l'indicizzazione:

sudo -u piler /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet delta1 --rotate && sleep 2 && /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet --merge main1 delta1 --merge-dst-range deleted 0 0 --rotate sudo -u piler /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet tag1 --rotate sudo -u piler /usr/bin/indexer --config /usr/local/etc/sphinx.conf --quiet note1 --rotate sudo -u piler /usr/local/libexec/piler/daily-report.php /var/www/piler

  • Loggarsi con l'email dell'utente con ruolo auditor, e fare un search: deve apparire il messaggio importato

Spostamento storage

  • Mailpiler salva i messaggi in /var/piler NON nel database.
  • È opportuno spostare /var/piler in una partizione di dimensione adeguata
  • Valutare se spostare anche /var/lib/mysql in una partizione di dimensione adeguata

Importazione di messaggi

  • Per importare dei messaggi in cartelle maildir, posizionarsi in una cartella SCRIVIBILE dall'utente piler
cd /tmp
sudo -u piler pilerimport -d /path/to/the/maildir/files

Antivirus

  • TODO

Invio mail dirette a mailpiler da postfix

  • Abilitare il bcc verso l'smtp piler:
sudoedit /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
always_bcc = archive@fuxta.priv
sudoedit /etc/postfix/transport
archive@fuxta.priv      smtp:127.0.0.1:2525

cd /etc/postfix/
sudo postmap transport
sudo invoke-rc.d postfix restart