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 Mail
A.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:

    1. Se connecter en tant que root
    2. Aller dans le répertoire: cd /usr/local/bin/
    3. Créer le répertoire mailany : mkdir mailany
    4. Lancer une extraction des programmes: cd mailany; tar xvzf srvmailany.tar.gz
    5. 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)

    6. S'assurer que les exécutables appartiennent à root
    7. Configurer le port de communication sans le fichier "/etc/services":
    8. # MailAny

      mailany 21212/tcp # port mailany RESERVE !!

    9. Pour la Red Hat 7.1
    10. 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

    11. S'assurer que le port de communication mysql (en général port 3306)est ouvert avec les serveur de base de donnée (par défaut port 3306)
    12. Tester : telnet mysql 3306

    13. S'assurer que Mysql est installé sur le serveur de mail (inutile d'activer mysqld).
    14. Lancer la commande : mysql

      Si message d?erreur c qu?il n?est pas installé.

      Les programmes ont besoin de la librairie de mysql.

    15. Vérifier que les modules perl cpan sont installé sur le serveur:

 

    1. Editer le fichier /usr/local/bin/mailany/srvmailany.pm
    2. A la 1ere ligne changer "mailany-dev " en " mailany ".

      Dans /etc/postfix/main.cf

      ajouter a la fin : virtual_maps = hash:/etc/postfix/virtual

    3. Configurer l'application srvmailany en éditant le fichier /usr/local/bin/mailany/configsrvmailany.pm
    4. 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";

       

    5. Définir la base de donnée en éditant le fichier /usr/local/bin/mailany/srvmailany.pm
    6. $DataBase = 'DBI:mysql:mailany:localhost';

      $LoginDB = 'root';

      $PasswdDB = '';

    7. S'assurer que les quotas sont opérationnels sur les partitions de la home directory ($HomeDir) et sur le répertoire des mails ($MailDir). Pour plus de précisions voir chapitre "Installation des Quotas sur le serveur de mail"
    8. S'assurer que le produit vacation est installé. Commande taper: Vacation
    9. Pour avoir plus d'infos, aller sur http://sourceforge.net/projects/vacation
    1. Installation des Quotas sur le serveur de mail

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

    1. Récupération des mails existants

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>

    1. Récupération des alias existants

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>