Installazione di Mailpiler in Debian per l'archiviazione email
Utilizzo dell'appliance
- L'appliance è un file .ova. Rinominarlo, in .tar, scompattarlo, e convertire l'immagine disco con
qemu-img convert -f vmdk piler-build-935-disk1.vmdk -O qcow2 piler-build-935-disk1.qcow2
- Seguire la doc
- Cambiare permission per consentire scaricamento zip delle mail, altrimenti il file sarà di 0 bytes:
sudo chmod g+w /var/piler/www/tmp sudo chown :www-data /var/piler/www/tmp
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
- Scaricare dal sito la versione aggiornata di sphinx *2* o installare il backport autoporodotto da http://sphinxsearch.com/downloads/release
- 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
Script di avvio
- Copiare gli script di avvio:
- Modificare lo script di avvio di searchd:
vi init.d/rc.searchd
#!/bin/sh ## ## ### BEGIN INIT INFO # Provides: piler-searchd # Required-Start: $local_fs $remote_fs $syslog $named $network $time # Required-Stop: $local_fs $remote_fs $syslog $named $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop the Piler Sphinx Searchd # Description: Fast standalone full-text SQL search engine for Mailpiler ### END INIT INFO
- Cambiare anche
su piler -c '/usr/bin/searchd'
- in
su piler -c '/usr/local/bin/searchd -c /usr/local/etc/sphinx.conf'
- Aggiungere anche questo in:
vi init.d/rc.piler
#!/bin/sh ## ## ### BEGIN INIT INFO # Provides: piler # Required-Start: $local_fs $remote_fs $syslog $named $network $time # Required-Stop: $local_fs $remote_fs $syslog $named $network # Should-Start: piler-searchd # Should-Stop: piler-searchd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop Mailpiler email archiving # Description: Mailpiler email archiving ### END INIT INFO
- Copiare i due files di avvio:
chmod +x init.d/rc.* sudo cp init.d/rc.piler /etc/init.d/piler sudo cp init.d/rc.searchd /etc/init.d/piler-searchd
- Installarli
sudo update-rc.d piler defaults sudo update-rc.d piler-searchd defaults
- Avviare i due demoni:
sudo invoke-rc.d piler-searchd start sudo invoke-rc.d piler start
Webgui
- Copiare i files:
sudo mv webui /var/www/piler
Sistemare permissions per webserver:
sudo chown -R root:www-data /var/www/piler sudo chmod -R g+w /var/www/piler/tmp sudo chmod -R g+w /var/www/piler/log
sudo chown :www-data /var/piler/tmp sudo chmod g+w /var/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
- Loggarsi su http://mailpiler.example.com con credenziali
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