Parecchi del software necessario è già incluso nella tua distribuzione Linux, ad esempio SuSE include Cyrus, da che mi ricordi già dalla 7.1. Dalla SuSE 8.1, cyrus-imap 2.1 and sasl2 sono inclusi e funzionano. E' comunque raccomandato compilare Cyrus da te. SuSE inoltre non include Postfix abilitato per MySQL.
Pacchetti obsoleti per Debian stable e testing: Gli utenti Debian probabilmente vorranno installare i pacchetti forniti da Debian. Sfortunatamente Debian stable (Woody) e testing (sarge) usano versioni obsolete delsoftware usato in questo HOWTO. Ho testato i rispettivi pacchetti dalla Debian unstable (sid) e funzionano. Notate che i manteiners di Debian sono molto conservatori. Il pacchetti »postfix-mysql«, »libsasl2« and »cyrus21-imapd« sono stabili »stabili« anche se si trovano solo nell' »unstable« tree.
Origine: http://www.mysql.com/downloads/
cd /usr/local tar -xvzf mysql-4.0.16.tar.gz cd mysql-4.0.16 ./configure \ --prefix=/usr/local/mysql \ --enable-assembler \ --with-innodb make make install /usr/local/mysql/bin/mysql_install_db echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf ldconfig ln -s /usr/local/mysql/include/mysql /usr/include/mysql ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql |
Per migliorare la sicurezza,aggiungete un utente mysql al vostro sistema ad es. »mysql«, quindi
chown -R mysql /usr/local/mysql/var |
Se volete far partire automaticamente MySQL al boot, copiate /usr/local/mysql/share/mysql/mysql.server su /etc/init.d/ per SuSE, per Redhat esso è/etc/rc.d/init.d invece di /etc/init.d/. In seguito dovrete aggiungere link simbolici su /etc/init.d/rc3.d per SuSE e /etc/rc.d/rc3.d per Redhat.
Il seguente esempio riguarda SuSE Linux ma può facilmente essere cambiato per Redhat o altre distribuzioni Linux o Unix commerciali.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/ ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/S20mysql ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/k08mysql |
Berkeley DB è un requisito ber compilare Cyrus-SASL e Cyrus-IMAP. Alcuni sistemi lo propongono con versioni recenti ma senza gli header fil installati. Controlla i cd/DVD della tua distribuzione per vedere se puoi installare gli header file del pacchetto. Normalmente questo pacchetto è chiamato bdb-devel.
La versione presente in GNU/Debian Linux è superata, dovrai invece compilare la versione più recente. Se hai già installato Berkely DB sulla tua Debian, disinstallalo per prevenire conflitti.
E' anche molto importante che Cyrus-SASL e Cyrus-IMAP vengano compilati con la stessa versione di Berkely DB se no potreste avere dei problemi.
Versioni Berkeley DB: Io ho testato solo la versione 4.0.x di bdb. Fatemi sapere se funziona se usate versioni più nuove.
Origin-Site: http://www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz
Origin-Site http://www.openssl.org
cd /usr/local tar -xvzf openssl-0.9.7c.tar.gz cd openssl-0.9.7c ./config shared make make test make install echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig |
Selezionate la vostra CPU per migliorare la velocità: Di il Makefile genera codice per il processore i486. Potete cambiare questa impostazione modificando il Makefile dopo aver lanciato il config shared. Cercate -m486 e sostite ad es. con-march=athlon
Compilare Cyrus SASL and IMAP dai sorgenti non è un'attività semplice. Ci sono una serie di requisiti che devono essere soddisfatti, una serie di difficoltà legate alle autenticazioni da considerare.
Origin-Site: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.17.tar.gz
Origin-Site: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.1.16.tar.gz
In molti sistemi non c'è l'utente e il mailgroup cyrus di default. Cerca un UID libero, normalmente i demoni girano con UID minori di 100. Ad esempio io uso UID 96 perchè in SuSE c'è di default/etc/passwd.
groupadd mail useradd -u 96 -d /usr/cyrus -g mail cyrus passwd cyrus |
tar -xvzf cyrus-sasl-2.1.17.tar.gz cd cyrus-sasl-2.1.17 ./configure \ --enable-anon \ --enable-plain \ --enable-login \ --disable-krb4 \ --disable-otp \ --disable-cram \ --disable-digest \ --with-saslauthd=/var/run/saslauthd \ --with-pam=/lib/security \ --with-dblib=berkeley \ --with-bdb-libdir=/usr/local/bdb/lib \ --with-bdb-incdir=/usr/local/bdb/include \ --with-openssl=/usr/local/ssl \ --with-plugindir=/usr/local/lib/sasl2 make make install mkdir -p /var/run/saslauthd cd saslauthd make testsaslauthd cp testsaslauthd /usr/local/bin echo /usr/local/lib/sasl2 >> /etc/ld.so.conf ldconfig |
La libreria SASL è installata in /usr/local/lib/sasl2 ma alcuni programmi si aspettano SASL in /usr/lib/sasl2. Quindi è una buona idea creare un link simbolico: ln -s /usr/local/lib/sasl2 /usr/lib/sasl2.
tar -xvzf cyrus-imapd-2.1.16.tar.gz cd cyrus-imapd-2.1.16 export CPPFLAGS="-I/usr/include/et" ./configure \ --with-sasl=/usr/local/lib \ --with-perl \ --with-auth=unix \ --with-dbdir=/usr/local/bdb \ --with-bdb-libdir=/usr/local/bdb/lib \ --with-bdb-incdir=/usr/local/bdb/include \ --with-openssl=/usr/local/ssl \ --without-ucdsnmp \ make depend make make install |
Se volete far partire il demone di Cyrus IMAP automaticamente al boot, avete bisogno di uno script di avvio. Inserite questo script in /etc/init.d/. Per Redhat, è in /etc/rc.d/init.d invece di/etc/init.d/.
#!/bin/bash # # Cyrus startup script case "$1" in start) # Starting SASL saslauthdaemon /usr/local/sbin/saslauthd -c -a pam& # Starting Cyrus IMAP Server /usr/cyrus/bin/master & ;; stop) # Stopping SASL saslauthdaemon killall saslauthd # Stopping Cyrus IMAP Server killall /usr/cyrus/bin/master ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac |
Se avrò tempo, provvederò ad uno script più sofisticato, intanto questo funziona.
Ora create i link simbolici nelle directory dei runlevel (SuSE):
ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/S20 ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/K10 |
For Redhat:
ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/S20cyrus ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/K10cyrus |
Origin-Site: http://www.postfix.org/ftp-sites.html
Prima di compilare e installare postfix,assicuratevi di creare un utente e gruppo »postfix« and a »maildrop« se già non esistono. Prima controllate i gruppi, potete farlo con grep postfix /etc/group e grep maildrop /etc/group
Se non ci sono gruppi e utenti potete crearli. Cerca un UID e un GID liberi, nel seguente esempio io userò come UID e GID 33333 per Postfix e 33335 per maildrop. Questi ID's corrispondoni negli altri documenti.
groupadd -g 33333 postfix groupadd -g 33335 maildrop useradd -u 33333 -g 33333 -d /dev/null -s /bin/false postfix useradd -u 33335 -g 33335 -d /dev/null -s /bin/false maildrop |
La seguente sezione mostra cosa dovete fare per installare MySQL dal sorgente comedescritto sopra. Se installate MySQL da un package binario come rpm o deb, allora dovete cambiare gli include e library flags a -I/usr/include/mysql e -L/usr/lib/mysql.
Il vecchio MTA deve essere disinstallato |
E' importante che disinstalliate ogni versione di sendmail dal sistema basato su RPM. Io suggerisco di rimuovere sendmail e installare al suo posto Postfix. Gli RPM di SuSE hanno bisogno di almeno un MTA. Dopo aver installato l'RPM di Postfix, reinstallate Postfix sopra quell'installazione RPM seguendo questo HOWTO. |
tar -xvzf postfix-2.0.16.tar.gz cd postfix-2.0.16 make makefiles 'CCARGS=-DHAS_MYSQL \ -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH \ -I/usr/local/include/sasl -I/usr/local/bdb/include' \ 'AUXLIBS=-L/usr/local/mysql/lib/mysql \ -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -L/usr/local/bdb/lib' make make install |
Durante make install verranno chieste una serie di domande. Premendo sempre Enter dovreste soddisfare le richieste. Per gli utenti Redhat potrebbe essere utile inserire /usr/local/share/man
Ora avete bisogno di creare alcuni link simbolici per far partire Postfix automaticamente all'avvio. L'esempio è per SuSE Linux, consulta il manuale del produttore per altre distribuzioni.
ln -s /usr/sbin/postfix /etc/init.d/rc3.d/S14postfix ln -s /usr/sbin/postfix /etc/init.d/rc3.d/K07postfix |
PAM è installato di default nella maggior parte delle distribuzioni Linux. Io non descriverò come compilare PAM da soli perchè potrebbe bloccare il sistema, descriverò invece come installare il package.
Gli utenti di una distribuzione basata su RPM possono dare i seguenti comandi:
rpm -i pam-devel.rpm |
Gli utenti Debian possono installare il package devel con i segienti comandi:
apt-get install libpam0g-dev |
Origin-Site: http://sourceforge.net/projects/pam-mysql/
tar -xvzf pam_mysql-0.5.tar.gz cd pam_mysql |
Se avete compilato mysql da soli, controllate il Makefile ed inserite il corretto percorso alle vostre librerie mysql e aggiungete il flag di compilazioneCFLAGS -I/path/to/mysql/include.
ifndef FULL_LINUX_PAM_SOURCE_TREE export DYNAMIC=-DPAM_DYNAMIC export CC=gcc export CFLAGS=-O2 -Dlinux -DLINUX_PAM \ -ansi -D_POSIX_SOURCE -Wall -Wwrite-strings \ -Wpointer-arith -Wcast-qual -Wcast-align -Wtraditional \ -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline \ -Wshadow -pedantic -fPIC -I/usr/local/mysql/include export MKDIR=mkdir -p export LD_D=gcc -shared -Xlinker -x -L/usr/local/mysql/lib/mysql -lz endif |
Dopo aver personalizzato il file potete continuare con la compilazione di pam_mysql.
make cp pam_mysql.so /lib/security [[ ! -d /var/lib/mysql ]] && mkdir /var/lib/mysql ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock |
Origin-Site: http://www.web-cyradm.org
cd /usr/local/apache/htdocs tar -xvzf web-cyradm-0.5.4.tar.gz touch /var/log/web-cyradm.log chown nobody /var/log/web-cyradm.log |
Dopo avere scompattato web-cyradm, spostatelo all'interno della DocumentRoot del vostro Web server.
Questo è tutto. Non dovete configurare lintero malloppo del software.
Web-cyradm 0.5.4 è considerato stabile, ed è stato rilasciato il 5-12-2003
Poiché web-cyradm usa PEAR per il suo livello di astrazione di database, avete bisogno di una copia recente di PEAR. Questa è inclusa nelle recenti versioni di PHP. Io suggerisco fortemente di aggiornare il PHP alla 4.3.4, in quanto sono stati corretti parecchi importanti bachi.
Un errore frequente è quello di dimenticare di creare il logfile e cambiare la proprietà dell'UID di Apache. Questo è solitamente »nobody« o »wwwrun«.
Ora abbiamo bisogno di creare il database e le tabelle per Postfix e Web-cyradm e aggiungere un utente al database.
Web-cyradm si presenta con parecchi scripts MySQL: insertuser_mysql.sql e create_mysql.sql. Il primo inserisce gli utenti del database nel database »mysql« e crea il database »mail«. Il secondo crea le tabelle richieste e popola il database con un utente amministratore iniziale e l'utente cyrus.
Gli altri scripts sono usati per gli aggiornamenti incrementali da vecchie releases.
La password per l'utente del database »mail« in questo esempio è »secret«. Inserite l'utente e la password che preferisci.
Il nome utente per il superuser iniziale è »admin« con password »test«.
Cambia la password di default! |
Se utenti malintenzionati vogliono ottenere un accesso non autorizzato al sistema, il primo tentativo che fanno è sempre l'username e la password fornita dal produttore. E' importante che li cambiate negli scripts prima di utilizzarli. |
Dopo aver cambiato la username e la password, applicate gli scripts:
/usr/local/mysql/bin/mysql -u root -p < \ /usr/local/apache/htdocs/web-cyradm/scripts/insertuser_mysql.sql /usr/local/mysql/bin/mysql mail -u mail -p < \ /usr/local/apache/htdocs/web-cyradm/scripts/create_mysql.sql |
Nella versione 0.5.4 c'è un piccolo miglioramento nel database. Potete aggiornare il database utilizzanto il relativo script fornito con il pacchetto.
mysql mail -u mail -p < \ scripts/upgrade-0.5.3-to-0.5.4_mysql.sql |
Dalla Versione 0.5.3 web-cyradm supporta pienamente le password criptate DES. Potete usare lo script in php migrate.php per convertire le password degli utenti da testo in chiaro a criptato compatibile unix (DES).
La migrazione da testo in chiaro a criptata non può essere annullata |
Assicuratevi di avere un backup recente del database prima di fare qualunque cosa con lo script di migrazione. |