Objet : Installation MAILANY
Produit : Serveur de Mail
Date : mardi 19 Avril 2002
Version document: 0.12.51
A - Démarrage d'un nouveau serveur de MailA.1 Installation base de données
Créer une nouvelle base MySQL (par exemple " mailany ")
Dans le dossier sql de la partie web de MailAny, se trouve un fichier schemabase.sql. Pour créer les tables de MailAny, il suffit de faire executer ce fichier par MySQL sur la base précédemment créée.
Exemple :
A.2 Initialisation de la base MailAny
Editer le fichier " initmailany.sql " qui se trouve dans le sous dossier sql de manière a changer le mot de passe par défaut de l?utilisateur root (champ " PASSWORD(?root?) "):
INSERT INTO Client VALUES( '0', 'SuperUser', '', 'root', PASSWORD('root'), '1', 'Root');
INSERT INTO Societe VALUES( '1', 'Jet Multimedia Hosting', '', '', '', 'Admin');
# Force Id=0 pour user Root (MySQL le met a 1 a la creation...)
UPDATE Client SET Cl_IdClient = '0' WHERE Cl_Login = 'root';
Faire ensuite exécuter ce fichier à MySQL sur la base de MailAny :
A partir de ce moment, le login root est créer. Toutes les autres opérations sur la base devront se faire à partir de l?interface web.
A.3 Installation mailany sur serveur web
Ex : /u/httpd/services/mailany
Ex : <VirtualHost Adresse _machine:80>
ServerName Adresse _machine
DocumentRoot /u/httpd/services/mailany
TransferLog /etc/httpd/logs/mailany_access_log
ErrorLog /etc/httpd/logs/mailany_error_log
ScriptAlias /cgi-bin/ /u/httpd/services/mailany/cgi-bin/
</VirtualHost>
$DataBase = 'DBI:mysql:mailany:localhost';
$LoginDB = 'root';
$PasswdDB = '';
Attention: le login
root correspond au login utilisé pour accéder à la base
de donnée. Il doit être créé dans la table User
de mysql. Normalement, il faudrait créer un user dédié
à mailany. Ne pas oublier d'ajouter un mot de passe.
$LOGFILE = "/u/httpd/services/mailany/tools/logs/log.txt"
Changer les droits du fichier log.txt : chmod 666 log.txt
mailany_key = "6s66EZLF4glsosh3MD6zSt83ZLF5681sNr66EdNc1sje4YmDvK.E";
$port_mailany="mailany"; (au lieu de mailany-dev)
A.4 Installation mailany sur serveur de mail
Pour que le serveur de mail soit compatible avec Mailany, il faut:
Attention: Si vous avez déjà installé mailany, sauvegardez avant tar votre fichier configsrvmailany.pm en configsrvmailany.pm.old ainsi que le fichier srvmailany.pm en srvmailany.pm.old (accés à la base)
# MailAny
mailany 21212/tcp # port mailany RESERVE !!
Créer un fichier mailany dans : /etc/xinetd.d/
Dans ce fichier, on écrit :
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service mailany
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/local/bin/mailany/srvmailany.pl (Vérifier ce chemin)
log_on_failure += USERID
log_on_success += USERID
disable = no
}
Ensuite lancer la commande : /etc/rc.d/init.d/xinet.d reload
Pour les autres Red Hat :
Ajouter l'appel à mailany dans le fichier /etc/inetd.conf
mailany stream tcp nowait.500 root /usr/local/bin/mailany/srvmailany.pl mailany.pl
Réinitialiser inetd
ps -ef | grep inetd
root 174 1 0 10:06:40 ? 0:01 /usr/sbin/inetd -s
kill -HUP 174
Tester : telnet mysql 3306
Lancer la commande : mysql
Si message d?erreur c qu?il n?est pas installé.
Les programmes ont besoin de la librairie de mysql.
A la 1ere ligne changer "mailany-dev " en " mailany ".
Dans /etc/postfix/main.cf
ajouter a la fin : virtual_maps = hash:/etc/postfix/virtual
Les valeurs par défaut sont:
#!/usr/bin/perl -I/usr/local/bin/mailany/
#############################################################################################################
# PROJET : MAILANY
#############################################################################################################
# Contantes serveur de mail pour application srvmailany
#
#############################################################################################################
# V 0.1 17/01/2001 ILD - Creation
#####################################################################
#Chemin executables:
$NewAliasesExe = "/usr/bin/newaliases"; # prise en compte des nouveaux alias
$NewVirtualExe = " /usr/sbin/postmap"; # prise en compte des nouveaux virtual
$EnvoyerSMSExe = "/usr/local/bin/mailany/envoyerSMS.sh"; # Prog d'émission d'un SMS
#####################################################################
# Fichier/repertoire application mail
$FichierAliases = "/etc/postfix/aliases"; # fichier pour les alias
$FichierVirtual = "/etc/postfix/virtual"; # fichier pour les virtuals user
$FichierPassword = "/etc/passwd"; # Fichier passwd UNIX
$FichierShadow = "/etc/shadow"; # Fichier passwd SHADOW
$MailDir = "/var/spool/mail"; # Repertoire ou sont ecrit les mails à leur arrivee
# Attention sous SOLARIS MAILDir=/var/mail
$MailGroup = 6; # Numero du groupe mail (groupe utilisé pour les mails)
$RepFicIncludeAlias = "/etc/diffu"; # Repertoire pour les liste de diffusion
# (la liste correspond au fichier include de l'alias) : mkdir /et/diffu
$ftpusers = "/etc/ftpusers"; # localisation du fichier des user FTP
#####################################################################
# constante serveur Unix
$UseShadowFile = "Y"; # Si Y (Yes) utilisation d'un fichier shadow sinon
# le passord est ecrit dans le fichier passwd
#####################################################################
# Constantes de l'application srvmailany
$NbMaxUserAlias = 3; # Nombre maxi d'utilisateur par alias en ligne
# Si nb superieur => creation d'un fichier include
$FileActivite = "/var/log/srvmailany.log"; # log de l'application srvmailany
$ProcmailLog = "/var/fichieravecvirus/procmail.log"; # log de procmail
#####################################################################
# Fichier de la home directorie du user
$HomeDir = "/home";
$Shell = "/bin/bash";
$FicForward = ".forward"; # Nom du fichier utilise pour le renvoie des mails
$UserGroup = 206; # Numero du groupe Unix utilise pour la creation du user Pour créer un grpe : addgroup nom_group
$FicProcmail = ".procmailrc"; # Nom du fichier utilise pour procmail
$ProcmailEntete = "VERBOSE=YES\nLOGFILE=".$ProcmailLog."\n"; # Debut fichier .procmailrc
$ProcmailAntivirus = "\n#Antivirus\nANOMY=/opt/anomy/\n".
":0 fw\n".
"| /opt/anomy/bin/sanitizer.pl /opt/anomy/sanitizer.cfg\n";
# Donnees pour l'antivirus a inserer dans .procmailrc
$ProcmailSMS = "\n#Emission SMS\n:0 c\n".
"* !^FROM_MAILER\n".
"* ^Subject:."; # Donnees pour l'emission du SMS
$CompteApplicationSMS = "DEMO";
$MailApplicationSMS = "mailsms@intrajet.jet.jetmultimedia.fr";
$DataBase = 'DBI:mysql:mailany:localhost';
$LoginDB = 'root';
$PasswdDB = '';
Remarque: La REDHAT est configuré par défaut pour supporter la gestion des quota
Si ce n'est pas le cas, reconfigurer le kernel en tapant:
Quota support (CONFIG_QUOTA) [n] y
Télécharger les programmes sur
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.
#!/bin/sh
# Startup script for the Unix quota
case "$1" in
start)
# Check quota and then turn quota on.
if [ -x /usr/sbin/quotacheck ]
then
echo "Checking quotas. This may take some time."
/usr/sbin/quotacheck -avug
echo " Done."
fi
if [ -x /sbin/quotaon ]
then
echo "Turning on quota."
/sbin/quotaon -avug
fi
;;
stop)
if [ -x /sbin/quotaoff ]
then
echo "Turning off quota."
/sbin/quotaoff
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
Ajouter la chaine ",usrquota " sur la partition utilisée par les mails (par défaut /var)
Exemple:
/dev/sda6 /var ext2 defaults 1 1
devient
/dev/sda6 /var ext2 defaults,usrquota 1 1
Remarque: Pour connaître les partitions activent utiliser la commande "df"
Exemple:
touch /var/quota.user
touch /var/quota.group
chmod 600 /var/quota.user
chmod 600 /var/quota.group
/sbin/quotacheck -avug
Scanning /dev/sda6 [/var] done
Checked 493 directories and 522 files
Using quotafile /var/quota.user
Updating in-core user quotas
/sbin/quotaon -avug
/dev/sda6: user quotas turned on
Pour mettre les quotas en démarrage automatique, rajouter à la fin du fichier /etc/rc.d/rc.local :
if [ -x Cheminquota]
then
Cheminquota
fi
avec par exemle Cheminquota= /etc/rc.d/init.d/quota .
>Export EDITOR=vi
>Edquota jojo
Quotas for user jojo:
/dev/sda6: blocks in use: 184, limits (soft = 0, hard = 0)
inodes in use: 15, limits (soft = 0, hard = 0)
Remarque: si vous n'avez pas de partition en quota (ex:/dev/sda6),
Pour plus d'info aller à l'adresse http://www.io.com/help/linux/Quota.html
Pour récuperer les mails déjà existant sur un serveur de mail, il faut que l'administrateur crée à l'aide du site web d'administrattion :
Ensuite, il faut créer un fichier type tableur qui fourni les enregistrements suivants:
Syntaxe: importbal.pl [-|+]c [-|+]b [-|+]v <Nomfichier>
+c création du compte en base
-c On considére que le compte existe déjà
+b création de la boite sur le serveur de mail
-b On considére que la boite existe déjà
+v création d'un virtual User sur le serveur de mail
-v On considére que le virtual user existe déjà
Exemple: ./importbal.pl +c -b +v importfile.txt
Informations fichier:
--------------------
Structure de chaque enregistrement:
domaine|loginbal|nom|prenom|adresse|telephone|password|antivirus|forward|telsms|sms|filtresms|
Utiliser le # en début de ligne lorsque vous insérez des commentaires
Seuls les 3 premiers champs sont obligatoires.
Remarque: Pour mettre une ligne en commentaire, il suffit de commencer la ligne par un #
Exemple avec uniquement les champs obligatoires:
|intelcom.fr|antoine.fourdan|Fourdan|
|intelcom.fr|alexis.cercel|Cercel|
|newwave.fr|fwave |Palacios|
Il suffit ensuite de transférer le fichier sur le serveur d'administration de mailany et d'éxécuter:
importbal.pl -c -b -v <nomfichier>
Pour récuperer les alias déjà existant sur un serveur de mail, il faut que l'administrateur crée à l'aide du site web d'administrattion :
Syntaxe: importlistediff.pl [-|+]a [-|+]b <Nomfichier>
+a creation de la liste de diffusion en base
-a On considere que la liste de diffusion existe en base
+b creation de la liste de diffusion sur le serveur
-b On considere que la liste de diffusion existe sur le serveur
Exemple: ./importlistediff.pl +a -b importfile.txt
Informations fichier:
--------------------
Structure de chaque enregistrement:
nomlistediff@domaine|email1,email2,email3,...|
Attention a ne pas oublier le dernier |
Utiliser le # en début de ligne lorsque vous insérez
Informations fichier:
--------------------
Structure de chaque enregistrement:
List_de_diffusion @ domaine.com|email1,email2,email3,..,emailn|
Utiliser le # en début de ligne lorsque vous insérez des commentaires
Il suffit ensuite de transférer le fichier sur le serveur d'administration de mailany et d'éxécuter:
importlistediff.pl +a -b <nomfichier>