Logiciels : installation

Logiciels : installation jpp mer 27/01/2010 - 16:49

Ce chapitre sera destiné à détailler l'installation de logiciels spécifiques.
Chaque logiciel sera présenté dans son contexte d'utilisation.
Toutefois l'installation de certains logiciels peut être reportée dans un chapitre différent, par exemple :

 

taxonomie

LDAP : Installation

LDAP : Installation jpp mer 27/01/2010 - 17:02

Nous sommes plusieurs à la maison à travailler sur des machines différentes et régulièrement l'un demande à l'autre : "peux-tu me donner le mail (ou le téléphone) de X" (phénomène identique dans une petite structure professionnelle).
Il est donc intéressant de disposer d'un annuaire centralisé contenant l'ensemble des données de nos contacts.
J'ai donc décidé de créer un annuaire partagé et LDAP a été choisi comme outil car:

  • C'est sa spécialité "Lightweight Directory Access Protocol" ou Protocole Simple de Gestion d'Annuaire
  • Il est interfacé avec la plupart des gestionnaires de mail.
  • Il est réputé pour être économe en moyens mémoire et CPU.

LDAP : Linux

LDAP : Linux jpp ven 29/01/2010 - 21:16

Pour créer cet annuaire il faut installer des "paquets" suivants (pour Debian) :

  1. slapd  (le démon)
  2. ldap-utils

La structure de notre annuaire sera simple :

  • un "TOP" pour notre domaine "domain.net"
  • Une branche "users" pour stocker les utilisateurs enregistrés (accès à l'annuaire)
  1. Un utilisateur "manager" : qui gère, entre autres les utilisateurs et qui peut effectuer des mises à jour.
  2. Un utilisateur  "totor" : standard pour les accès en lecture seule
  3. Le cas de l'utilisateur "propriétaire" : root (propriétaire de la base de données) est traité lors de la création de la base, il ne doit en général pas être utilisé. Son mot de passe doit donc rester secret !
     

Le fichier slapd.conf ne doit pas être lisible par tous :
-rw-r-----   1 root openldap  3676 2010-01-26 20:29 slapd.conf
S'il n'est pas correct le remettre "au secret" par :

chown root:openldap slapd.conf

chmod 640 slapd.conf

  • Une branche "people" qui contiendra nos contacts.

Une fois les paquets installés il faut s'occuper de la configuration et celle-ci est quasiment intégralement contenue dans le fichier "/etc/slapd.conf"
Dont je présente les extraits importants ci dessous
--------------------------------------------------
backend         bdb
database        bdb

# The base of your directory in database #1
suffix          "dc=domaine,dc=net"
rootdn          "cn=root,dc=domaine,dc=net"
rootpw          le_mot_de_passe_secret_non_utilisé
# Where the database file are physically stored for database #1
directory       "/var/lib/ldap/domaine.net"
...
--------------------------------------------------

Vérifiez que les "acl" (Access Control List) sont corrects pour la mise à  jour des contacts et la mise à jour des mots de passe. Nos "acl" sont extrêmement simples et LDAP peut faire beaucoup mieux !
--------------------------------------------------
...
# users can modify their passwords

access to attrs=userPassword
        by dn.regex="cn=manager,ou=users,dc=izzop,dc=net" write
        by dn.regex="cn=root,dc=izzop,dc=net" write
        by anonymous auth
        by self write
        by * read
access to dn.base="" by * read

# The manager has full write access to people,root too, everyone else
# can read everything.
access to dn.children="ou=people,dc=izzop,dc=net"
        by dn.regex="cn=manager,ou=users,dc=izzop,dc=net" write
        by dn.regex="cn=root,dc=izzop,dc=net" write
        by * read
# only root can update all
access to *
        by dn.regex="cn=manager,ou=users,dc=izzop,dc=net" read
        by dn.regex="cn=root,dc=izzop,dc=net" write
        by * read
...
--------------------------------------------------
Ainsi seul notre utilisateur principal "manager" peut modifier les mots de passe et en secours le "root".
S'assurer que l'utilisateur principal "manager" et le propriétaire "root" peuvent accéder à tout en mise à jour :

--------------------------------------------------
...
access to *
        by dn.regex="cn=manager,ou=users,dc=domaine,dc=net" read
        by dn.regex="cn=root,dc=domaine,dc=net" write
        by * read
...
--------------------------------------------------

stopper le service "slapd" et détruire la base "bdb" (c'est celle créée par défaut) située dans /var/lib/ldap/domaine.net :
cd /var/lib/ldap/domaine.net

rm -f *

Copier ceci dans le fichier /var/lib/ldap/domaine.net/DB_CONFIG pour optimiser le fonctionnement

set_cachesize 0 2097152 0
set_lk_max_objects 1500
set_lk_max_locks 1500
set_lk_max_lockers 1500

Ces valeurs ne sont pas miraculeuses mais elles fonctionnent fort bien pour la taille d'annuaire visée.
Démarrer le service "slapd" pour recréer la base ldap puis impérativement le stopper ensuite pour exécuter les opérations suivantes.
Créer un fichier "LDAPTOP" de définition de notre "structure" d'annuaire contenant :

----------------- LDAPTOP --------------------------
dn: dc=domaine,dc=net
dc: domaine
description: Mon domaine à moi
o: Domaine et Cie
objectClass: dcObject
objectClass: organization
structuralObjectClass: organization


dn: ou=users,dc=domaine,dc=net
description: les utilisateurs
objectClass: organizationalUnit
objectClass: top
ou: users
structuralObjectClass: organizationalUnit


dn: ou=people,dc=domaine,dc=net
description: Les gens
objectClass: organizationalUnit
objectClass: top
ou: people
structuralObjectClass: organizationalUnit
-------------------------------------------------

Exécuter la commande suivante (slapd stoppé !) pour intégrer ces éléments dans la base :

slapadd -f /etc/ldap/slapd.conf -l /root/LDAPTOP -c -v

Créer un fichier "LDAPMANAGER" (définition de nos utilisateurs) contenant -------------------------------------------------
dn: cn=manager,ou=users,dc=domaine,dc=net
cn: manager
givenName: manager
sn: Le responsable de l'annuaire
userPassword: le_mot_de_passe_du_manager_qui_est_secret
structuralObjectClass: inetOrgPerson
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: organizationalPerson


dn: cn=totor,ou=users,dc=domaine,dc=net
cn: totor
givenName: totor
sn: utilisateur quelconque
userPassword: le_mot_de_passe_pour_lecture_seule
structuralObjectClass: inetOrgPerson
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: organizationalPerson
-------------------------------------------------

Lancer la commande suivante pour intégrer ce fichier :

slapadd -f /etc/ldap/slapd.conf -l /root/LDAPMANAGER -c -v

Il reste quelques commandes pour améliorer les performances futures :

slapindex -f /etc/ldap/slapd.conf
cd /var/lib/ldap/domaine.net
chown -R openldap:openldap *

Dès que le service "slapd" est relancé l'annuaire est alors prêt pour l'enregistrement des adresses de vos contacts.

Si vous disposez déja de données de contact vous pouvez les mettre au format suivant afin de les intégrer automatiquement ( awk est votre ami si le nombre d'adresses est étevé ) et les stocker dans le fichier "MESADRESSES" :
---------------------------------------------------------
dn: cn=NOM,ou=people,dc=domaine,dc=net
displayName: LE NOM DE DISPLAY
objectClass: inetOrgPerson
objectClass: person
objectClass: organizationalPerson
sn: NOM
givenName: LE NOM DE DISPLAY
mobile: 06 01 02 03 04
homePhone: 01 01 02 03 04
homePostalAddress: ADRESSE_RUE$ADRESSE_VILLE$CODE8POSTAL$PAYS
cn: NOM
mail: MAIL@DOMAINE
--------------------------------------------------------------------------------------
Vous pourrez alors lancer les commandes destinées à  intégrer votre fichier d'adresses  ( les options "-c" permettent de continuer sur erreur "-v" donne un programme plus "bavard")  après avoir stoppé le service "slapd"
# pour Debian; Ubuntu ...

/etc/init.d/slapd stop

# pour d'autres

service slapd stop

slapadd -f /etc/ldap/slapd.conf -l /tmp/MES_ADRESSES -c -v

Relancer le service "slapd"

Un utlitaire assez "sympa" à  utiliser pour voir et éventuellement mettre à jour le contenu d'un annuaire : "luma", c'est parfait pour changer un mot de passe. D'autres utilitaires graphiquesc LDAP: "gq" ou "lat" moins "amusants" mais aussi efficaces, on peut aussi citer "jxplorer" qui, écrit en Java, existe sur la plupart des plateformes.
 

LDAP : la sécurité

LDAP : la sécurité jpp ven 29/01/2010 - 21:12

J'ai maintenant un bel annuaire LDAP, il marche bien et contient, déjà, tout plein d'adresses mail, postales.
Et si, horreur, un vilain bug passant par là me faisait perdre toutes ces données ?
Je n'ose même pas y penser, les remarques désobligeantes de la famille, la nécessité de re-saisir ... noms, adresses mail, numéros de téléphone, être obligé de parcourir le site pagesjaunes (ou blanches) à la recherche d'une partie des données perdues.
Il me faut une solution ! Et vite !
Heureusement il y a "ldap-utils" et il y a là dedans notre sauveur, on y trouve entre autres outils un petit programme appelé "slapcat" qui permet d'effectuer une copie ( "cat" ) d'un annuaire LDAP.
Un petit script et nous voilà à l'abri d'une grosse catastrophe.

#!/bin/bash
mark=`date +%y_%m_%d `
REPSAUVE='/ailleurs'
DOMAINE='dc=domaine,dc=net'
SAUVE=
$REPSAUVE'/DumpLDAP_'$mark'.ldif'
/usr/sbin/slapcat -f /etc/ldap/slapd.conf -b "$DOMAINE"  -l $SAUVE
ret=$?
if [ $ret -ne 0 ]
   then
    echo 'Erreur sauve ldap !!!'
fi
exit $ret

Ce petit script effectue la copie dans un répertoire "/ailleurs" que vous pouvez mettre n'importe où, de préférence sur un autre disque. La sauvegarde doit être effectuée annuaire en marche et l'exécution peut être "cronée" pour s'assurer de la régularité de la sauvegarde. Au début tous les jours, puis toutes les semaines.
Le vidage est effectué au format "ldif" qui est un standard dans le domaine LDAP et les fichiers sont "datés" pour l'historique.
Le format "ldif" peut être utilisé avec un grand nombre d'outils tels ceux nous ayant permis de créer la structure de l'annuaire.

LDAP : haute disponibilité

LDAP : haute disponibilité jpp ven 29/01/2010 - 23:49

J'ai un portable sous Linux (cela vous étonne ?) et celà m'ennuierai d'être séparé de mes chers contacts.
Je pourrais, bien sûr, effectuer une copie locale des données. Cette opération est en général très simple à faire et est déclenchable dans les propriétés de l'annuaire de votre programme de mail favori  (Evolution et Thundrbird le font très bien).
Mais, la nature humaine étant ce qu'elle est, on oublie la mise à jour ... et ... un seul être vous manque et tout est dépeuplé , qu'est ce que je raconte ? Il nous manquera toujours l'adresse de M. Untel dont on a un besoin urgent.
La solution s'appelle "réplication". Il suffit d'installer un petit LDAP "local" et d'expliquer aux deux système que l'un est "Maître" et l'autre "esclave".
L'esclave interroge régulièrement le maître :
"Maître avez-vous reçu des mises à jour depuis la dernière que vous m'avez fait l'honneur de me communiquer et qui portait le numéro NNN ? "
Et le maître répond : "non esclave je n'ai aucune mise à jour " ou bien "Oui esclave j'ai des mises à jour, les voici ......".
Grâce aux développeurs de OpenLdap il existe une possibilité toute simple de réaliser ce miracle. Quelques petites modifications dans les paramètres de configuration et ... le tour est joué.

Modifications du "Maître"
Dans le fichier "/etc/ldap/slapd.conf", oui oui, j'ai dupliqué le fichier avant d'y toucher :
Au début du fichier de configuration il faut charger dynamiquement un module spécique :

moduleload syncprov

Syncprov = Synchronization Provider ?
Un peu plus loin dans le fichier, après la directive :
"database        bdb" il faut ajouter les lignes suivantes :

overlay syncprov
syncprov-checkpoint 1 5
replica host=MON_ESCLAVE:489
        binddn="cn=root,dc=domaine,dc=net"
        bindmethod=simple credentials="le_mot_de_passe_secret_de_root"
        syncprov-reloadhint TRUE

Cette petite manip permet au maître de savoir qu'il est maître de l'esclave nommé ici, les autres peuvent aller se faire voir !
Une fois "slapd" redémarré le maître est prêt. On n'est pas en SSL, ni sécurisé à mort, les mots de passe sont en clair dans le fichier ... on peut faire autrement, mais si c'est plus beau c'est aussi beaucoup plus difficile. Et puis le fichier de config n'est lisible que par "root" (c'est moi) et par le groupe "openldap" où je n'ai mis que le user du même nom. Et en plus les adresses dont je dispose ne sont pas classées "données sensibles", on admettra donc ce trou de sécurité.

Modifications de l'esclave.
Peu après la directive :
"database        bdb" il faut ajouter les lignes suivantes :

syncrepl rid=007
        provider=ldap://MON_MAITRE:489
        type=refreshOnly
        interval=00:02:00:00
        searchbase="dc=domaine,dc=net"
        filter="(objectClass=*)"
        scope=sub
        schemachecking=off
        bindmethod=simple
        binddn="cn=root,dc=domaine,dc=net"
        credentials=
"le_mot_de_passe_secret_de_root"

La petite zone "00:02:00:00" permet de régler la fréquence de la mise à jour (ici 2 heures) à la seconde près !
Dès le démarrage le client sait qu'il a un maître et va s'enquérir des nouveautés auprès de son maître.

On peut même s'amuser à effectuer l'opération suivante ( SUR L'ESCLAVE !)  :

  1. Stopper "slapd", sur l'esclave je me répète
  2. Aller dans le répertoire "/var/lib/ldap/domaine.net"
  3. Y détruire tout (sauf le fichier DB_CONFIG), si on est bien sur la machine esclave !
  4. Relancer "slapd"

Et le miracle s'accomplit, l'annuaire est "rempli" de données toutes fraîches, c'est  m a g i q u e !

Donc comme cela les adresses de mon portable seront toujours "au top" car il est souvent branché sur le réseau au contact direct de son maître préféré.
Le seul problème est que je ne peux pas saisir d'adresses sur le portable, j'ai d'ailleurs paramétré le client mail en lecture seule.
 

LDAP : paramétrage clients

LDAP : paramétrage clients jpp mer 27/01/2010 - 17:43

Maintenant que notre annuaire est opérationnel il faut pouvoir nous en servir et l'intermédiaire le plus courant est tout bêtement votre programme de gestion des mails.
Il existe des interfaces permettant de consulter les annuaires LDAP et même des possibilités d'accès à cet annuaire par le Web, mais c'est une autre histoire.

Les pages suivantes présentent le paramétrage de différents clients mails.

Paramétrage Evolution

Paramétrage Evolution jpp ven 29/01/2010 - 17:16

"Evolution" le client mail le plus abouti (et le plus complexe) sur Linux :
Se rendre dans l'onglet "contacts" puis effectuer un clic droit dans la colonne de gauche (quelle précision) et de choisir : "Nouveau carnet d'adresses".
Il faut ensuite remplir le premier onglet :

  1. Nommer le carnet d'adresses ici "kmail"
  2. Donner l'adresse ou le nom du serveur si vous avez un DNS.
  3. Donner le port (389 en standard, 489 ici).
  4. Choisir une connexion "pas de chiffrement" (on est chez nous à l'abri du grand méchant loup ! ).
  5. Prendre l'authentification "En utilisant de nom distinctif (DN)"
  6. Dans la zone "Connexion" inscrire "cn=manager,ou=users,dc=domaine,dc=net" pour ceux qui doivent effectuer des mises à jour des contacts ou "cn=totor,ou=users...." pour ceux qui n'ont qu'un accès en lecture. Pour ces derniers on pourraitt aussi se connecter "Anonymement".

 


Pour le deuxième onglet c'est beaucoup plus simple :

  1. Dans "base de recherche" on indique "ou=people,dc=domaine,dc=net"
  2. Pour "Domaine de recherche choisir "Un"
  3. "Filtre de recherche" on ne met rien, ça c'est sympa.
  4. Pour "Délai" laisser à 5 minutes
  5. Pour "Limite de téléchargement" laisser la valeur 100, sauf si vous avez une grosse base de contacts et que vous voulez la récupérer d'un seul coup.
  6. "Parcourir..." ne pas cocher

Il suffit ensuite  de valider et de relancer Evolution qui vous demandera le mot de passe au démarrage, pensez à cocher la case "Se souvenir du mot de passe".

Vous avez alors un accès à votre liste de contacts partagés.

 

Paramétrage Thunderbird

Paramétrage Thunderbird jpp ven 29/01/2010 - 17:22

Le client suivant, parmi les plus connus dont la version 2 vient de sortir est "Thunderbird" qui existe sous différents systèmes dont Windows, Mac et Linux.
Thunderbird sous Windows XP.
Il faut aller dans "Options" sélectionner l'onglet "Rédaction" puis dans l'onglet "Addressage" sélectionner "Serveur d'annuaire".


Cliquer ensuite sur "Modifier les annuaires...".

Cliquer ici sur "Ajouter".
La boite de dialogue qui s'ouvre alors devant nos petits yeux émerveillés présente plusieurs onglets :

Premier onglet.

  1. Nom : nommer votre carnet d'adresse
  2. Nom d'hôte : adresse IP ou nom du serveur d'annuaire
  3. Nom distinct de base : c'est la base de recherche des contacts "ou=people,dc=domaine,dc=net".
  4. Numéro de port : le port standard est le 389 (489 chez moi)
  5. Connecter avec l'utilisateur : c'est votre utilisateur, ici "cn=manager,ou=users,dc=domaine,dc=net" ou "cn=totor,ou=users,dc=domaine,dc=net".
  6. On ne coche pas "Utiliser une connexion chiffrée, on est en principe dans une zone de confiance !

Deuxième onglet : "Hors connexion" , laissez tomber pour l'instant, vous pourrez éventuellement y revenir plus tard (quand la connexion sera OK) pour effectuer une copie locale de l'annuaire.

Troisième onglet : "Avancé"
cocher "Un niveau" et laissez le filtre à blanc.

Vous pouvez maintenant valider avec "OK".

 

 

 

 

 

 

 

Le serveur d'annuaire apparait dans la liste :un simple "OK" suffit à vous ramener à l'écran suivant.


où il ne faut pas oublier de sélectionner l'annuaire que nous venons de définir avant le "OK" final sinon cela ne sert à rien d'avoir fait tout cela !

La première utilisation de l'annuaire vous amènera à saisir le mot de passe sans oublier de cocher "Utiliser le gestionnaire....." pour enregistrer le mot de passe définitivement.

Et en plus  ça marche :

On voit bien que l'annuaire des contacts est garni.

Allez, je vous quitte j'ai de nouveaux contacts à saisir ! Quel bagne !

paramétrage OutLook

paramétrage OutLook jpp ven 29/01/2010 - 20:22

"OutLook"
Oui ! On peut même utilier OutLook ! Le paramétrage de OutLook (ici OutLook Express, cela doit aussi être possible dans la version "professionnelle" de OutLook si un administrateur malin ne vous l'a pas interdit ! ) est possible !
Il suffitt aller dans le menu Outils --> comptes puis sélectionner l'onglet "Service d'annuaire"

On clique alors "Ajouter" --> "Service d'annuaire" pour déclencher le wizard de connexion à un annuaire.

On entre dans l'assistant et on indique :
Serveur d'annuaire : le nom du serveur ou l'adresse IP,

Cocher "Connexion à mon serveur LDAP requise", si on ne se connecte pas à l'annuaire quel est l'intérêt d'en avoir un ?


Avant de cliquer "Suivant".

Ici le gros du travail, il faut arrêter de cliquer et travailler du clavier ...

  • "Nom du compte" : pour nous "cn=manager,ou=users,dc=domaine,dc=net" ou "cn=totor...."
  • "Mot de passe" : mettre le bon !
  • Ne pas cocher la case "Se connecter ... sécurisé (SPA) ", on n'est pas des animaux.

Cliquer "Suivant" ...

Pour cette phase vous êtes libres de choisir "Oui" ou "Non", je vous conseille "Non" car vous ne pourriez envoyer du courrier qu'à des individus répertoriés.
Mais cela pourrait éviter de répondre par erreur (horreur ?) à un SPAM !
Il ne vous reste plus qu'à "Terminer"  et "Fermer" pour pouvoir jouir en toute quiétude de votre annuaire ?


Remarquez au passage que la connexion est marquée "Disponible" puisque j'ai mis le bon password.
Aller, on va vite tester ...
Et, bon sang de bonsoir, cela ne marche pas ! Que se passe-t-il ? C'est ce fichu "assistant" qui ne m'a pas permis de préciser mon port "489" (vous n'aurez peut-être pas cet ennui si vous prenez le port standard 389, mais vous aurez le suivant !). Il faut que j'aille modifier les propriétés de mon service d'annuaire, clic, clic et reclic et clic droit, clic et "489", clic, clic et reclic
Malgré toute cette bonne volonté cela ne marche pas encore ! Il ne trouve rien !
Il faut retourner modifier les propriétés de notre annuaire dans l'onglet "avancé" (clic .... citer la bonne parole ... clic ... clic) :

 

 

 

 

 

 

 

 

 

 

Il faut absolument préciser notre base de recherche, on se demande bien à quoi pensait l'assistant ! Il aurait bien besoin d'être assisté !

A partir de là le résultat est bien meilleur, lorsque l'on interroge l'annuaire on arrive à  trouver les contacts, mais dieu que c'est lourd pour établir les critères de sélection.
Thunderbird ou Evolution permettent de trouver un correspondant en deux xoups de cuiller à pot.
Ici il faut cliqueter comme un fou avant d'arriver à récupérer les quelques malheureux noms que l'on cherche fébrilement pour leur envoyer nos pensées les plus intimes.

Et je vous présente fièrement le résultat  :

C'est pas bien sorcier quand même !!!

Libre Office 7.0

Libre Office 7.0 drupal_admin lun 17/08/2020 - 13:50

J'ai reçu un mail m'informant de la sortie de LIbre Office en version 7.0, je me suis haté de télécharger ce qu'il faut pour la Debian Buster de mon portable de vacances depuis le site https://www.libreoffice.org/download/download/
L'installation n'est pas simplifiée car les fichiers téléchargés sont des fichier "tar.xz" qu'il faut décompresser dans un coin tranquille pour récupérer les différents ".deb", mais celà évite de télécharger un grand nombre (42 pour la partie principale + quelques uns pour la langue) de fichiers ".deb" et c'est finalement très positif.
A partir de ce moment là un "dpkg -i *deb" dans le répertoire installe le tout très correctement :
- installation dans /opt/libreoffice7.0, c'est propre et cela ne "casse" rien.
- menus installés n'écrasant pas la version précédente et montrant "7.0" dans tous les intitulés de menus.
L'utilisation est sans problèmes et conserve bien la liste des derniers fichiers utilisés. A l'usage il semble que c'est plutôt plus rapide, chargement et exécution, et ne dépayse pas.
je n'ai pas testé les nouvelles fonctionnalités mais la compatibilité avec la version précédente est parfaite. Les fichiers "anciens" sont ouverts sans erreurs.
Je vais réaliser quelques autres tests ...
Au fait, au moins pour Debian 10, la version actuellement disponible (le 28 août 2020) est bien une 7 et même une 7.0.1.

Migrations Debian

Migrations Debian drupal_admin mer 27/03/2019 - 13:26

Ce groupe d'articles est consacré aux migration de version Debian.
J'utilise Debian depuis des décennies et j'ai eu à effectuer de nombreux changements de version mais, pour les plus anciens je n'ai pas conservé d'archives.

De Jessie a Stretch

De Jessie a Stretch drupal_admin mar 27/06/2017 - 00:20

J'ai migré dernièrement la plupart de mes machines de "Jessie" à "Stretch" et cela s'est en moyenne fort bien passé malgré quelques "ennuis" mineurs mais parfois un peu surprenants.
Quelques utilitaires (au moins un) ont changé de répertoire et tous les appels indiquant un chemin complet pour ne pas dépendre du PATH échouent. C'est le cas de "tunctl" qui est passé de /usr/sbin à /usr/bin et cela m'a permis de lancer des machines virtuelles sans accès réseau, mais la réparation est facile ... après il faut "tuer" ces diables de machines fermées du monde extérieur.
J'ai aussi eu une machine qui utilisait "gdm3" pour le login X et brusquement ne présentait plus l'interface X en prétextant un plantage de "gnome-session", la solution rapide ... remplacer "gdm3" par "lightdm", mais Madame a été perturbée par ce nouvel écran de login.
Dans un autre cas la version de Thruk a été rendue inopérante, mais cette version avait été compilée localement et commençait à dater un peu ... j'ai donc au passage installé la dernière version, mais c'est une autre histoire que je vous conte dans un autre article.

Sur une autre machine j'ai voulu installer MariaDB (proposé en standard dans Stretch) à la place de Mysql, mais j'avais oublié que cette machine disposait d'un Mysql 5.7, l'installation de MariaDB a signalé une erreur lors de l'installation de la partie serveur car certaines tables présentaient des incompatibilités, la solution est très simple :

Vérifier la dernière sauvegarde, il faut toujours en faire une avant manip risquée !
Sauvegarder ses paramètres (/etc/mysql)

  • Tout effacer        apt-get remove --purge mariadb-server
  • Ré-installer        apt-get install mariadb-server
  • Re-créer Schémas et Utilisateurs,
  • Remettre en place un paramétrage correct, attention il y a des différences entre Mysql et MariaDB
  • Recharger la dernière sauvegarde, ça sert les sauvegardes ! En plus je disposais d'une copie du disque de la machine virtuelle.

Et cela fonctionne, ce site est sur la machine virtuelle en question.

 

De Stretch à Buster

De Stretch à Buster drupal_admin ven 15/03/2019 - 12:59

Ce petit livre (en cours de réalisation) pour expliciter les actions à faire pour migrer de Debian 9 (Stretch) à Debian 10 (Buster). Buster n'étant pas encore mis en "stable" je me limite à des tests sur des machines virtuelles (sous KVM ou XEN).

  1. Test sur une MV simple (Xen), servira aussi de test de Linux 5.0.2 Xénifié.
  2. Test sur une MV applicative (KVM) (Apache, PHP, MariaDB ...), en partie pour effectuer aussi un passage de PHP7.0 à une version ultérieure.
  3. Passage d'une machine de production.

La migration de quelques autres MV, en suivant les règles, s'est passée sans incidents. Ce site va migrer dès le passage de Buster en "stable".

Migrer MV simple

Migrer MV simple drupal_admin ven 15/03/2019 - 13:05

Debian passage de "Stretch" à "Buster" sur une machine virtuelle "simple" (Xen).

J'ai réalisé les tests sur une machine virtuelle déjà installée en "Stretch".
J'ai fait le premier test dans une VM de test pour bien vérifier la marche à suivre ... et tester le kernel 5.0.2 en version "Xenifiée".
Ordre prévu des opérations :
1) Mise à niveau "Stretch" de cette machine.
"apt-get update + apt-get upgrade" : mettre à jour la machine au dernier niveau de Stretch.
Toutes les commandes suivantes sont exécutées avec "... 2>&1 | tee FICHIER.LOG" afin de garder une trace complète des actions.
2) Modifier le fichier sources.list :

deb http://ftp.fr.debian.org/debian buster main
deb http://ftp.fr.debian.org/debian buster-updates main
deb http://security.debian.org buster/updates main

3) Effacer les fichiers de paquets "Stretch" :
dans /var/lib/apt/lists : supprimer tous les fichiers.
4) récupérer les information paquets de "Buster" :

- lancer "apt-get clean"
- lancer "apt-get update" :

Get:1 http://security.debian.org buster/updates InRelease [38,3 kB]
Get:2 http://ftp.fr.debian.org/debian buster InRelease [158 kB]
Get:3 http://ftp.fr.debian.org/debian buster-updates InRelease [46,8 kB]
Get:4 http://ftp.fr.debian.org/debian buster/main amd64 Packages [7 891 kB]
Get:5 http://ftp.fr.debian.org/debian buster/main Translation-fr [2 281 kB]
Get:6 http://ftp.fr.debian.org/debian buster/main Translation-en [5 989 kB]
Fetched 16,4 MB in 2s (5 644 kB/s)                               
Reading package lists... Done

Les nouveaux fichiers doivent apparaître dans /var/lib/apt/lists :

ftp.fr.debian.org_debian_dists_buster_InRelease
ftp.fr.debian.org_debian_dists_buster_main_binary-amd64_Packages
ftp.fr.debian.org_debian_dists_buster_main_i18n_Translation-en
ftp.fr.debian.org_debian_dists_buster_main_i18n_Translation-fr
ftp.fr.debian.org_debian_dists_buster-updates_InRelease
security.debian.org_dists_buster_updates_InRelease

5) Effectuer une mise à jour simple.
Lancer "apt-get upgrade" pour effectuer une mise à jour simple. Pour ce premier test cela télécharge 572 paquets. J'ai choisi de relancer les services sans confirmation.
Voir ici la liste de contrôle de cette première mise à niveau (c'est un peu long !).
Après un certain temps (un temps certain ?) la machine est enfin à jour.
Début : 11:27
Fin      : 11:45
Un "cat /etc/debian_version" donne un magnifique "buster/sid"
et on peut remarquer l'installation d'un noyau "4.19" un peu plus récent que le "4.9" de Stretch.
6) Reboot.
Je reboote la machine pour valider le tout avant de passer à l'opération suivante. La machine a bien rebooté et démarré sur le noyau 4.19.

7) Effectuer l'upgrade de version.
- "apt-get dist-upgrade" me signale de nombreux paquets "obsolete" à supprimer par "apt-get autoremove" que je décide de faire immédiatement et stoppe le "dist-upgrade".
-- "apt-get autoremove" supprime 28 paquets et récupère 275Mb de disque.
-- "apt-get dist-upgrade" qui signale d'autres paquets à passer en "autoremove", 401 paquets upgradés et 326 nouveaux paquets installés.
Il faudra donc relancer un "apt-get autoremove" après.
Début : 11:56
Fin   : 12:14
8) Nettoyage final.

-- "apt-get autoremove" et 464MB de disque libérés.
Très rapide : #2 minutes.
On a alors une machine "propre" en Buster, on la reboote pour vérifier et le redémarrage se passe fort bien : le passage est réussi sans aucune anomalie.
Etape suivante migrer une machine plus complexe avec apache, PHP, une base de données ....

Au démarrage les seules remarques évidentes sont un changement de couleur :

  • Lors du boot (interface grub plus sombre)
  • Lors de la connexion à X où le fond d'écran semble, là aussi, plus sombre.

J'ai répété cette procédure sur une autre machine de test et tout a fonctionné comme prévu.

Petits incidents

Petits incidents drupal_admin ven 05/07/2019 - 12:19

En cours de réalisation.

J'ai quand même rencontré quelques incidents dont voici le détail.

taxonomie

Migrer MV complexe

Migrer MV complexe drupal_admin ven 15/03/2019 - 13:08

Passage de Stretch à Buster d'une machine applicative.
La machine visée (KVM) comporte :
- un serveur Web
- PHP
- Une base de données MariaDB
- Un processeur virtuel, 40 Go de disque et 1024 Mb de RAM.
Seul OSSEC présent sur la machine d'origine ne sera pas traité ici.
Le serveur Web utilise une copie de ce site.
On reprend les étapes utilisées pour la machine "simple".
Remarque :
Les listes de mises à jour peuvent être longues et "sortir" de l'écran il est donc conseillé de lancer les commandes avec "tee" vers un fichier de log : "apt-get upgrade 2>&1 | tee /tmp/MONUPGRADE.LOG" on aura ainsi accès au listing intégral en cas d'incident. On peut aussi aller boire un café pendant que ça "tourne" !
1) Mise à niveau de Stretch par la trilogie :
-- apt-get clean
-- apt-get update
-- apt-get upgrade
Ce dernier ne donne que quelques paquets à traiter en "autoremove", ce qui est fait dans la foulée.
2) Modification du fichier "sources-list" :
récupération de celui de la machine précedente avec ajout de "contrib non-free".

deb http://ftp.fr.debian.org/debian buster main contrib non-free
deb http://ftp.fr.debian.org/debian buster-updates main contrib non-free
deb http://security.debian.org buster/updates main contrib non-free

3) Effacer les fichiers de paquets "Stretch" :
Dans /var/lib/apt/lists : supprimer tous les fichiers.
4) récupérer les information paquets de "Buster" :
-- apt-get clean ; apt-get update" 
5) première mise à jour "Buster" :
-- apt-get upgrade
601 paquets téléchargés (301MB) 184MB d'espace disque supplémentaire, 401 laissés en l'état.
Redémarrage automatique des services.
Debut : 19:10
Fin     : 19:34
6) Reboot pour démarrer sur le nouveau noyau 4.19.
7) Effectuer l'upgrade de version.
-- Commencer par nettoyer : "apt-get autoremove"
-- Continuer par : "apt-get dist-upgrade"
446 paquets "upgradés", 352 nouveaux, 726MB à télécharger,1235MB d'espace supplémentaire.
Début : 19:41
Fin     : 19:54
Mais l'installation de MariaDB 10.3 a échoué ! et a bloqué l'installation de 396 autres paquets.
Après analyse il s'agit d'un conflit entre le MariaDB 10.3 déjà installé sur la machine d'origine (déjà un clone !) depuis une source non Debian pour tester la version 10.3.
Essai de "forçage" des problèmes de version :

cd /var/cache/apt/archives
dpkg -i --force-all mariadb*deb 

et cela à l'air de fonctionner, la connexion à la base est fonctionelle.
Par contre ni "haproxy", ni "apache" ne sont lancés.
8) Nettoyage final : "apt-get autoremove" + reboot.
"autoremove" demande de faire un "apt-get --fix-broken install" pour un problème de dépendances lié à Python 3.5 et 3.7.
Cela va installer 4 nouveaux packages et finir l'installation interrompue par MariaDB soit 396 paquets !
Après installation de tous ces paquets se déroule et "haproxy" ne peut être redémarré, mais cela n'interrompt pas la suite de l'installation.
Il va falloir vérifier et adapter le paramétrage Haproxy qui semble refusé par la nouvelle version.
9) Un petit reboot pour finir le nettoyage.
Tiens, Apache a bien démarré et semble fournir des données consormes, MariaDB est donc en bonne forme.
Par contre Haproxy refuse touhours de démarrer et "journalctl -xe", comme souvent, ne donne aucune information utile !
Je vais donc voir le log de Haproxy et : Ah! Mais c'est bien sûr ! J'ai simplement oublié de changer l'adresse IP de connexion dans "haproxy.cfg" c'est donc celle du premier clone ! Dès que c'est fait tout rentre dans l'ordre et mon haproxy se met en route sans problème.
Quelques tests sur le site permettent de vérifier que tout fonctionne.
Toutefois nous sommes encore liés à PHP7.0 il va falloir tenter le passage dans la version supérieure car Buster fournit PHP 7.3 et on va pouvoir tester OpCache qui est censé bien fonctionner en 7.3.
Après quelques jours :

Après 4 jours je fais la première mise à jour "Buster" et comme on est encore en période presque "unstable" énormément de paquets mis à jour et plus de 230MO téléchargés dont PHP7.3. Après cette mise à jour je constate 46 paquets à supprimer, et un petit coup de "apt-get autoremove" m'en débérasse et libère 609MO dont l'espace occupé par les "vieux" noyaux série 4.9 encore présents, la version utilisée : 4.19.0.0-bpo.2.
 

Migrer machine de prod

Migrer machine de prod drupal_admin lun 01/07/2019 - 15:25

Je suis ensuite passé aux choses sérieuses : migrer une vraie machine de production, celle sur laquelle est implanté ce service Web.
J'ai choisi de faire la migration "on line" sans aucune interruption "volontaire" du service.
J'ai suivi la procédure indiquée, c'est un peu long, mais cela fonctionne sans problèmes majeurs. Tout juste quelques modifications de fichiers de config à accepter (après vérification ! ).
Phases de 1 à 5 passées sans ennuis et le service Web est resté disponible pratiquement tout le temps (sauf lors des reboot bien sûr !).
Phase 6 : Reboot sur kernel 4.19.
Phase 7 : dist-upgrade :
Un grand nombre de paquets modifiés ou créés (927 paquets), tout se passe bien ! Là aussi quelques modifications de fichiers de config à accepter ou refuser (toujours après vérification !! ).
La migration PHP7 --> PHP7.3 est "incorporée" mais pas pour Apache ! Qui refuse de fonctionner car seuls sont présents les modules php7.
Voir
/etc/mods-availables :
ls -1 *php*
php7.0.conf
php7.0.load

Vite installer libapache2-mod-php7.3 php7.3-mysql et quelques modules PHP7.3 qui semblent manquer.
a2dismod php7.0
a2enmod php7.3
systemctl restart apache2

Et cela fonctionne nettement mieux !
Vite un "apt-get autoremove" pour terminer ... qui me propose la suppression de 200 paquets et 344MO disque d'économie.
Un reboot rapide pour vérifier la stabilité du système mis à jour et le service WEB manque encore de quelques modules PHP7.3 ... après leur mise en place tout semble fonctionner parfaitement.

Tests du lendemain : tout semble OK la sauvegarde de nuit a fonctionné.
Ci dessous les interruptions de service :

 

Les interruptions sues à la migration
SLA obtenue pat THRUK

 

Linux : Zimbra Collaboration suite

Linux : Zimbra Collaboration suite jpp mar 05/01/2010 - 16:31

ZIMBRA :  

Ce "livre" présente l'installation et un peu l'utilisation du logiciel "ZIMBRA Collaboration Suite", les articles s'étalent de début 2010 à aujourd'hui.
Note 2016 : il est facile d'installer Zimbra dans une machine virtuelle et cela permet de la garder "bien stable" sans bloquer les versions de système d'une machine physique,
voir l'article "Zimbra (V8) dans une VM". Toutefois la plupart des éléments cités ci-dessous restent valables.

Cet article est divisé en différents chapitres :

  • Installation du système
  • Installation de Zimbra (1)
  • Installation de Zimbra (2)
  • Utilisation de Zimbra (1), aperçu de l'administration
  • Utilisation de Zimbra (2), paramétrage des clients mail
  • Quelques remarques sur la vie avec Zimbra
  • Utiliser Zimbra sur un smartphone
  • Passer d'une version 32 bits à ube version 64 à l'occasion d'une migration de serveur, et oui, les machines sont de plus en plus puissantes ...
  • Installer Zimbra dans une Machine Virtuelle KVM,
    l'installation est détaillée en annexe.
  • Effectuer un upgrade de 8.6 à 8.7

Les premiers chapitres sont un peu dépassés et concernent l'installation de ZIMBRA 6. L'installation de la version 7 n'étant pas prévue sur une machine Debian (6 ou 7) je suis resté en version 6 jusqu'au jour du passage en version 8.

Une nouvelle machine (core I3 série 4) et l'installation de Debian "Wheezy" 7.3 version "stable" à ce jour m'a obligé à changer de version.
Malheureusement la version 8 n'est pas disponible pour Debian, la version la plus approchante est la version pour Ubuntu 12.04 LTS. J'ai voulu réaliser l'installation sur ma Debian 7.3 toute fraîche et j'ai créé un nouveau chapitre pour cette installation.

 

ZIMBRA . Phase 1: le système

ZIMBRA . Phase 1: le système jpp mer 30/12/2009 - 15:00

Nous verrons dans un prochain article l'installation de ZIMBRA sur un mini serveur "Physique".
En attendant de définir le hardware de ce serveur (à faible consommation pour rester connecté en permanence) je vais m'entraîner sur une MV (Debian 32bits), celà ne coûte pas cher et devrait me permettre d'évaluer plus précisément la mémoire et le CPU nécessaire pour cette application, ou plutôt ensemble d'applications car le paquet inclut :

  • Un serveur mail
  • Un serveur pop et imap
  • Un Webmail
  • Un antispam
  • Un antivirus
  • Un interface d'administration
  • Le moteur est fourni par :
  1. Une base mysql
  2. Un annuaire LDAP (Openldap)
  3. Un serveur d'applications (Jetty)
  4. Un serveur SMTP (Postfix)
  5. Un serveur WEB (Apache)
  6. L'antivirus (Clamav)
  7. L'antispam (Spamassassin)

et d'autres bricoles que je vais m'empresser de voir.
Pour les détails aller sur le site de ZIMBRA
Je crée la MV adéquate : une debian 32bits en version "stable" Lenny.
L'installation a été faite sur une machine virtuelle :

  • RAM     1536Mo
  • CPU     1
  • Disques  Système 8,6Go (swap 2.0Go, /root 6.6Go)
  •               Data (16Go à monter sur /opt car ZIMBRA s'installe sur /opt)

Ce système est un système "minimum" sans même un interface graphique :

Quelques pré-requis (repérés lors des premières tentatives d'installation de ZIMBRA) :

  • Le fichier /etc/hosts doit être complet avec le nom d'hôte sous la forme :
    adresse      nom complet         nom
    192.168.x.x com-mail.mondomaine com-mail
  • Installation de quelques paquets nécessaires :
    "libgmp3c2"  "libstdc++5"  "libexpat1" "libperl5.10" "sudo" "sysstat"
    réalisés par : apt-get install libgmp3c2 libexpat1 libperl5.10 sudo sysstat libstdc++5
    Il faudra activer le service "sysstat" dans le fichier /etc/default/sysstat en passant "ENABLED" à "true".
  • Quelques outils utiles ou indispensables.
    "openssh-server"        impératif sur une machine !
    "ntp"   pour avoir un serveur à l'heure, "branché" sur une des machines du réseau en commentant les lignes ( /etc/ntp.conf ) "server 0.debian... à 2.debian..." et en remplaçant l'adresse du dernier par "192.168.1.6" (l'adresse du serveur NTP interne).
    "vim"   je le préfère au "vi" brut.
    "rsync" pour les sauvegardes futures
  • Désactiver le service mail (exim4) installé par défaut.
  1. Stopper le service :   /etc/init.d/exim4 stop
  2. Supprimer le paquet "exim4" :      apt-get remove --purge exim4
  • Mettre en place le disque "DATA" formaté en "ext3", "ext4" n'est pas encore OK pour les noyaux "anciens" tel celui de la Debian 5.0
    Donner un label au disque :                    e2label /dev/hdb1 OPT
    puis ajouté la ligne :
    LABEL=OPT       /opt            ext3    defaults        0       2
    en fin du fichier /etc/fstab afin d'obtenir le montage automatique.
  • Economiser un peu de mémoire ...
    L'installation "minimum" ne comporta aucun service superflu, seuls les démons "cron" et "at" sont installés par défaut et il faut les garder
    Modifier le fichier "/etc/inittab" pour y commenter l'ouverture des trois derniers getty.
  • Mettre une adresse IP fixe.

Modifier le fichier "/etc/network/interfaces"
Avant :
.....

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Après :
.....

auto eth0
iface eth0 inet static
        address 192.168.1.xxx
        netmask 255.255.255.0
        network 192.168.1.0
        gateway 192.168.1.6
        broadcast 192.168.1.255

La suite de cette palpitante histoire dans l'article suivant : Installation de ZIMBRA

ZIMBRA. Phase 2 : logiciel (A)

ZIMBRA. Phase 2 : logiciel (A) jpp mer 30/12/2009 - 19:07

Note 2016, cet article est devenu "historique", voir plutôt "Installation de ZIMBRA dans une MV".
La machine étant prête on peut passer à la suite : l'installation de notre logiciel.
Après avoir chargé le fichier (tar.gz) fourni par ZIMBRA pour votre configuration, ici pour une Deian 5 i386 ( #460Mo quand même ).
Il suffit de la décompacter dans un répertoire tranquille on se trouve face à un répertoire contenant :

drwxr-xr-x 2  503  503 4096 déc.  15 05:45 bin
drwxr-xr-x 2  503  503 4096 déc.  15 05:45 data
drwxr-xr-x 3  503  503 4096 déc.  15 05:45 docs
-rwxr-xr-x 1  503  503 6528 déc.  15 05:45 install.sh
drwxr-xr-x 2  503  503 4096 déc.  15 05:46 packages
-r--r--r-- 1  503  503  369 déc.  15 05:45 readme_binary_en_US.txt
-r--r--r-- 1  503  503 8575 déc.  15 05:45 readme_source_en_US.txt
-r--r--r-- 1  503  503  428 déc.  15 05:45 README.txt
drwxr-xr-x 3  503  503 4096 déc.  15 05:45 util


La version est toute récente (15 décembre !).

Les différents packages sont (répertoire packages) :


-rw-r--r-- 1 503 503  11196160 déc.  15 05:45 zimbra-apache_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503 176340458 déc.  15 05:46 zimbra-core_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503   6083466 déc.  15 05:46 zimbra-ldap_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503      1324 déc.  15 05:46 zimbra-logger_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503    836320 déc.  15 05:46 zimbra-memcached_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503  62142320 déc.  15 05:46 zimbra-mta_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503   1788722 déc.  15 05:46 zimbra-proxy_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503   6472146 déc.  15 05:46 zimbra-snmp_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503  41755764 déc.  15 05:46 zimbra-spell_6.0.4_GA_2038.DEBIAN5_64_amd64.deb
-rw-r--r-- 1 503 503 148819674 déc.  15 05:46 zimbra-store_6.0.4_GA_2038.DEBIAN5_64_amd64.deb


du solide !

La lecture du (court) fichier README :

Binary release:
   README.txt - this file
   install.sh - install script
   bin/ - binaries used during install
   data/ - contains installation data
   packages/ - contains ZCS rpms
   docs/ - more documentation
Installing from binary:
   tar xzf zcs.tgz
   cd zcs
   ./install.sh


Nous conforte dans l'utilisation du fichier "install.sh" pour installer le tout../install.sh

====================================================================
Operations logged to /tmp/install.log.2657
Checking for existing installation...
    zimbra-ldap...NOT FOUND
    zimbra-logger...NOT FOUND
    zimbra-mta...NOT FOUND
    zimbra-snmp...NOT FOUND
    zimbra-store...NOT FOUND
    zimbra-apache...NOT FOUND
    zimbra-spell...NOT FOUND
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-cluster...NOT FOUND
    zimbra-core...NOT FOUND

PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.

ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.

License Terms for the Zimbra Collaboration Suite:

  http://www.zimbra.com/license/zimbra_public_eula_2.1.html

Press Return to continue
=========================================================================
La licence reste dans les termes classiques et ne présente pas de spécificité marquante, on peut l'accepter sans réticences.
=========================================================================
Checking for prerequisites...

     FOUND: NPTL
     FOUND: sudo-1.7.2p1-1
     FOUND: libidn11-1.15-2
     FOUND: libpcre3-7.8-3
     FOUND: libgmp3c2-2:4.2.2+dfsg-3
     FOUND: libexpat1-2.0.1-6
     FOUND: libstdc++6-4.4.2-3
     FOUND: libstdc++5-1:3.3.6-18
     FOUND: libperl5.10-5.10.1-8

Checking for suggested prerequisites...

    FOUND: perl-5.10.0

    FOUND: sysstat

Prerequisite check complete.

Checking for installable packages
Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy

Select the packages to install

Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [Y]
Install zimbra-proxy [Y]

Checking required space for zimbra-core
checking space for zimbra-store

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy

The system will be modified.  Continue? [N] Y

============================================================
J'ai installé toutes les options et "Y" pour continuer
============================================================

Removing /opt/zimbra
Removing zimbra crontab entry...done.
Cleaning up zimbra init scripts...done.
Cleaning up /etc/ld.so.conf...done.
Cleaning up /etc/security/limits.conf...done.

Finished removing Zimbra Collaboration Suite.

Installing packages

    zimbra-core......zimbra-core_6.0.4_GA_2038.DEBIAN5_64_i386.deb...
    zimbra-ldap......zimbra-ldap_6.0.4_GA_2038.DEBIAN5_64_i386.deb...done
    zimbra-logger......zimbra-logger_6.0.4_GA_2038.DEBIAN5_64_i386.deb...done
    zimbra-mta......zimbra-mta_6.0.4_GA_2038.DEBIAN5_64_i386.deb...done
    zimbra-snmp......zimbra-snmp_6.0.4_GA_2038.DEBIAN5_64_i386.deb...done
    zimbra-store......zimbra-store_6.0.4_GA_2038.DEBIAN5_64_i386.deb...
    zimbra-apache......zimbra-apache_6.0.4_GA_2038.DEBIAN5_64_i386.deb...done
    zimbra-spell......zimbra-spell_6.0.4_GA_2038.DEBIAN5_64_i386.deb...
Operations logged to /tmp/zmsetup.12292009-155158.log

Installing LDAP configuration database...done.
Setting defaults...    MX: com-mail.jpp.fr (192.168.1.225)

    Interface: 192.168.1.225
    Interface: 127.0.0.1
        192.168.1.225
done.
Checking for port conflicts
Checking for port conflicts
Port conflict detected: 25 (zimbra-mta)
Port conflicts detected! - Any key to continue

=============================================================================
J'avais laissé exim4 actif ! Il était pourtant désinstallé !
Mais en fait il était resté --> je le stoppe et désactive le script avec un "exit" bien
placé dans le script !
Je supprime aussi l'exécutable " /usr/sbin/exim4 ".
Et on continue
=============================================================================
Main menu

   1) Common Configuration:                                                 
   2) zimbra-ldap:                             Enabled                      
   3) zimbra-store:                            Enabled                      
        +Create Admin User:                    yes                          
        +Admin user to create:                 admin@com-mail.jpp.fr       
******* +Admin Password                        UNSET                        
        +Enable automated spam training:       yes                          
        +Spam training user:                   spam.57zxf5al@com-mail.jpp.fr
        +Non-spam(Ham) training user:          ham.dugtitbk@com-mail.jpp.fr 
        +Global Documents Account:             wiki@com-mail.jpp.fr         
        +SMTP host:                            com-mail.jpp.fr              
        +Web server HTTP port:                 80                           
        +Web server HTTPS port:                443                          
        +Web server mode:                      http                         
        +IMAP server port:                     143                          
        +IMAP server SSL port:                 993                          
        +POP server port:                      110                          
        +POP server SSL port:                  995                          
        +Use spell check server:               yes                          

        +Spell server URL:                     http://com-mail.jpp.fr:7780/aspell.php
        +Configure for use with mail proxy:    FALSE                        
        +Configure for use with web proxy:     FALSE                        
        +Enable version update checks:         TRUE                         
        +Enable version update notifications:  TRUE                         
        +Version update notification email:    admin@com-mail.jpp.fr        
        +Version update source email:          admin@com-mail.jpp.fr        

   4) zimbra-mta:                              Enabled                      
   5) zimbra-snmp:                             Enabled                      
   6) zimbra-logger:                           Enabled                      
   7) zimbra-spell:                            Enabled                      
   8) Default Class of Service Configuration:                               
   r) Start servers after configuration        yes                          
   s) Save config to file                                                   
   x) Expand menu                                                           
   q) Quit                                   



Address unconfigured (**) items  (? - help)

======================================================================
La suite dans l'article suivant en cliquant ci-dessous à droite.

ZIMBRA. Phase 3 : logiciel (B)

ZIMBRA. Phase 3 : logiciel (B) jpp mer 30/12/2009 - 21:21

La suite de l'installation de ZIMBRA
================================================================================================
Tout a été configuré en standard et je n'ai pour le moment aucun besoin de spécificités "pointues".
Le seul item non configuré est le mot de passe de l'administrateur que je m'empresse de configurer
avec la touche "x : Expand menu", puis "3 : zimbra-store" qui affiche le menu suivant :

=================================================================================================
Store configuration

   1) Status:                                  Enabled                      
   2) Create Admin User:                       yes                          
   3) Admin user to create:                    admin@com-mail.jpp.fr        
** 4) Admin Password                           UNSET                        
   5) Enable automated spam training:          yes                          
   6) Spam training user:                      spam.57zxf5al@com-mail.jpp.fr
   7) Non-spam(Ham) training user:             ham.dugtitbk@com-mail.jpp.fr 
   8) Global Documents Account:                wiki@com-mail.jpp.fr         
   9) SMTP host:                               com-mail.jpp.fr              
  10) Web server HTTP port:                    80                           
  11) Web server HTTPS port:                   443                          
  12) Web server mode:                         http                         
  13) IMAP server port:                        143                          
  14) IMAP server SSL port:                    993                          
  15) POP server port:                         110                          
  16) POP server SSL port:                     995                          
  17) Use spell check server:                  yes                          
  18) Spell server URL:                        http://com-mail.jpp.fr:7780/aspell.php
  19) Configure for use with mail proxy:       FALSE                        
  20) Configure for use with web proxy:        FALSE                        
  21) Enable version update checks:            TRUE                         
  22) Enable version update notifications:     TRUE                         
  23) Version update notification email:       admin@com-mail.jpp.fr        
  24) Version update source email:             admin@com-mail.jpp.fr        

Select, or 'r' for previous menu [r]
========================================================================================
Je choisis le "4" pour mettre en place le mot de passe ADMIN
========================================================================================
Password for admin@com-mail.jpp.fr (min 6 characters): [jynfxBVR]
========================================================================================
Le mot de passe par défaut ne me convient pas, j'en met donc un bien à moi.
Le menu se réaffiche et cette fois je tape "r" pour remonter au menu supérieur.
Cette option me réaffiche le "main menu" avec une petite différence à la fin :

========================================================================================
*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help)
========================================================================================
Je choisis donc "a" pour appliquer l'ensemble des choix effectués.
========================================================================================
A la question "Save configuration data to a file? [Yes] " je laisse la valeur standard "Yes".
A la question "Save config in file: [/opt/zimbra/config.9056] " je valide par "entrée".

========================================================================================
Saving config in /opt/zimbra/config.9056...done.
The system will be modified - continue? [No]

========================================================================================
On est prudent chez ZIMBRA et je frappe "Yes"
========================================================================================
Operations logged to /tmp/zmsetup.12292009-155158.log
=====================================================================
.... un tas de lignes de log heureusement terminées par "...done".
=====================================================================
You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Suite.
The only information that will be transmitted is:
    The VERSION of zcs installed (6.0.4_GA_2038_DEBIAN5)
    The ADMIN EMAIL ADDRESS created (admin@com-mail.jpp.fr)
Notify Zimbra of your installation? [Yes]
======================================================================
Je réponds "no" car cette adresse n'est accessible que sur mon réseau interne.
======================================================================
Notification skipped
Starting servers...
=======================================================================
Le démarrage est un peu long car il y "du monde" à démarrer..... y compris
des applications "java".
Après environ 90 secondes :

=======================================================================
Installing common zimlets...
    com_zimbra_adminversioncheck...done.
    com_zimbra_bulkprovision...done.
    com_zimbra_email...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_url...done.
    com_zimbra_local...done.
    com_zimbra_date...done.
    com_zimbra_phone...done.
    com_zimbra_cert_manager...done.
Finished installing common zimlets.
Initializing Documents...done
Restarting mailboxd...done
Setting up zimbra crontab...done.

Moving /tmp/zmsetup.12302009-192333.log to /opt/zimbra/log
Configuration complete - press return to exit
======================================================================
C'est fini ! Prévoir au total environ 45 minutes.
On déclenche un reboot pour démarrer en conditions normales.
J'avais prévu une machine avec 1536 Mo de mémoire, j'ai bien fait car " top " me montre :

Mem:   1556276k total,   674824k used,   881452k free,     8816k buffers

Swap:  1943856k total,        0k used,  1943856k free,   156356k cached

 

ZIMBRA Phase 4 : l'aspect

ZIMBRA Phase 4 : l'aspect jpp ven 01/01/2010 - 21:08

L'installation est faite, la machine a redémarré, admirons un peu le résultat.Permière constation : il y a plein de ports utilisés ( lsof -Pn | grep TCP ): 25, 80, 110, 143, 389, 993, 3310, 5222, 5223, 7110, 7143, 7777, 7780, 10024 et j'en oublie ...
Cela va être un peu coton de s'y retrouver.
Le port 80 donne accès au WebMail, dont voici un premier aperçu :

Le port 7071 (en https) donne accès à l'interface d'administration dont voici un aperçu :

 

 

 

 

 

 

 

Le menu d'administration se présente de la façon suivante :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sont présentés ici :

  • La gestion des comptes
  • La gestion des Alias
  • La gestion des listes de diffusion
  • La gestion des classes de service, elle permet de créer des standards à appliquer aux utilisateurs (notion de "groupes") qui simplifie la gestion des utilisateurs.
  • La dernière partie présente des vues spécifiques des comptes ouverts.
    En bref c'est très complet mais il y a pas mal de boulot avant de savoir se servir correctement de toutes les fonctions présentes.
  • La création de multiples "domaines" virtuels, le serveur est ainsi capable de servir plusieurs domaines différents

D'autres éléments que je n'ai pas encore eu le temps d'apprécier :
les Zimlets, les extensions d'administration.
Le menu "Paramètres Globaux" permet de régler finement un grand nombre d'options des différents logiciels, par exemple les paramètres de Postfix.
L'état du serveur présente la liste de l'état des différents services.
De même le serveur maintient des statistiques d'usage (CPU, IO, nombre de mails, nombre de spam, nombre de virus détectés ....
Les Outils permettent de surveiller l'état des files d'attente, de paramétrer la recherche d'updates, la gestion de certificats ....

ZIMBRA. Phase 5 : paramétrage clients

ZIMBRA. Phase 5 : paramétrage clients jpp dim 03/01/2010 - 18:04

Passons un peu maintenant à l'utilisation coté clients, pour ces quelques tests j'ai connecté les clients suivants :

  • Windows XP : Thunderbird3
  • Windows XP : Outlook Express
  • Linux : Evolution

Un petit inconvénient d'utiliser un certificat "bidon" comme le certificat créé automatiquement lors de l'installation est l'apparition de messages signalant ce fait. Cette ennui est particulièrement gênant pour Outlook Express qui ne se contente pas de se plaindre la première fois mais ouvre une boite d'alerte à chaque démarrage.

Paramètres pour Thunderbird 3 sous Windows XP :

Le port 110 par défaut convient très bien.
Zimbra est configuré en standard pour une liaison sécurisée, il faut utiliser le paramètre "STARTTLS".
Il ne faut pas oublier lors de la création du compte de choisir les options de connexion avec authentification pour le client POP comme pour le serveur SMTP.
En principe cela marche directement et sans ennuis.

Paramètres pour Outlook Express sous Windows XP :

Il faut absolument cliquer les paramètres de sécurité "SSL" dans l'onglet "Avancé".

Paramétres pour Evolution sous Linux :

Là aussi c'est très simple.
N'ayant pas d'autre client mail à disposition j'arrêterais les exemples de paramétrage des clients ici.

Linux : la vie avec Zimbra

Linux : la vie avec Zimbra jpp dim 10/01/2010 - 16:10

Notes 2020 :
Le besoin en mémoire a bien "gonflé" et actuellement la MV est réglée à 3712Mo afin d'éviter le swapping, le trafic est d'environ 600/800 mails par jour.

Après avoir utilisé ZCS pendant une quinzaine de jours (en dupliquant le trafic normal de mes mails avec ce bon vieux "fetchmail") je commence à m'y retrouver et à pouvoir mieux évaluer la puissance nécessaire. La machine ne traite qu'environ 250 mails par jour (en entrée et en sortie) et la consommation moyenne de CPU est tout de même légèrement supérieure à 10% de CPU (soit 20% d'un CPU à 2.5GHz).
En ce qui concerne la mémoire la consommation est légèrement inférieure à 1,2 Go avec environ 200Mo de cache, ma machine étant à 1536 Mo de RAM le swap n'est jamais utilisé et la mémoire jamais pleine.
La partie "AJAX" du client fonctionne très bien mais elle est très longue à charger (au moins la première fois) et l'on risque de perdre patience et d'appeler la version "HTML pur" avant l'affichage de la version AJAX.
La charge serveur générée par l'interface Webmail est assez élevée, particulièrement pour la version AJAX où je vois le CPU passer les 100% (il y a deux processeurs soit 200% de disponible). Dans un environnement de production la partie CPU doit être très "musclée" pour garantir des temps de réponse corrects.

La partie administration de ZCS est très complète (qui a dit complexe) ?), et permet de gérer l'intégralité du serveur :

  • Comptes : gestion des utilisateurs avec beaucoup de détails, adresse postale, téléphone. Toute une partie est dédiée à la gestion des fonctions de calendrier y compris des calendriers de groupe, de la gestion du "Porte-documents". On y trouve aussi la gestion de l'appartenance aux liste de distributions.
  • Alias : gestion "classique" des alias
  • Listes de diffusion : interface très complet de gestion de listes avec possibilité de créer des "partages" liés à la liste. Ces partages seront accessibles à tous les utilisateurs et permettent de stocker des documents accessibles directement à travers le Webmail.
    Il faudra bien sûr évaluer et surveiller le volume de ces "partages" et en assurer une sauvegarde spécifique. Il est même possible "d'abonner" une liste à une autre ce qui ouvre quelques opportunités.
  • Ressources : les ressources peuvent par exemple être des salles de réunion, ZCS permet leur gestion. Je n'ai pas encore expérimenté cette possibilité.
  • Les statistiques, le serveur maintient un certain nombre de statistiques sur :
  1. le nombre de mail
  2. le volume (nombre x taille) des mails
  3. le nombre de mails traité par l'Antispam/Antivirus
  4. l'espace disque global et celui de la partition ZCS, à surveiller si le stockage de documents est utilisé, voir statistique "standard" ci-dessous.

On voit ici que l'usage disque propre à Zimbra (graphe du bas) est en augmentation constante sur les derniers jours, ceci doit s'expliquer par les tests d'utilisation de IMAP et le stockage de quelques dcuments.
Toutes ces statistiques sont disponibles sur 48 heures,30 jours, 60 jours et 365 jours.

  • Liste des sessions : On peut aussi accéder à la liste des sessions en cours (Webmail, administrateurs, IMAP) et aux quotas de boite aux lettres par utilisateur.
  • Un autre accès permet de voir les statistiques CPU de manière assez détaillée (image ci dessous)
  • Un écran est consacré à la gestion des certificats de serveur.
  • La surveillance des quotas est simplifiée par un écran spécifique :

Tout cela est bel et bon, c'est un bel outil.
Un des seuls inconvénients de la version OpenSource est l'absence de la procédure de sauvegarde fournie dans la version "professionnelle". Il est donc important de se fabriquer une procédure de sauvegarde minimale permettant de récupérer au maximum en cas de crash du serveur.
Pour une utilisation dans un environnement de production les versions "Standard Edition" ou "Professional Edition" sont quasiment indispensables et elles intègrent un dispositif de sauvegarde/restauration "on line".
Pour la description et le prix de ces versions voir le site de ZIMBRA .

Je pense que je vais craquer et construire le petit serveur "basse consommation" pour y installer mon système de mail à la place de mon vieux P3 à 700Mhz. Ce petit système fera sans doute la matière d'un prochain article.

PS : je viens de voir que la société ZIMBRA a été rachetée par VMWARE, est-ce vraiment très bon ?

Zimbra après quelques mois

Zimbra après quelques mois drupal_admin mar 31/05/2016 - 12:05

ZIMBRA : 32 a 64 bits

ZIMBRA : 32 a 64 bits jpp sam 22/12/2012 - 16:20

Le passage de ZIMBRA de 32 à 64 bits (même version pour ne pas compliquer les choses) .... est une opération que l'on ne peut qualifier de "simple". Cette migration est devenue nécessaire du fait du quasi abandon du 32bits par ZIMBRA, et puis quasiment tous les processeurs sont maintenant 64bits.

De nombreux tutoriaux existent sur Internet concernant les répertoires à copier d'un système à l'autre et la procédure spécifique pour la partie LDAP qu'il faut décharger en fichier LDIF sur le serveur 32 bits et recharger sur le serveur 64 bits. Mais peu de ces tutoriaux insistent sur une quelques recettes qui me semblent importantes pour le succès de l'opération. La manière présentée ici oblige à stopper complètement le service mail, mais elle est beaucoup plus sûre et finalement assez rapide (moins de deux heures tout compris) :

  1. Préparer votre serveur 64 bits sans installer ZIMBRA, installer de préférence une Debian 5 ou Ubuntu comparable) pour ne pas tomber dans le refus des "deb" par dpkg. (dpkg <= 2.15 indispensable).
  2. Stopper le serveur 32 bits et lui changer nom et adresse IP sans redémarrer ZIMBRA.
  3. Donner le nom et l'adresse IP au serveur 64 bits et le redémarrer, cette phase permet d'assurer que tous les paramètres de ZIMBRA sont bien initialisés.
  4. Installer ZIMBRA.
  5. Stopper ZIMBRA.
  6. Recharger le LDAP avec le LDIF obtenu sur la machine 32 bits.
  7. Copier les répertoires nécessaires :
    conf data db index logger postfix-*/conf redolog store,
    sur le nouveau serveur. Penser aux droits d'accès à tous ces répertoires et ne pas hésiter à utiliser le script "zmfixperms" situé dans libexec.
  8. Démarrer ZIMBRA.

En principe tout devrait alors bien se passer et votre nouveau serveur être immédiatement opérationnel. Je vais compléter cet article avec quelques notes prises au cours de la manipulation. 

Dans un premier temps je n'avais pas respecté cet ordre et j'ai du procéder par "on efface tout et on recommence".
Attention les versions 6 de ZIMBRA sont mal supportées sous DEBIAN 6 ("dpkg" refuse les noms des différents fichiers "deb" il faut récupérer des "vieux" dpkg et rèussir à les installer ... donc rester en DEBIAN 5 est préférable, on peut ensuite upgrader en Debian 6 sans problèmes.
Par ailleurs pas de version ZIMBRA spécifique Debian, j'ai donc utilisé une version Ubuntu AMD64 installée dans une machine virtuelle KVM.

Zimbra dans une MV

Zimbra dans une MV jpp sam 12/03/2016 - 15:18

L'installation dans une Machine virtuelle (ici KVM) n'est pas une opération horriblement complexe, voir les articles sur KVM.
Note août 2016 : un changement de machine physique a été réalisé simplement à l'aide de ce brave "dd" en copiant la partition de la machine d'origine vers une partition de même taille sur le nouveau serveur (core I5 série 5 au lieu d'un core i3 série 4). Le redémarrage a été instantané !

Zimbra ne distribue plus de versions "Debianisées" et dans ce domaine se limite à Ubuntu, j'ai donc choisi une Ubuntu 14.04 LTS qui devrait me permettre quelques années de tranquillité.
La Machine Virtuelle est créée sur un environnement Debian 8 soigneusement maintenu à jour (aujourd'hui en 8.5) et qui dispose de :
CPU : Core I3 4130 à 3.4 Ghz (Core I5 à 3.4Ghz)
RAM : 16Go
Disques : deux disques d'environ 2To montés en RAID logiciel (miroir).

La machine virtuelle crée pour l'occasion dispose de :
Une partition LVM de 68Go formatée comme suit :
Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/vda1   *   133218304   134215679      498688   83  Linux
/dev/vda2            2048   117186559    58592256   83  Linux
/dev/vda3       117186560   127672319     5242880   83  Linux
/dev/vda4       127672320   133218303     2772992   82  partition d'échange Linux / Solaris

La partition "/dev/vda3" est gardée "en réserve" et n'est pas utilisée.
Au niveau "machine"  1 CPU et 2560 Mo de mémoire.
L'installation de Ubuntu 14.04 n'est pas détaillée ici, on n'installe que le minimum pour un serveur, tout le reste "vient" avec Zimbra. J'ai choisi la version 8.6, dernière version existante lors de l'installation.

J'ai créé "à la main" le user "zimbra" avec un répertoire home au "standard Zimbra" fixé à "/opt/zimbra" :
chown root:zimbra /opt/zimbra
chmod 775 /opt/zimbra

Cette installation est identique à celle réalisée directement sur un serveur sans KVM.
Pré-requis :

apt-get install pax sysstat sqlite3 unzip libperl5.18

Après décompression de l'archive du jour :
"https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz"
dans un répertoire tranquille on entre dans le vif du sujet.
On se connecte en "root" dans le répertoire et on lance "install.sh" (Le listing est assez long mais comporte des éléments intéressants qui peuvent servir de référence) :

Operations logged to /tmp/install.log.26898
Checking for existing installation...
    zimbra-ldap...NOT FOUND
    zimbra-logger...NOT FOUND
    zimbra-mta...NOT FOUND
    zimbra-dnscache...NOT FOUND
    zimbra-snmp...NOT FOUND
    zimbra-store...NOT FOUND
    zimbra-apache...NOT FOUND
    zimbra-spell...NOT FOUND
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-core...NOT FOUND

PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
License Terms for the Zimbra Collaboration Suite:
  http://www.zimbra.com/license/zimbra-public-eula-2-5.html

Do you agree with the terms of the software license agreement? [N]

On réponds bien sûr "Yes" (en français dans le texte) !

Checking for prerequisites...
     FOUND: NPTL
     FOUND: netcat-openbsd-1.105-7ubuntu1
     FOUND: sudo-1.8.9p5-1ubuntu1.1
     FOUND: libidn11-1.28-1ubuntu2
     FOUND: libpcre3-1:8.31-2ubuntu2
     FOUND: libgmp10-2:5.1.3+dfsg-1ubuntu1
     FOUND: libexpat1-2.1.0-4ubuntu1
     FOUND: libstdc++6-4.8.2-19ubuntu1
     FOUND: libperl5.18-5.18.2-2ubuntu1
     FOUND: libaio1-0.3.109-4
     FOUND: resolvconf-1.69ubuntu1.1
     FOUND: unzip-6.0-9ubuntu1.3

Checking for suggested prerequisites...
     FOUND: pax
     FOUND: perl-5.18.2
     FOUND: sysstat
     FOUND: sqlite3
Prerequisite check complete.

Checking for installable packages

Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-dnscache
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy
Select the packages to install
Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] N       (Bind9 est déjà installé)
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-memcached [Y] N       (pas un "gros" site mail)
Install zimbra-proxy [Y] N           (VM isolée )
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell

The system will be modified.  Continue? [N]  Y
On réponds bien sûr "Yes"
    zimbra-core......zimbra-core_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-ldap......zimbra-ldap_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-logger......zimbra-logger_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-mta......zimbra-mta_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-snmp......zimbra-snmp_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-store......zimbra-store_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-apache......zimbra-apache_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
    zimbra-spell......zimbra-spell_8.6.0.GA.1153.UBUNTU14.64_amd64.deb...done
Operations logged to /tmp/zmsetup06102015-144332.log
Installing LDAP configuration database...done.
Setting defaults...

DNS ERROR resolving MX for mon-serveur.xxxx
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]  
C'est une machine provisoire, ici je réponds "No" pour ne pas contrarier la machine de production.

Checking for port conflicts
Main menu
   1) Common Configuration:                                                 
   2) zimbra-ldap:                             Enabled                     
   3) zimbra-logger:                           Enabled                     
   4) zimbra-mta:                              Enabled                     
   5) zimbra-snmp:                             Enabled                       
   6) zimbra-store:                            Enabled                               +Create Admin User:                    yes                                  
+Admin user to create:                 admin@mon-serveur.xxxx          
******* +Admin Password                        UNSET                                 +Anti-virus quarantine user:           virus-quarantine.gw4z3h_p@mon-serveur.xxxx
        +Enable automated spam training:       yes                                   +Spam training user:                   spam.mfa5p1m9eb@mon-serveur.xxxx
        +Non-spam(Ham) training user:          ham.j7vinxgs@mon-serveur.xxxx   
        +SMTP host:                            mon-serveur.xxxx                
        +Web server HTTP port:                 80                                   +Web server HTTPS port:         443                                 
+Web server mode:          https                               
+IMAP server port:         143                                 
+IMAP server SSL port:     993                                 
+POP server port:          110                                 
+POP server SSL port:      995                                 
+Use spell check server:   yes                                 
+Spell server URL:                     http://mon-serveur.xxxx:7780/aspell.php
+Configure for use with mail proxy:    FALSE                               
+Configure for use with web proxy:     FALSE                               
+Enable version update checks:         TRUE                                
+Enable version update notifications:  TRUE                                 
+Version update notification email:    admin@mon-serveur.xxxx          
+Version update source email:          admin@mon-serveur.xxxx          
+Install mailstore (service webapp):   yes                                 
+Install UI (zimbra,zimbraAdmin webapps): yes                           

  7) zimbra-spell:                            Enabled                       
  8) Default Class of Service Configuration:                                
  s) Save config to file                                                  
  x) Expand menu                                                             
  q) Quit                          

La seule chose importante qui reste à faire est de fixer un mot de passe administrateur et de changer le nom du compte d'administration.

*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes] Yes
Save config in file: [/opt/zimbra/config.2021]
The system will be modified - continue? [No]
On n'est pas ici pour annuller --> "Yes"
Operations logged to /tmp/zmsetup06102015-144332.log
Setting local config values...done.
Initializing core config...Setting up CA...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Creating SSL zimbra-store certificate...done.
Creating new zimbra-ldap SSL certificate...done.
Creating new zimbra-mta SSL certificate...
Installing mailboxd SSL certificates...done.
Installing MTA SSL certificates...done.
Installing LDAP SSL certificate...done.
Initializing ldap...
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Setting BES searcher  password...done.
Creating server entry for mon-serveur.xxxx...
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Setting BES searcher  password...done.
Creating server entry for mon-serveur.xxxx...
Creating server entry for mon-serveur.xxxx...done.
Setting Zimbra IP Mode...done.
Saving CA in ldap ...done.
Saving SSL Certificate in ldap ...done.
Setting spell check URL...done.
Setting service ports on mon-serveur.xxxx...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on mon-serveur.xxxx...done.
Adding mon-serveur.xxxx to zimbraMailHostPool in default COS...done.
Creating domain mon-serveur.xxxx...done.
Setting default domain name...done.
Creating domain mon-serveur.xxxx...already exists.
Creating admin account mon_admin@mon-serveur.xxxx...done.
Creating root alias...done.
Creating postmaster alias...done.
Creating user spam.mfa5p1m9eb@mon-serveur.xxxx...done
Creating user ham.j7vinxgs@mon-serveur.xxxx...done.
Creating user virus-quarantine.gw4z3h_p@mon-serveur.xxxx...done.
Setting spam training and Anti-virus quarantine accounts...done.
Initializing store sql database...
Setting zimbraSmtpHostname for mon-serveur.xxxx...done.
Configuring SNMP...done.
Setting up syslog.conf...done.
Starting servers...done.
Installing common zimlets...
    com_zimbra_mailarchive...done.
    com_zimbra_adminversioncheck...done.
    com_zimbra_attachmail...done.
    com_zimbra_webex...done.
    com_zimbra_srchhighlighter...done.
    com_zimbra_phone...done.
    com_zimbra_bulkprovision...done.
    com_zimbra_clientuploader...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_attachcontacts...done.
    com_zimbra_url...done.
    com_zimbra_date...done.
    com_zimbra_proxy_config...done.
    com_zimbra_viewmail...done
    com_zimbra_email...done.
    com_zimbra_tooltip...done.
    com_zimbra_cert_manager...done.
Finished installing common zimlets.
Restarting mailboxd...done.
Creating galsync account for default domain...
You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
    The VERSION of zcs installed (8.6.0_GA_1153_UBUNTU14_64)
    The ADMIN EMAIL ADDRESS created (le_bel_admin@mon-serveur.xxxx)

Notify Zimbra of your installation? [Yes]
Ici je réponds "No" car ce n'est qu'une installation de test.
Notification skipped
Setting up zimbra crontab...done.
Moving /tmp/zmsetup06102015-144332.log to /opt/zimbra/log
Configuration complete - press return to exit

Maintenant installer le patch fourni "https://files.zimbra.com/downloads/8.6.0_GA/zcs-patch-8.6.0_GA_1169.tgz".
On le décompresse dans un coin tranquille et on entre dans le répertoire (en "root" bien sûr) où on découvre le fichier "installPatch.sh" que l'on s'empresse de lancer : et il liste plein de choses ... et se termine rapidement.
Maintenant limiter la taille de la base "ldap" pour ne pas avoir de surprise lors de copies (rappel, ce serveur ne traite pas des millions de messages et la taille de 80Gb (sparse file heureusement)est un peu élevée).
Cette commande se lance sous le user "zimbra" :
La taille "standard" est de 80GB ici 1GB suffira
zmlocalconfig -e ldap_db_maxsize=1073741824
Cela permet de copier l'ensemble du répertoire sans trop de problèmes pour sauvegarde.
Il faut sinon passer par "mdb_copy" ou "zmslapcat", solutions recommandées par Zimbra.

Il est ensuite de bon ton de redémarrer la machine pour vérifier que tout se passe correctement.
Ca reboote en douceur, on peut alors commencer à paramétrer notre serveur de mails.

Pour le paramétrage j'ai repris celui de la machine existante, recréé les users "à la main", heureusement la famille ne comporte pas des dizaines de personnes) et exporté puis ré-importé le contenu de tous les users (un par un en version "open") à l'aide de la fonction dédiée que l'on trouve dans l'interface WEB : "Préférences/Importer,exporter". Le seul inconvénient est la nécessité de fonctionner compte par compte pour la version Opensource.

Après avoir :

Note : en juin 2016 après plus de 6 mois cela fonctionne très bien.
Re note : en novembre 2016, après le changement de serveur physique, upgrade système et recopie du disque de la machine virtuelle cela fonctionne toujours très bien.
Note : Juillet 2017 les machines virtuelles sont installées sur de bons gros SSD de 512GO, et, là aussi recopie du disque de la machine virtuelle. Fonctionnement impeccable et, bien sûr, plus rapide.

Zimbra : migrations

Zimbra : migrations drupal_admin jeu 14/12/2017 - 19:28

J'utilise maintenant Zimbra depuis quelques années et j'ai donc du "upgrader" régulièrement pour rester dans la course.

La dernière version est installée sur une Ubuntu 14.04 LTS, mais cette release ne sera plus maintenue après Avril 2019 message :
Your Hardware Enablement Stack (HWE) is supported until April 2019
et j'ai quelques soucis avec la version actuelle qui "plante" deux ou trois fois par jour !
J'ai du créer un script qui test la présence des ports TCP (25, 389, 465, 587, 993, 995) nécessaires à une activité normale et relance le truc si l'un de ces ports est inaccessible.
Je suis en train de tester la version 8.8.11 sur une Ubuntu 16.04 qui, elle, sera maintenue jusqu'en 2021. Les tests sont terminés et ça marche.
Remarque 1
: C'est dommage qu'une version de Zimbra pour Ubuntu 18.04 ne soit pas (pas encore disponible) et la version actuelle ne s'installe pas sur une 18.04.
Remarque 2 : ne faites surtout pas un "do-release-upgrade" sur votre système 14.04, j'ai essayé et l'opération commence par "virer" Zimbra ! Heureusement que j'avais sauvegardé avant de tenter l'opération !

C'est tout pour le moment !

 

ZIMBRA : première migration

ZIMBRA : première migration jpp lun 20/09/2010 - 22:16

Zimbra ayant annoncé la fin des upgrades pour les versions 32bits OpenSource, j'ai décidé d'upgrader ma version 6.0.4 à la dernière disponible : 6.0.7. pour la suite peut-être y aura-t-il de temps en temps des patchs ?
Oui, il y en a et je viens de passer en 6.0.9 en suivant cette même procédure.

Note : j'ai laissé l'intégralité des copies d'écrans bien que cela soit un peu long (vous avez dit longuet ?).

Après le téléchargement de la version et du patch qui va avec :
zcs-6.0.7_GA_2473.DEBIAN5.20100616212143.tgz
zcs-patch-6.0.7_GA_2476.tgz
Procédure suivie:

  •  stopper "cron"
  •  stopper "at"
  •  stopper zimbra"
  •  effectuer une image complète du répertoires "/opt/zimbra"
  •  détarer le gros "TGZ" dans un répertoire tranquille
  •  détarer le petit "TGZ" dans le même répertoire

On se trouve alors devant les fichiers suivants :
drwxr-xr-x 14 root   root      4096 2010-09-20 19:44 ..
drwxr-xr-x  7    503  503      4096 2010-06-17 07:09 zcs-6.0.7_GA_2473.DEBIAN5.20100616212143
-rw-r--r--  1 root   root 455562410 2010-09-20 19:46 zcs-6.0.7_GA_2473.DEBIAN5.20100616212143.tgz
drwxrwxr-x  5 zimbra  503      4096 2010-06-25 22:44 zcs-patch-6.0.7_GA_2476
-rw-r--r--  1 root   root  26871472 2010-09-20 19:46 zcs-patch-6.0.7_GA_2476.tgz

En allant dans le répertoire "zcs-6.0.7_GA_2473.DEBIAN5.20100616212143" on trouve l'arborescence suivante :
drwxr-xr-x 7  503  503 4096 2010-06-17 07:09 .
drwxr-xr-x 4 root root 4096 2010-09-20 19:48 ..
drwxr-xr-x 2  503  503 4096 2010-06-17 07:09 bin
drwxr-xr-x 2  503  503 4096 2010-06-17 07:09 data
drwxr-xr-x 3  503  503 4096 2010-06-17 07:09 docs
-rwxr-xr-x 1  503  503 6534 2010-06-17 07:09 install.sh

drwxr-xr-x 2  503  503 4096 2010-06-17 07:10 packages
-r--r--r-- 1  503  503  369 2010-06-17 07:09 readme_binary_en_US.txt
-r--r--r-- 1  503  503 8575 2010-06-17 07:09 readme_source_en_US.txt
-r--r--r-- 1  503  503  428 2010-06-17 07:09 README.txt
drwxr-xr-x 3  503  503 4096 2010-06-17 07:09 util

Un magnifique README nous tend les bras et indique de lancer "./install.sh" ce que je fais aussitôt.

./install.sh

Operations logged to /tmp/install.log.31403
Checking for existing installation...
    zimbra-ldap...FOUND zimbra-ldap-6.0.4_GA_2038.DEBIAN5
    zimbra-logger...FOUND zimbra-logger-6.0.4_GA_2038.DEBIAN5
    zimbra-mta...FOUND zimbra-mta-6.0.4_GA_2038.DEBIAN5

    zimbra-snmp...FOUND zimbra-snmp-6.0.4_GA_2038.DEBIAN5
    zimbra-store...FOUND zimbra-store-6.0.4_GA_2038.DEBIAN5
    zimbra-apache...FOUND zimbra-apache-6.0.4_GA_2038.DEBIAN5
    zimbra-spell...FOUND zimbra-spell-6.0.4_GA_2038.DEBIAN5
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-cluster...NOT FOUND
    zimbra-core...FOUND zimbra-core-6.0.4_GA_2038.DEBIAN5
ZCS upgrade from 6.0.4 to 6.0.7 will be performed.

Saving existing configuration file to /opt/zimbra/.saveconfig

PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.

License Terms for the Zimbra Collaboration Suite:
  http://www.zimbra.com/license/zimbra_public_eula_2.1.html
Press Return to continue

C'est bon signe il a tout détecté sa proposition semble honnête, on continue ... et la sauvegarde aura probablement superflue, mais une coupure de courant (qui ne s'est jamais pris les pieds dans le fil ? ) et Pfuuit .

Checking for prerequisites...
     FOUND: NPTL
     FOUND: sudo-1.6.9p17-3
     FOUND: libidn11-1.8+20080606-1
     FOUND: libpcre3-7.6-2.1
     FOUND: libgmp3c2-2:4.2.2+dfsg-3
     FOUND: libexpat1-2.0.1-4+lenny3
     FOUND: libstdc++6-4.4.4-8
Checking for suggested prerequisites...
    FOUND: perl-5.10.0
    FOUND: sysstat
Prerequisite check complete.

Checking current number of databases...

Do you want to verify message store database integrity? [Y]

 

Ben oui, on va vérifier l'intégrité juste pour voir, ça ne mange pas de pain, je frappe donc "Y" ...



Verifying integrity of message store databases.  This may take a while.
Starting mysqld...done.
mysqld is alive
No errors found
mysqld is alive
Stopping mysqld... done.
Checking for installable packages
Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy
The Zimbra Collaboration Suite appears already to be installed.
It can be upgraded with no effect on existing accounts,
or the current installation can be completely removed prior
to installation for a clean install.



Do you wish to upgrade? [Y]



Ce n'était pas si long que cela, mais j'ai peu de volume. Oui, je souhaite upgrader, on est là pour ça ! "Y" donc puisquel'on nous dit que tout va baigner ... on y va sans regret.



Select the packages to install
    Upgrading zimbra-core
    Upgrading zimbra-ldap


    Upgrading zimbra-logger
    Upgrading zimbra-mta
    Upgrading zimbra-snmp
    Upgrading zimbra-store
    Upgrading zimbra-apache
    Upgrading zimbra-spell

Install zimbra-memcached [N]

Install zimbra-proxy [N]

Je ne les ai pas installés car mon serveur est très peu chargé et es relativement puissant, je confirme le 'N'.




Checking required space for zimbra-core

checking space for zimbra-store


Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell

The system will be modified.  Continue? [N]

Tiens, sécurité, la réponse par défaut est "N", il faut donc taper soi même le "Y" fatidique, quel travail !

Shutting down zimbra mail

Backing up the ldap database...done.
Removing existing packages
   zimbra-ldap...done
   zimbra-logger...done
   zimbra-mta...done
   zimbra-snmp...done
   zimbra-store...done
   zimbra-spell...done
   zimbra-apache...done
   zimbra-core...done
Removing deployed webapp directories

Installing packages
    zimbra-core......zimbra-core_6.0.7_GA_2473.DEBIAN5_i386.deb...
    zimbra-ldap......zimbra-ldap_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-logger......zimbra-logger_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-mta......zimbra-mta_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-snmp......zimbra-snmp_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-store......zimbra-store_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-apache......zimbra-apache_6.0.7_GA_2473.DEBIAN5_i386.deb...done
    zimbra-spell......zimbra-spell_6.0.7_GA_2473.DEBIAN5_i386.deb...done
Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save

   HOSTNAME=*****.***.***
   LDAPHOST=*****.***.***
   LDAPPORT=389
   SNMPTRAPHOST=*****.***.***
   SMTPSOURCE=*****@****.***.***     
   SMTPDEST=*****@****.***.***     
   SNMPNOTIFY=yes
   SMTPNOTIFY=yes
   LDAPROOTPW=special_discret


   LDAPZIMBRAPW=special_discret
   LDAPPOSTPW=special_discret
   LDAPREPPW=special_discret
   LDAPAMAVISPW=special_discret
   LDAPNGINXPW=special_discret

Restoring existing configuration file from /opt/zimbra/.saveconfig/localconfig.xml...done
Operations logged to /tmp/zmsetup.09202010-195950.log
Upgrading from 6.0.4_GA_2038 to 6.0.7_GA_2473
Stopping zimbra services...done.

Verifying /opt/zimbra/conf/my.cnf
Starting mysql...done.
This appears to be 6.0.4_GA
Checking ldap status...not running.
Running zmldapapplyldif...done.
Checking ldap status...already running.
Schema upgrade required from version 63 to 64.
Running /opt/zimbra/libexec/scripts/migrate20100106-MobileDevices.pl
Mon Sep 20 20:00:36 2010: Verified schema version 63.
Mon Sep 20 20:00:36 2010: Adding policy_values column to ZIMBRA.MOBILE_DEVICES table.
Mon Sep 20 20:00:37 2010: Verified schema version 63.
Mon Sep 20 20:00:37 2010: Updating DB schema version from 63 to 64.
Stopping mysql...done.
Updating from 6.0.5_GA
Mon Sep 20 20:00:36 2010: Adding policy_values column to ZIMBRA.MOBILE_DEVICES table.
Mon Sep 20 20:00:37 2010: Verified schema version 63.
Mon Sep 20 20:00:37 2010: Updating DB schema version from 63 to 64.
Stopping mysql...done.
Updating from 6.0.5_GA
Updating from 6.0.6_GA
Updating from 6.0.7_GA
Updating global config and COS's with attributes introduced after 6.0.4_GA...done.
Stopping ldap...done.

Upgrade complete.



Running bdb db_recover...done.
Running zmldapapplyldif...done.
Checking ldap status....already running.
Setting defaults...done.
Setting defaults from existing config...
Checking for port conflicts
Setting defaults from ldap...done.
Saving config in /opt/zimbra/config.8891...done.
Operations logged to /tmp/zmsetup.09202010-195950.log
Setting local config values...done.
Setting up CA...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Creating server entry for ******.***.***...already exists.
Saving CA in ldap ...done.
Saving SSL Certificate in ldap ...done.
Setting spell check URL...done.
Setting service ports on ******.***.***...done.
Adding ******.***.*** to zimbraMailHostPool in default COS...done.
Installing webclient skins...
    lavender...done.
    tree...done.
    beach...done.
    bare...done.
    oasis...done.
    waves...done.
    pebble...done.
    yahoo...done.
    sand...done.
    smoke...done.
    lemongrass...done.
    zmail...done.
    steel...done.
    hotrod...done.
    lake...done.
    sky...done.
    bones...done.
    twilight...done.
Finished installing webclient skins.

Setting Keyboard Shortcut Preferences...done.
Setting zimbraFeatureIMEnabled=FALSE...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Setting zimbraFeatureNotebookEnabled=TRUE...done.
Setting MTA auth host...done.
Setting TimeZone Preference...done.
prov> Initializing mta config...done.
Setting services on xxxxxx.xxx.xxx..done.
Creating user spam.py3tgmmj@xxxxxx.xxx.xxx...already exists.
Creating user ham.p7c2hbkw56@xxxxxx.xxx.xxx...already exists.
Setting spam training accounts...done.
Configuring SNMP...done.
Checking for default IM conference room...already initialized.
Setting up syslog.conf...done.
You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Suite.
The only information that will be transmitted is:
    The VERSION of zcs installed (6.0.7_GA_2473_DEBIAN5)
    The ADMIN EMAIL ADDRESS created (xxxxx@xxxxxx.xxx.xxx)


Notify Zimbra of your installation? [Yes]
Notifying Zimbra of installation via http://www.zimbra.com/cgi-bin/notify.cgi?VER=6.0.7_GA_2473_DEBIAN5&MAIL=xxxxx@xxxxxx.xxx.xxx



Notification complete


Starting servers...done.
Checking for deprecated zimlets...done.
Checking for network zimlets in LDAP...done.
Removing network zimlets...
Finished removing network zimlets.
Removing convertd mime tree from ldap...done.
Installing common zimlets...
    com_zimbra_email...done.
    com_zimbra_bulkprovision...done.
    com_zimbra_phone...done.
    com_zimbra_adminversioncheck...done.
    com_zimbra_dnd...done.
    com_zimbra_url...
    com_zimbra_date...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_cert_manager...done.
Finished installing common zimlets.
Getting list of all zimlets...done.
Updating non-standard zimlets...
    com_zimbra_local...done.

Finished updating non-standard zimlets.
Upgrading Document templates...done.
Restarting mailboxd...
Setting up zimbra crontab...done.
Moving /tmp/zmsetup.09202010-195950.log to /opt/zimbra/log
Configuration complete - press return to exit

 

C'est fini pour l'upgrade, cela a bien moliné pendant une dizaine de minutes. Comme d'habitude l'installation est passée comme une lettre à la poste, un petit bravo aux développeurs, si si j'y tiens.
Il va maintenant falloir songer à passer le patch. On se dirige donc vers le répertoire "zcs-patch-6.0.7_GA_2476" qui contient queques "drôles" de fichiers de provenance inconnue ( des martiens ? Pif, Paf rm ._*)  :
drwxrwxr-x 5 zimbra  503 4096 2010-06-25 22:44 .
drwxr-xr-x 4 root   root 4096 2010-09-20 19:48 ..
drwxrwxr-x 2 zimbra  503 4096 2010-06-25 22:44 bin
-rwxrwxr-x 1 zimbra  503  197 2010-06-25 22:44 ._bin
drwxrwxr-x 2 zimbra  503 4096 2010-07-17 05:40 conf
-rwxrwxr-x 1 zimbra  503  197 2010-07-17 05:40 ._conf
-rwxr-xr-x 1 zimbra  503  197 2010-06-25 22:44 ._installPatch.sh
-rwxr-xr-x 1 zimbra  503  713 2010-06-25 22:44 installPatch.sh
drwxrwxr-x 3 zimbra  503 4096 2010-07-17 05:41 source
-rwxrwxr-x 1 zimbra  503  197 2010-07-17 05:41 ._source

Mais comme il y a un "installPatch.sh" il est tentant de l'utiliser. Je ne refais pas de sauvegarde en faisant confiance aux développeurs, ce que je ne ferais pas sur une machine de production ... Et c'est parti ...

./installPatch.sh
Current Version: 6.0.7_GA_2473
Found Patch for 6.0.7_GA called 6.0.7_P1
Deploying patch for 6.0.7_GA
Updating files for package zimbra-store
  /opt/zimbra/jetty/webapps/service/WEB-INF/lib/zimbrastore.jar... copied.
  /opt/zimbra/jetty/webapps/zimbra/WEB-INF/lib/zimbrastore.jar... copied.
  /opt/zimbra/jetty/webapps/zimbraAdmin/WEB-INF/lib/zimbrastore.jar... copied.
  /opt/zimbra/lib/jars/zimbrastore.jar... copied.
  /opt/zimbra/jetty/webapps/zimbra/h/printmessage... copied.
  /opt/zimbra/jetty/webapps/zimbra/js/MailCore_all.js.zgz... copied.
  /opt/zimbra/jetty/webapps/zimbra/js/NewWindow_2_all.js.zgz... copied.
  /opt/zimbra/jetty/webapps/zimbra/js/Calendar_all.js.zgz... copied.

 

C'est super rapide mais il faut faire un start/stop de ZIMBRA pour que ces modifications soient prises en compte.

Tout a été relancé et les premiers tests sont OK, l'accès "POP" fonctionne et Evolution récupère quelques mails; Thunderbird sur une machine Windows ( j'ose à peine écrire cela, mais cette machine n'est pas à moi !) récupère lui aussi ses mails sans problèmes.
L'interface d'administration ne me paraît pas sensiblement changée, le Webmail est toujours là et son ergonomie me plaît toujours autant ... et il marche avec google-chrome sans vous engueuler .... Il va falloir que je voie ce que celà donne depuis le magnifique smartphone qui m'a été offert.

Au passage ZIMBRA surveille un peu la machine et si par aventure un disque dépasse 85% d'occupation l'admin reçoit un petit mail :

Sep 20 15:00:00 xxxxxx zimbramon[18308]: 18308:err: Disk warning: xxxxxx.xxx.xxx: /dev/md0 at 88%
 
taxonomie

Zimbra : migrer 8.6 à 8.7

Zimbra : migrer 8.6 à 8.7 drupal_admin ven 11/11/2016 - 23:34

La version 8.6 commence à vieillir quelque peu et j'ai décidé de migrer vers la version 8.7, toujours dans sa machine KVM. L'usage de la VM simplifie les opérations :

  • Sauvegarde complète (faire une image du disque (dd + bzip2), au cas où !
  • Récupération du logiciel, tiens il a beaucoup maigri, à peine 286Mo au lieu de plus de 700 ?
  • Lancement des opérations.

Avant de migrer il faut installer le proxy si vous ne l'avez pas fait en 8.6, pour celà ré-installer la 8.6 en y incluant le proxy.
Il suffir ensuite de "dé-tarer" l'archive dans un coin tranquille et de lancer le script "./install.sh" ce qui vous fournira un listing analoque au suivant, attention l'opération est assez longue.

Quelques réponses obligatoires sont marquées en rouge, rassurez vous il y en a peu.

Operations logged to /tmp/install.log.pl8L1ggo
Checking for existing installation...
    zimbra-ldap...FOUND zimbra-ldap-8.6.0.GA.1153.UBUNTU14.64
    zimbra-logger...FOUND zimbra-logger-8.6.0.GA.1153.UBUNTU14.64
    zimbra-mta...FOUND zimbra-mta-8.6.0.GA.1153.UBUNTU14.64
    zimbra-dnscache...FOUND zimbra-dnscache-8.6.0.GA.1153.UBUNTU14.64
    zimbra-snmp...FOUND zimbra-snmp-8.6.0.GA.1153.UBUNTU14.64
    zimbra-store...FOUND zimbra-store-8.6.0.GA.1153.UBUNTU14.64
    zimbra-apache...FOUND zimbra-apache-8.6.0.GA.1153.UBUNTU14.64
    zimbra-spell...FOUND zimbra-spell-8.6.0.GA.1153.UBUNTU14.64
    zimbra-convertd...NOT FOUND
    zimbra-memcached...FOUND zimbra-memcached-8.6.0.GA.1153.UBUNTU14.64
    zimbra-proxy...FOUND zimbra-proxy-8.6.0.GA.1153.UBUNTU14.64
    zimbra-archiving...NOT FOUND
    zimbra-core...FOUND zimbra-core-8.6.0.GA.1153.UBUNTU14.64
ZCS upgrade from 8.6.0 to 8.7.1 will be performed.
Checking for existing proxy service in your environment
Checking for existing memcached service in your environment
Validating ldap configuration
LDAP validation succeeded.  Continuing.
----------------------------------------------------------------------
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
SYNACOR, INC. ("SYNACOR") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.

License Terms for this Zimbra Collaboration Suite Software:
https://www.zimbra.com/license/zimbra-public-eula-2-6.html
----------------------------------------------------------------------

Do you agree with the terms of the software license agreement? [N] Y

Checking current number of databases...

Do you want to verify message store database integrity? [Y] n

Checking for installable packages

Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-dnscache
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy

Use Zimbra's package repository [Y] Y
Importing Zimbra GPG key
Configuring package repository
The Zimbra Collaboration Server appears to already be installed.
It can be upgraded with no effect on existing accounts,
or the current installation can be completely removed prior
to installation for a clean install.

Do you wish to upgrade? [Y]  Y
Scanning for any new or additional packages available for installation
Existing packages will be upgraded
    Upgrading zimbra-core
    Upgrading zimbra-ldap
    Upgrading zimbra-logger
    Upgrading zimbra-mta
    Upgrading zimbra-dnscache
    Upgrading zimbra-snmp
    Upgrading zimbra-store
    Upgrading zimbra-apache
    Upgrading zimbra-spell
    Upgrading zimbra-memcached
    Upgrading zimbra-proxy
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-dnscache
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy

The system will be modified.  Continue? [N] Y
Installing packages

zimbra-core will be downloaded.
zimbra-ldap will be downloaded.
zimbra-logger will be downloaded.
zimbra-mta will be downloaded.
zimbra-dnscache will be downloaded.
zimbra-snmp will be downloaded.
zimbra-store will be downloaded.
zimbra-apache will be downloaded.
zimbra-spell will be downloaded.
zimbra-memcached will be downloaded.
zimbra-proxy will be downloaded.
Downloading packages. This will not modify the system. This may take some time.
-----> on utilise maintenant un repository ce qui explique la relative petitesse de l'archive téléchargée. Le chargement des paquets nécessaires n'est pas des plus rapides et à des vitesses très irrégulières (de 40K/sec à 5M/sec et pourtant cela vient de cloudfront !) ... le message "This may take some time" est bien mérité !
------> un moment après :

Downloading Remote package zimbra-memcached version 1.4.25-1zimbra8.7b1.14.04

Saving existing configuration file to /opt/zimbra/.saveconfig

Shutting down zimbra mail
Removing existing packages

   zimbra-ldap...done
   zimbra-logger...done
   zimbra-mta...done
   zimbra-dnscache...done
   zimbra-snmp...done
   zimbra-store...done
   zimbra-spell...done
   zimbra-memcached...done
   zimbra-proxy...done
   zimbra-apache...done
   zimbra-core...done

Removing deployed webapp directories
Local packages  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy selected for installation
Monitor /tmp/install.log.pl8L1ggo for package installation progress
Remote package installation started
Installing zimbra-core-components  zimbra-ldap-components zimbra-mta-components zimbra-dnscache-components zimbra-snmp-components zimbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbra-proxy-components....
----------> le chargement des composants semble se faire avec  "apt-get" et "dpkg" mais on ne voit rien sur la console.
----------->

done
Local package installation started
Installing  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy...
done
Local package installation started
Installing  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy...done
done

Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save
   HOSTNAME=xxx-zimbra-xxx.jpp.fr
   LDAPHOST=xxx-zimbra-xxx.jpp.fr
   LDAPPORT=389
   SNMPTRAPHOST=xxx-zimbra-xxx.jpp.fr
   SMTPSOURCE=le_compte_admin
   SMTPDEST=le_compte_admin
   SNMPNOTIFY=yes
   SMTPNOTIFY=yes
   LDAPROOTPW=*
   LDAPZIMBRAPW=*
   LDAPPOSTPW=*
   LDAPREPPW=*
   LDAPAMAVISPW=*
   LDAPNGINXPW=*
Restoring existing configuration file from /opt/zimbra/.saveconfig/localconfig.xml...done
Operations logged to /tmp/zmsetup.20161111-193459.log
Adding /opt/zimbra/conf/ca/ca.pem to cacerts
Upgrading from 8.6.0_GA_1153 to 8.7.1_GA_1670
Stopping zimbra services...
Stopping zimbra services...done.
This appears to be 8.6.0_GA
Starting mysql...done.
Checking ldap status...not running.
Checking ldap status...not running.
Starting ldap...done.
Checking ldap status...already running.
Schema upgrade required from version 103 to 107.
Running /opt/zimbra/libexec/scripts/migrate20150401-ZmgDevices.pl
Fri Nov 11 19:35:45 2016: Verified schema version 103.
Fri Nov 11 19:35:45 2016: Verified schema version 103.
Fri Nov 11 19:35:45 2016: Updating DB schema version from 103 to 104.
Running /opt/zimbra/libexec/scripts/migrate20150515-DataSourcePurgeTables.pl
Fri Nov 11 19:35:48 2016: Verified schema version 104.
Fri Nov 11 19:36:11 2016: Verified schema version 104.
Fri Nov 11 19:36:11 2016: Updating DB schema version from 104 to 105.
Running /opt/zimbra/libexec/scripts/migrate20150623-ZmgDevices.pl
Fri Nov 11 19:36:14 2016: Verified schema version 105.
Fri Nov 11 19:36:14 2016: Verified schema version 105.
Fri Nov 11 19:36:14 2016: Updating DB schema version from 105 to 106.
Running /opt/zimbra/libexec/scripts/migrate20150702-ZmgDevices.pl
Fri Nov 11 19:36:17 2016: Verified schema version 106.
Fri Nov 11 19:36:19 2016: Verified schema version 106.
Fri Nov 11 19:36:19 2016: Updating DB schema version from 106 to 107.
Stopping mysql...
Updating from 8.6.1_GA
Updating from 8.7.0_BETA1
Updating mailboxd_java_options to remove deprecated PermSize and MaxPermSize java options.
Updating from 8.7.0_BETA2
Updating from 8.7.0_RC1
Updating from 8.7.0_RC2
Updating from 8.7.0_GA
Updating from 8.7.1_GA
Updating global config and COS's with attributes introduced after 8.6.0_GA...done.
Stopping ldap...done.
Upgrade complete.

Checking ldap status....not running.
Starting ldap...done.
Setting defaults...done.
Setting defaults from existing config...
Checking for port conflicts
Setting defaults from ldap...done.
Saving config in /opt/zimbra/config.12373...done.
Operations logged to /tmp/zmsetup.20161111-193459.log
Setting local config values...done.
Initializing core config...Setting up CA...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Creating server entry for xxx-zimbra-xxx.jpp.fr...already exists.
Setting Zimbra IP Mode...done.
Saving SSL Certificate in ldap...done.
Setting spell check URL...done.
Setting service ports on xxx-zimbra-xxx.jpp.fr...done.
Setting Keyboard Shortcut Preferences...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting Master DNS IP address(es)...done.
Setting DNS cache tcp lookup preference...done.
Setting DNS cache udp lookup preference...done.
Setting DNS tcp upstream preference...done.
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on xxx-zimbra-xxx.jpp.fr...done.
Adding xxx-zimbra-xxx.jpp.fr to zimbraMailHostPool in default COS...done.
Creating user spam@jpp.fr...already exists.
Creating user ham@jpp.fr...already exists.
Creating user virus-quarantine.6ec8zwetz@jpp.fr...already exists.
Setting spam training and Anti-virus quarantine accounts...done.
Configuring SNMP...done.
Setting up syslog.conf...done.
Starting servers...
done.
Checking for deprecated zimlets...done.
Checking for network zimlets in LDAP...done.
Removing network zimlets...
Finished removing network zimlets.
Installing common zimlets...
    com_zimbra_phone...done.
    com_zimbra_tooltip...done.
    com_zimbra_viewmail...done.
    com_zimbra_attachmail...done.
    com_zimbra_adminversioncheck...done.
    com_zimbra_email...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_webex...done.
    com_zimbra_url...done.
    com_zimbra_proxy_config...done.
    com_zimbra_clientuploader...done.
    com_zimbra_attachcontacts...done.
    com_zimbra_srchhighlighter...done.
    com_zimbra_mailarchive...done.
    com_zimbra_cert_manager...done.
    com_zimbra_date...done.
    com_zimbra_bulkprovision...done.
Finished installing common zimlets.
Getting list of all zimlets...done.
Updating non-standard zimlets...
Finished updating non-standard zimlets.
Restarting mailboxd...done.
Skipping creation of default domain GAL sync account - existing install detected.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
    The VERSION of zcs installed (8.7.1_GA_1670_UBUNTU14_64)
    The ADMIN EMAIL ADDRESS created (admin@jpp.fr)

Notify Zimbra of your installation? [Yes] Notifying Zimbra of installation via http://www.zimbra.com/cgi-bin/notify.cgi?VER=8.7.1_GA_1670_UBUNTU14_64&MAIL=admin@jpp.fr

Notification complete

Setting up zimbra crontab...done.

Moving /tmp/zmsetup.20161111-193459.log to /opt/zimbra/log

Configuration complete - press return to exit 
--------------------------------------------------------------------
 

Et maintenant vérifions si cela fonctionne ... OUIIII, le Webmail est accessible et on peut envoyer des messages .... et ils arrivent. C'est ce que l'on demande à un système de mail, même en version 8.7.

La migration de 8.6 à 8.7 est un succès, ce qui reste dans la norme des paquets Zimbra.
 

taxonomie

Zimbra : migrer 8.7 à 8.7.5

Zimbra : migrer 8.7 à 8.7.5 drupal_admin mer 29/03/2017 - 23:21

J'ai reçu un mail m'indiquant qu'une nouvelle version de ZIMBRA, la 8.7.5, était disponible.
Après récupération de l'archive adéquate (ici pour Ubuntu LTS 12.04) et un "tar xvf" dans un petit répertoire tranquille on entre dans le vif du sujet car les "README" ne signalent pas de problème partitulier.
Premièrement : sauvegarder lv Machine virtuelle qui supporte Zimbra, on stoppe la machine puis un script fait de "dd | pv | lbzip2 -n 2" permet de sauvegarder rapidement le disque virtuel qui supporte l'installation (VG LVM bien sûr).
Ensuite on peut, en sécurité, attaquer le vif du sujet.
On va dans le répertoire d'installation et :
./install.sh
..... pour le détail du listing voir le lien en base de page
Cela s'est bien passé tout semble avoir redémarré dans l'ordre et dans la discipline et je me dépêche de me connecter sur le Webmail pour vérifier si tous va vraiment bien. La connexion est OK mais tout se fige après quelques secondes. Je précipite sur le teminale relié à cette MV et je constate que Zimbra a tout simplement redémarré ...
Tout est OK, après quelques instants l'accès à l'interface WEB est correect.
A priori pas de bouleversements dans l'interface qui reste agréable, mais une version "8.7.5 n'est pas une version majeure et je ne m'attendais pas à un bouleversement fonctionnel et graphique.
Après quelques jours le fonctionnement est normal, sans problème quoi !

Accéder à la trace d'exécution.

J'ai ensuite remarqué de multiples messages d'ereur dans le fichier "/opt/zimbra/log/mysql_error.log" :

Error: Fetch of persistent statistics requested for table "mboxgroup4"."tagged_item" but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
 InnoDB: Error: Column last_update in table "mysql"."innodb_table_stats" is INT UNSIGNED NOT NULL but should be BINARY(4) NOT NULL (type mismatch).

Ces erreurs sont provoquées par un problème lors de "mysql_upgrade", c'est assez facile à réparer :
Récupérer le mot de passe de Mysql/root (exécuter avec le user "zimbra" :
zmlocalconfig -s | grep mysql | grep password
Noter le mot de passe et lancer la commande :
/opt/zimbra/common/bin/mysql_upgrade -u root -p --host=127.0.0.1 --port=7306
A l'invite "Password:" donnez le mot de passe noté ci-dessus, la commande "crache" un certain nombre de lignes ... et fait le travail.
PS:

Je n'ai pas pu voir si cela était du au passage de 8.6 à 8.7 ou de 8.7 à 8.7.5.

taxonomie

Zimbra : migrer 8.7.5 à 8.8.5

Zimbra : migrer 8.7.5 à 8.8.5 drupal_admin jeu 14/12/2017 - 19:35

Tiens, j'ai reçu un mail de Zimbra me signalant la présence d'une nouvelle version 8.8.5 et conseillant d'effectuer la mise à jour.
D'abord  : sauvegarde du disque de la Machine Virtuelle, dd du disque brut + gzip vers un répertoire de sauvegarde, quand même #10Go.
Après téléchargement de la version pour Ubuntu 14.04 et détarage dans un répertoire de travail on lance l'inévitable "./install.sh".
La procédure se déroule rapidement et régulièrement ... (voir la trace complète ici).
A la fin de l'installation tous les services redémarrent.
Un contrôle rapide montre que tous les processus habituels sont là (ps -ef | grep zimbra) et que leur nombre est "normal" (63 processus pour moi).

Connexion client WEB --> OK
Envoi d'un message  

--> OK, et le message arrive à destination !

Connexion Admin  WEB

--> OK, affiche version 8.8.5
Tous les comptes sont là,
aucune anomalie signalée dans les différents écrans.

Accès depuis Evolution

--> OK, tous les messages sont récupérés

Comme d'habitude la mise à jour s'est effectuée en douceur et sans anicroche.

 

taxonomie

8.7.5 vers 8.8.5 trace

8.7.5 vers 8.8.5 trace drupal_admin jeu 14/12/2017 - 21:57

 

./install.sh

Operations logged to /tmp/install.log.B9FZcmpn
Checking for existing installation...
    zimbra-chat...NOT FOUND
    zimbra-drive...NOT FOUND
    zimbra-imapd...NOT FOUND
    zimbra-network-modules-ng...NOT FOUND
    zimbra-ldap...FOUND zimbra-ldap-8.7.5.GA.1764.UBUNTU14.64
    zimbra-logger...FOUND zimbra-logger-8.7.5.GA.1764.UBUNTU14.64
    zimbra-mta...FOUND zimbra-mta-8.7.5.GA.1764.UBUNTU14.64
    zimbra-dnscache...FOUND zimbra-dnscache-8.7.5.GA.1764.UBUNTU14.64
    zimbra-snmp...FOUND zimbra-snmp-8.7.5.GA.1764.UBUNTU14.64
    zimbra-store...FOUND zimbra-store-8.7.5.GA.1764.UBUNTU14.64
    zimbra-apache...FOUND zimbra-apache-8.7.5.GA.1764.UBUNTU14.64
    zimbra-spell...FOUND zimbra-spell-8.7.5.GA.1764.UBUNTU14.64
    zimbra-convertd...NOT FOUND
    zimbra-memcached...FOUND zimbra-memcached-1:1.4.37-2.u14
    zimbra-proxy...FOUND zimbra-proxy-8.7.5.GA.1764.UBUNTU14.64
    zimbra-archiving...NOT FOUND
    zimbra-core...FOUND zimbra-core-8.7.5.GA.1764.UBUNTU14.64
ZCS upgrade from 8.7.5 to 8.8.5 will be performed.
Validating ldap configuration
LDAP validation succeeded.  Continuing.
----------------------------------------------------------------------
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
SYNACOR, INC. ("SYNACOR") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.

License Terms for this Zimbra Collaboration Suite Software:
https://www.zimbra.com/license/zimbra-public-eula-2-6.html
----------------------------------------------------------------------
Do you agree with the terms of the software license agreement? [N]

"Y" évident !

Checking current number of databases...

Do you want to verify message store database integrity? [Y] y
Verifying integrity of message store databases.  This may take a while.
mysqld is alive
No errors found

Use Zimbra's package repository [Y]
====> Y évidemment
Configuring package repository

Checking for installable packages

Found zimbra-core (local)
Found zimbra-ldap (local)
Found zimbra-logger (local)
Found zimbra-mta (local)
Found zimbra-dnscache (local)
Found zimbra-snmp (local)
Found zimbra-store (local)
Found zimbra-apache (local)
Found zimbra-spell (local)
Found zimbra-memcached (repo)
Found zimbra-proxy (local)
Found zimbra-chat (repo)
Found zimbra-drive (repo)
Found zimbra-imapd (local)

The Zimbra Collaboration Server appears to already be installed.
It can be upgraded with no effect on existing accounts,
or the current installation can be completely removed prior
to installation for a clean install.

Do you wish to upgrade? [Y]

On est là pour çà ! "Y"

Checking current number of databases...

Do you want to verify message store database integrity? [Y] y
Verifying integrity of message store databases.  This may take a while.
mysqld is alive
No errors found

Use Zimbra's package repository [Y]

On va accepter "Y".

Configuring package repository

Checking for installable packages

Found zimbra-core (local)
Found zimbra-ldap (local)
Found zimbra-logger (local)
Found zimbra-mta (local)
Found zimbra-dnscache (local)
Found zimbra-snmp (local)
Found zimbra-store (local)
Found zimbra-apache (local)
Found zimbra-spell (local)
Found zimbra-memcached (repo)
Found zimbra-proxy (local)
Found zimbra-chat (repo)
Found zimbra-drive (repo)
Found zimbra-imapd (local)

The Zimbra Collaboration Server appears to already be installed.
It can be upgraded with no effect on existing accounts,
or the current installation can be completely removed prior
to installation for a clean install.

Do you wish to upgrade? [Y]

Pourquoi pas ? "Y"

Scanning for any new or additional packages available for installation
Existing packages will be upgraded
    Upgrading zimbra-core
    Upgrading zimbra-ldap
    Upgrading zimbra-logger
    Upgrading zimbra-mta
    Upgrading zimbra-dnscache
    Upgrading zimbra-snmp
    Upgrading zimbra-store
    Upgrading zimbra-apache
    Upgrading zimbra-spell
    Upgrading zimbra-memcached
    Upgrading zimbra-proxy

Install zimbra-chat [N]
======> N
Install zimbra-drive [N]
======> N
Install zimbra-imapd [N]
======> N
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-dnscache
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy

The system will be modified.  Continue? [N]

"Y"

Beginning Installation - see /tmp/install.log.B9FZcmpn for details...

                          zimbra-core-components will be downloaded and installed.
                           zimbra-common-mbox-db will be installed.
                   zimbra-common-mbox-conf-attrs will be installed.
                    zimbra-common-mbox-conf-msgs will be installed.
                  zimbra-common-mbox-conf-rights will be installed.
                         zimbra-common-mbox-conf will be installed.
                         zimbra-common-mbox-docs will be installed.
                   zimbra-common-mbox-native-lib will be installed.
                            zimbra-timezone-data will be installed.
                                     zimbra-core will be installed.
                          zimbra-ldap-components will be downloaded and installed.
                                     zimbra-ldap will be installed.
                                   zimbra-logger will be installed.
                           zimbra-mta-components will be downloaded and installed.
                                      zimbra-mta will be installed.
                      zimbra-dnscache-components will be downloaded and installed.
                                 zimbra-dnscache will be installed.
                          zimbra-snmp-components will be downloaded and installed.
                                     zimbra-snmp will be installed.
                         zimbra-store-components will be downloaded and installed.
                       zimbra-jetty-distribution will be downloaded and installed.
                                 zimbra-mbox-war will be installed.
                                zimbra-mbox-conf will be installed.
                             zimbra-mbox-service will be installed.
                                    zimbra-store will be installed.
                        zimbra-apache-components will be downloaded and installed.
                                   zimbra-apache will be installed.
                         zimbra-spell-components will be downloaded and installed.
                                    zimbra-spell will be installed.
                                zimbra-memcached will be downloaded and installed.
                         zimbra-proxy-components will be downloaded and installed.
                                    zimbra-proxy will be installed.

Downloading packages (11):
   zimbra-core-components
   zimbra-ldap-components
   zimbra-mta-components
   zimbra-dnscache-components
   zimbra-snmp-components
   zimbra-store-components
   zimbra-jetty-distribution
   zimbra-apache-components
   zimbra-spell-components
   zimbra-memcached
   zimbra-proxy-components
      ...done

Saving existing configuration file to /opt/zimbra/.saveconfig

Shutting down zimbra mail
Backing up the ldap database...done.
Upgrading the remote packages

Removing deployed webapp directories

Installing repo packages (11):
   zimbra-core-components
   zimbra-ldap-components
   zimbra-mta-components
   zimbra-dnscache-components
   zimbra-snmp-components
   zimbra-store-components
   zimbra-jetty-distribution
   zimbra-apache-components
   zimbra-spell-components
   zimbra-memcached
   zimbra-proxy-components
      ...done

Installing local packages (21):
   zimbra-common-mbox-db
   zimbra-common-mbox-conf-attrs
   zimbra-common-mbox-conf-msgs
   zimbra-common-mbox-conf-rights
   zimbra-common-mbox-conf
   zimbra-common-mbox-docs
   zimbra-common-mbox-native-lib
   zimbra-timezone-data
   zimbra-core
   zimbra-ldap
   zimbra-logger
   zimbra-mta
   zimbra-dnscache
   zimbra-snmp
   zimbra-mbox-war
   zimbra-mbox-conf
   zimbra-mbox-service
   zimbra-store
   zimbra-apache
   zimbra-spell
   zimbra-proxy
      ...
Running Post Installation Configuration:

Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save
   HOSTNAME=ubu-zimbra.jpp.fr
   LDAPHOST=ubu-zimbra.jpp.fr
   LDAPPORT=389
   SNMPTRAPHOST=ubu-zimbra.jpp.fr
   SMTPSOURCE=zadmin@jpp.fr
   SMTPDEST=zadmin@jpp.fr
   SNMPNOTIFY=yes
   SMTPNOTIFY=yes
   LDAPROOTPW=*
   LDAPZIMBRAPW=*
   LDAPPOSTPW=*
   LDAPREPPW=*
   LDAPAMAVISPW=*
   LDAPNGINXPW=*
Restoring existing configuration file from /opt/zimbra/.saveconfig/localconfig.xml...done
Operations logged to /tmp/zmsetup.20171214-132031.log
Adding /opt/zimbra/conf/ca/ca.pem to cacerts
Upgrading from 8.7.5_GA_1764 to 8.8.5_GA_1894
Stopping zimbra services...done.
This appears to be 8.7.5_GA
Starting mysql...
Checking ldap status...not running.
Starting ldap...done.
Checking ldap status...already running.
Running mysql_upgrade...done.
Schema upgrade required from version 107 to 108.
Running /opt/zimbra/libexec/scripts/migrate20170301-ZimbraChat.pl
Thu Dec 14 13:21:06 2017: Verified schema version 107.
Thu Dec 14 13:21:07 2017: Verified schema version 107.
Thu Dec 14 13:21:07 2017: Updating DB schema version from 107 to 108.
Stopping mysql...
Thu Dec 14 13:21:07 2017: Updating DB schema version from 107 to 108.
Stopping mysql...done.
Updating global config and COS's with attributes introduced after 8.7.5_GA...done.
Stopping ldap...done.
Upgrade complete.

Checking ldap status....not running.
Starting ldap...done
Setting defaults...done.
Setting defaults from existing config...done.
Checking for port conflicts
Setting defaults from ldap...done.
Saving config in /opt/zimbra/config.24960...done.
Operations logged to /tmp/zmsetup.20171214-132031.log
Setting local config values...done.
Initializing core config...Setting up CA...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Creating server entry for ubu-zimbra.jpp.fr...already exists.
Setting Zimbra IP Mode...done.
Saving SSL Certificate in ldap...done.
Setting spell check URL...done.
Setting service ports on ubu-zimbra.jpp.fr...done.
Setting Keyboard Shortcut Preferences...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Saving SSL Certificate in ldap...done.
Setting spell check URL...done.
Setting service ports on ubu-zimbra.jpp.fr...done.
Setting Keyboard Shortcut Preferences...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Setting DNS cache tcp lookup preference...done.
Setting DNS cache udp lookup preference...done.
Setting DNS tcp upstream preference...done.
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on ubu-zimbra.jpp.fr...done.
aAdding ubu-zimbra.jpp.fr to zimbraMailHostPool in default COS...done.
Creating user spam@jpp.fr...already exists.
Creating user ham@jpp.fr...already exists.
Creating user virus-quarantine.6ec8zwetz@jpp.fr...
Setting DNS cache tcp lookup preference...done.
Setting DNS cache udp lookup preference...done.
Setting DNS tcp upstream preference...done.
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on ubu-zimbra.jpp.fr...done.
aAdding ubu-zimbra.jpp.fr to zimbraMailHostPool in default COS...done.
Creating user spam@jpp.fr...already exists.
Creating user ham@jpp.fr...already exists.
Creating user virus-quarantine.6ec8zwetz@jpp.fr...
aSetting DNS cache tcp lookup preference...done.
Setting DNS cache udp lookup preference...done.
Setting DNS tcp upstream preference...done.
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on ubu-zimbra.jpp.fr...done.
aAdding ubu-zimbra.jpp.fr to zimbraMailHostPool in default COS...done.
Creating user spam@jpp.fr...already exists.
Creating user ham@jpp.fr...already exists.
Creating user virus-quarantine.6ec8zwetz@jpp.fr...already exists.
Setting spam training and Anti-virus quarantine accounts...done.
^[Configuring SNMP...done.
Setting up syslog.conf...done.
Starting servers...
Setting services on ubu-zimbra.jpp.fr...done.
aAdding ubu-zimbra.jpp.fr to zimbraMailHostPool in default COS...done.
Creating user spam@jpp.fr...already exists.
Creating user ham@jpp.fr...already exists.
Creating user virus-quarantine.6ec8zwetz@jpp.fr...already exists.
Setting spam training and Anti-virus quarantine accounts...done.
^[Configuring SNMP...done.
Setting up syslog.conf...done.
Starting servers...
Checking for network zimlets in LDAP...done.
Removing network zimlets...
Finished removing network zimlets.
Installing common zimlets...
    com_zimbra_phone...done.
    com_zimbra_tooltip...done.
    com_zimbra_viewmail...done.
    com_zimbra_attachmail...done.
    com_zimbra_adminversioncheck...done.
    com_zimbra_email...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_webex...done.
    com_zimbra_url...done.
    com_zimbra_proxy_config...done.
    com_zimbra_clientuploader...done.
    com_zimbra_attachcontacts...done.
    com_zimbra_srchhighlighter...done.
    com_zimbra_mailarchive...done.
    com_zimbra_cert_manager...done.
    com_zimbra_date...done.
    com_zimbra_bulkprovision...done.
Finished installing common zimlets.
Getting list of all zimlets...done.
Updating non-standard zimlets...
Finished updating non-standard zimlets.
Restarting mailboxd...
Skipping creation of default domain GAL sync account - existing install detected.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
    The VERSION of zcs installed (8.8.5_GA_1894_UBUNTU14_64)
    The ADMIN EMAIL ADDRESS created (admin@jpp.fr)

Notify Zimbra of your installation? [Yes]

Pourquoi pas ? Ils l'ont mérité :

Notification complete

Setting up zimbra crontab...done.
Moving /tmp/zmsetup.20171214-132031.log to /opt/zimbra/log
Configuration complete - press return to exit

ET C'EST FINI.

Zimbra : migration 8.8.5 à 8.8.6

Zimbra : migration 8.8.5 à 8.8.6 drupal_admin jeu 01/02/2018 - 21:21

Je ne cite cette migration mineure que parcequ'elle apporte une fonctionnalité supplémentaire, au moins que je n'avais par remarquée auparavant !
Cette nouvelle fonction proposée est un "chat" qui vous ouvre un petit écran et vous permet d'échanger avec un autre correspondant connecté sur le service.

En ce qui concerne la trace d'installation elle est accessible ici.

Voyons un peu à quoi ressemble ce "chat".
Lors de la connexion à votr compte une petite fenêtre s'ouvre, par défaut en bas à droite, et présente les utilisateurs connectés.

 

Fenetre de sélection des utilisateurs pour le chat.

Fenêtre sélection des utilisateurs.

Un clic sur l'utilisateur désiré déclenche l'ouverture d'une deuxième fenêtre destinée au "chat" avec cette personne.
 

Ouverture fenetre de discussion

La fenêtre de "chat" est ouverte, il peut y en avoir plusieurs.

Il est à noter qu'un dossier supplémentaire "Discussions" est ouvert et qu'il permet de conserver ou d'effacer les échanges.

taxonomie

VM Ubuntu 16.04 + letsencrypt

VM Ubuntu 16.04 + letsencrypt drupal_admin sam 16/02/2019 - 13:28

Ma version de Ubuntu étant en fin de vie en Avril 2019 j'ai voulu passer sur une version plus récente. Dommage il n'existe pas de paquets Zimbra pour la 18.04 qui date pourtant de près d'un an.
J'ai donc installé le système dans une nouvelle MV sur une machine de test, la 16.04.5 s'installe sans problèmes, la version 8.8.11 de Zimbra suit le même chemin sans plus de problèmes.
L'installation étant très proche de celle des version précédentes je ne vous dispense de la trace d'installation, vous pouvez accéder ici à celle de la version 8.7.5 qui est très semblable.
Après création des comptes et alias nécessaires dans la nouvelle machine l'export des comptes de l'ancienne version se passe bien, à exporter un par un, et l'import dans la nouvelle version est impeccable.
Il me faut maintenant récupérer un certificat Letsencrypt pour cette nouvelle machine. J'ai d'abord recopié le répertoire /etc/letsencrypt dans la nouvelle machine j'ai tenté d'utiliser le script "certbot_zimbra.sh" que j'utilisais sur l'ancienne version. Mais le script demande la présence du script "certbot" qui a été remplacé par "letsencrypt".
J'ai pu renouveler mon certificat sans difficultés avec le nouveau script "letsencrypt" en mode "standalone" après avois stoppé Zimbra (pour éviter les conflits de ports).

Note octobre 2019 :
Le script "certbot" existe de nouveau et comme j'ai déjà un certificat son utilisation est très simple :

  1. Stopper zimbra (éviter les conflits de ports)
  2. certbot certonly --standalone -d Votre-nom-de-domaine
  3. Le tour est joué, votre certificat est à jour, il ne resta plus qu'à le faire "avaler" à Zimbra.

J'ai créé, comme recommandé un répertoire /opt/zimbra/ssl/letsencrypt dans lequel j'ai recopié les certificats puis j'ai tenté d'utiliser "zmcertmgr" ce qui ma donné une erreur de validation.
J'ai du :

  1. Recopier la clé "privkey.pem" en écrasant le fichier de destination
    cd /etc/letsencrypt/live/le_nom_du_domaine
    cp privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
  2. Depuis le même répertoire /etc/letsencrypt/live/le_nom_du_domaine copier le tout
    cp *.pem /opt/zimbra/ssl/letsencrypt
  3. Récupérer le "bon" certificat DSTRootCAX3.pem par exemple avec :
    curl -s "https://crt.sh/?d=8395" >/opt/zimbra/ssl/letsencrypt/DST_Root_CA_X3.pem
  4. Ajouter ce certificat en fin du fichier "chain.pem" du répertoire /opt/zimbra/ssl/letsencrypt

On peut alors utiliser zmcertmgr "normalement" :
su - zimbra
cd /opt/zimbra/ssl/letsencrypt
zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem

** Verifying 'cert.pem' against 'privkey.pem'
Certificate 'cert.pem' and private key 'privkey.pem' match.
** Verifying 'cert.pem' against 'chain.pem'
Valid certificate chain: cert.pem: OK

On peut alors tenter, avec succès, l'opération suivante (toujours avec le user "zimbra") :
cd /opt/zimbra/ssl/letsencrypt
zmcertmgr deploycrt comm cert.pem chain.pem

Cette commande est très bavarde mais finit par avouer (sans autre torture) :
** Removing /opt/zimbra/conf/ca/ca.pem
** Removing /opt/zimbra/conf/ca/ca.key
** Removing /opt/zimbra/conf/ca/217a2bc3.0
** Copying CA to /opt/zimbra/conf/ca
** Copying '/opt/zimbra/ssl/zimbra/ca/ca.key' to '/opt/zimbra/conf/ca/ca.key'
** Copying '/opt/zimbra/ssl/zimbra/ca/ca.pem' to '/opt/zimbra/conf/ca/ca.pem'
** Creating CA hash symlink '2e5ac55d.0' -> 'ca.pem'
** Creating /opt/zimbra/conf/ca/commercial_ca_1.crt
** Creating CA hash symlink '4f06f81d.0' -> 'commercial_ca_1.crt'
** Creating /opt/zimbra/conf/ca/commercial_ca_2.crt
** Creating CA hash symlink '2e5ac55d.1' -> 'commercial_ca_2.crt'

Ensuite, après avoir redémarré Zimbra tout se passe bien, le certificat est bien installé, aucun navigateur ne se plaint lors de la connexion.

Ossec sur ubuntu

Ossec sur ubuntu drupal_admin sam 02/03/2019 - 14:16

Installation OSSEC client sur une Ubuntu 16.04.
Pré-requis :
apt-get install tcl-expect expect
Récupérer le paquet adéquat, ici "ossec-hids-agent_3.2.0-6132xenial_amd64.deb" sur le site atomicorp : https://updates.atomicorp.com/channels/ossec/ubuntu/pool/main/o/ossec-hids-agent/
L'installation se fait directement par "dpkg".
Afin de rendre le paquet "actif" il faut :
A) Lui donner l'adresse du serveur central.
fichier "/var/ossec/etc/ossec.conf" variable <server-ip>.

B) l'autoriser à se connecter au serveur OSSEC.
Sur le serveur (dans /var/ossec/bin) :

./manage_agent
1) supprimer l'agent de l'ancienne machine, eh oui c'est un remplacement : option "R"

... liste des agents enregistrés
Provide the ID of the agent to be removed (or '\q' to quit): 003
Confirm deleting it?(y/n): y
Agent '003' removed.

2) Ajouter la nouvelle machine. (A)
- Adding a new agent (use '\q' to return to the main menu).
  Please provide the following:
   * A name for the new agent: xxxxxxx
   * The IP Address of the new agent: 192.168.X.Y
   * An ID for the new agent[999]:
Agent information:
   ID:999
   Name:mail
   IP Address:192.168.X.Y

Confirm adding it?(y/n): y
3) Extraire la clef : (E)
Available agents:
... liste des agents connus ...
Provide the ID of the agent to extract the key (or '\q' to quit):  999
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

** Press ENTER to return to the main menu.

Garder la clef à l'écran !

Sur le client (/var/ossec/bin) :
./manage_agents
****************************************
* OSSEC HIDS v3.2.0 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.
Choose your action: I or Q: I
* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.

Paste it here (or '\q' to quit): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
....
** You must restart OSSEC for your changes to take effect.

Il faudra encore ajuster les fichiers à contrôler (/var/ossec/etc/ossec.conf) :
Ubuntu n'a pas de "/var/log/messages" ni de "/var/log/secure" ...
Remplacer "authlog" par "auth.log", "maillog" par "mail.log" et autres ajustements avant de relancer le process. Vérifier dans /var/ossec/logs/ossec.log
J'ai rencontré un petit incident, des messages :

2019/03/02 14:48:48 ossec-syscheckd: INFO: Starting syscheck scan (forwarding database).
2019/03/02 14:48:48 ossec-syscheckd: WARN: Process locked. Waiting for permission...

présents dans /var/ossec/logs/ossec.log m'inquiètent.
Détruire les fichiers dont le nom commence par un (point) ou se termine par "=" dans les sous-répertoires de /var/ossec/queue/ , par exemple /var/ossec/queue/ossec/.wait
Mais j'ai toujours "ossec-logcollector: WARN: Process locked. Waiting for permission..." dans les logs. Après avoir stoppé serveur et client il semble que cela soit OK, maintenant wait and see ...

 

 

 

Update version 8.8.8 à 8.8.15

Update version 8.8.8 à 8.8.15 drupal_admin lun 27/04/2020 - 17:07

Zimbra : Premier upgrade de version sur Ubuntu de 8..8.8 à 8.8.15.

Article très court, l'upgrade s'est fort bien passé, sans aucun point douteux. Les parties les plus longues sont la sauvegarde préalable nécessaire pour assurer la sécurité et la sauvegarde après upgrade pour disposer d'un point de reprise "à jour".

La liste témoin du passage est disponible ici.

Après quelques jours de fonctionnement tout à l'air parfaitement en ordre.

taxonomie

Zimbra divers

Zimbra divers drupal_admin mer 29/04/2020 - 16:45

Ce petit groupe d'articles traite essentiellement du paramétrage de certaines actions spécifiques. 

taxonomie

Zimbra Black et White listes

Zimbra Black et White listes drupal_admin mer 29/04/2020 - 16:51

Il est intéressant de gérer des liste Black et White, la White est particulièrement importante si vous ne voulez pas que Spamassassin passe en "SPAM" les mails originaires de certains de vos correspondants qui utilisent des "manières" analogues à celles des spammeurs ....
La partie "Black" permet de rejeter automatiquement des origines qui vous ennuient ...
La syntaxe du fichier est assez simple :
(whitelist|blacklist) from motif d'adresse

Un petit exemple vaut mieux qu'un long discours :

  • whitelist_from    *@asus.com 
    Accepter toutes les adresses du domaine "asus.com"
  • blacklist_from    *@*topdeals.*
    Refuser toutes les adresses des sites d'un domaine répondant à "*topdeals.*"

Maintenant, où mettre ces données ?
Mais c'est très simple :

  • Rendez-vous dans le répertoire : /opt/zimbra/data/spamassassin/localrules
  • Posez ici votre fichier liste, vous pouvez mélanger Black et White !
  • Modifiez le fichier "local.cf" en ajoutant à la fin :
    ###
    include /opt/zimbra/data/spamassassin/localrules/mon_fichier_black_and_white.txt

Chaque fois que vous mettrez ce fichier à jour il faudra bien sûr redémarrer le service Spamassassin par un "./bin/zmamavisdctl restart" as user "zimbra".

taxonomie

ZIMBRA : utiliser un "smartphone"

ZIMBRA : utiliser un "smartphone" jpp ven 01/10/2010 - 20:00

Un membre de ma famille a interrogé son courrier depuis son "smartphone", ici un Samsung Galaxy S depuis la Corée, et a trouvé que l'ergonomie du WebMail en version petit écran était très bonne et facilement utilisable.
C'est une bonne nouvelle qui me conforte dans le choix de ZIMBRA.
J'ai pu moi même essayer cet accès car mon anniversaire m'a apporté un Iphone 4 tout beau, tout neuf et j'ai rapidement essayé l'accès au Webmail.
Ce n'est pas super rapide mais très utilisable et  assez agréable.
Ci dessous quelques images (photos car il n'ya pas de copier/coller entre un Iphone et mon PC !) pour montrer l'aspect de l'interface :

 L'écran de login  
 L'écran d'affichage de la liste des messages,
c'est du SPAM ! Une fois reconnu et transmis à la bonne adresse spam.xxxxxxx@... l'antispam nous en préserve assez bien.
Vous pouvez noter une recrudescence des SPAM que l'on appelait "Nigérien" il y a quelques années.
 
L'affichage détaillé d'un message  
Les actions possibles sur un message  

J'espère que cela vous aura montré la qualité de cet interface, qui malgré les limitations de l'écran, permet de consulter son Webmail confortablement.

A bientôt ...
Note 2012/12
En fait je m'en sert assez souvent pour consulter mes mails depuis le bureau en attendant de les rapatrier dans Evolution chaque soir. Plus je m'en sert plus je trouve cet interface génial.

Note 2016/05
Je me sert toujours de Zimbra, maintenant en version 8, avec un Iphone j'ai connecté le lecteur de Mail de L'Iphone sur mon serveur Zimbra et cela fonctionne parfaitement.

Note 2017/10
Toujours actif avec un Iphone 6

Selenium

Selenium drupal_admin lun 16/10/2017 - 23:56
Deux petits articles consacrée à Selenium

 

Le logo de Selenium

Non ce n'est pas un métal !  C'est un ensemble de logiciels adaptés au test de sites WEB.

Depuis ce test (réalisé en 2017) Selenium a pas mal évolué, les IDE incorporables aux navigateurs ont aussi beaucoup évolué et pas forcément en bien ... celui que j'utilisais ne permet plus de générer des scripts Python , quel dommage !
Après une petite recherche j'ai trouvé un IDE "Katalon" qui est très ressemblant et facile à utiliser et qui génère du Python ! Par ailleurs Katalon propose un environnement de test que je vais regarder de près.

Bientôt un test.

Selenium : juste un petit tour.

Selenium : juste un petit tour. jpp mer 29/07/2015 - 22:41

Cet article ne représente qu'un démarrage minimum avec ce produit dont les domaines d'applications sont très divers car il permet de tester un logiciel avec divers browser (Chrome, Firefox, Opera, Safari, Internet Explorer) sur divers systèmes d'exploitation (Linux, MacOs, diverses saveurs de Windows).
Ici, tests fait sur un portable sous Linux, cela se réduit à l'IDE et deux browser sous Linux : Chromium (Chrome a refusé de fonctionner avec la version du driver dont je dispose) et Iceweasel (Firefox).
Des "bindings" existent pour plusieurs langages ; Ruby, Python et bien sûr Java.Je n'ai testé ici que l'interface pour Python. Une version de Java 1.7, (JRE) convient parfaitement.

Depuis le site "seleniumhq.org" :

  • Charger le module Selenium IDE comme ADDON Mozilla (version testée 2.9.0)
  • Charger le "standalone server" (version testée 2.46)
  • Charger les drivers Python : Lancer l'installaton (en root !) :
    pip install -U selenium
  • Chrome driver (32 bits Linux), charger la dernière version (ici la 2.16) :http://chromedriver.storage.googleapis.com/2.16/chromedriver_linux32.zip (ou linux64). Cette version est numerotée "v2.9.248316" à l'éxécution ???

J'ai ensuite installé tout ça dans un répertoire "Selenium" pour bien l'isoler.
J'ai ajouté un répertoire "Config" et un répertoire "Tests". Le répertoire "Config" contient les deux fichiers de configuration (format json) pour le "Hub" et un pour le "Node". 
Ici je ne lance qu'un seul node et sur la même machine ( portable i386 avec 4G de mémoire très convenable pour les vacances !) Selenium fonctionne avec au moins deux processes (tout est dans la stand-alone-server) :
Le "Hub" reçoit les demandes d'exécution et les transmet au "Node" (ou à un parmi les Nodes déclarés) qui dispose du pseudo-browsers demandés. Ici nous disposons d'un driver Firefox (standard du paquet) et d'un driver "chrome". Petite remarque : le driver "chrome" ne fonctionne pas avec les versions de "google-chrome" que j'ai testées mais parfaitement avec la version "chromium" fournie par Debian.
J'ai aussi effectué quelques tests avec Opera mais sans succès pour le moment, pas de machine Windows dispo donc pas de tests Internet Explorer.

L'IDE Selenium est accessible dans le menu "Outils" de Firefox (ici IceWeasel) ou par le raccourci "Ctrl+Alt+s".
L'enregistrement est facile et sans problèmes depuis Firefox, on peut le rejouer immédiatement pour vérifier.

Pour un premier test se "balader" un peu sur un site (j'ai utilisé un site local de test), valider ensuite le test et le sauvegarder en format "natif" puis le sauvegarder en format "Python" dans un fichier "xxxxxxxx.py".

Pour éxecuter un test créé par l'IDE :
l'exporter en mode "python 2 unittest webdriver" sour le nom "test_remote.py" et lancer la commande :
python test_remote.py
Une fenêtre Firefox s'ouvre et le test s'y éxécute.

Pour exécuter les tests en mode "Webdriver" et lancer plusieurs tests simultanément in faut créer un "Hub" et au moins un "Node".
Sauvegarde le test au format Python ( ici "Python2 unittest webdriver").
Le lancement ouvrira une fenêtre Firefox (par défaut) et on verra défiler les pages du test. Pour utiliser Chromium il suffit de modifier très légèrement le script.
Partie du script généré pour Firefox :

class TEST03(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Remote(desired_capabilities={
            "browserName": "firefox",
            "platform": "LINUX", });

Après modification pour Chromium :
class TEST03(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Remote(desired_capabilities={
            "browserName": "chrome",
            "platform": "LINUX", });

Cette méthode permet de vérifier rapidement le script.

Deux scripts hyper simples et deux fichiers de configuration permettent de lancer le "Hub" et un "Node". Le script de lancement d'un "Node" peut être lancé sur plusieurs machines avec la modification de l'adresse du "Hub" dans son fichier de configuration.

Lors des tests j'ai remarqué une consommation CPU assez importante et mon brave portable ne peut guère supporter deux browser en concurrence (Un Chromium et un Firefox) en plus du serveur Web dans sa machine virtuelle KVM sans commencer à montrer des signes d'épuisement. Avec trois browsers le ralentissement est notable dans ce petit portable qui date de 2009 (voir l'article de présentation de cette machine SSDisée).
 

Selenium : scripts et fichiers de paramétrage

Selenium : scripts et fichiers de paramétrage jpp mer 29/07/2015 - 22:45

Le script de lancement du Hub :

#!/bin/bash
OPTIONS=' -hubConfig ./Config/HubConfig.json  '
java -jar selenium-server-standalone-2.46.0.jar -role hub  $OPTIONS

Et son fichier de configuration :

{
  "host": "127.0.0.1",
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets" : [],
  "prioritizer": null,
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "nodePolling": 5000,
  "cleanUpCycle": 5000,
  "timeout": 300000,
  "browserTimeout": 0,
  "maxSession": 5,
  "jettyMaxThreads":-1
}

Le script de lancement d'un Node :

#!/bin/bash
PATH=./:$PATH
export PATH
export SELENIUM_SERVER_JAR=$(pwd)
OPTIONS='  -nodeConfig ./Config/NodeConfig.json '
java -jar selenium-server.jar -role node  $OPTIONS

Et son fichier de config :

{
  "capabilities":
      [
        { "browserName": "*firefox",
          "maxInstances": 5,
          "seleniumProtocol": "Selenium"
        },
        { "browserName": "*googlechrome",
          "maxInstances": 5,
          "seleniumProtocol": "Selenium"
        },
        { "browserName": "*iexplore",
          "maxInstances": 1,
          "seleniumProtocol": "Selenium"
        },
        { "browserName": "firefox",
          "maxInstances": 5,
          "seleniumProtocol": "WebDriver"
        },
        { "browserName": "chrome",
          "maxInstances": 5,
          "seleniumProtocol": "WebDriver"
        },
        { "browserName": "internet explorer",
          "maxInstances": 1,
          "seleniumProtocol": "WebDriver"
        }
      ],
  "configuration":
  { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "maxSession": 5,
    "port": 5555,
    "host": "127.0.0.1",
    "register": true,
    "registerCycle": 5000,
    "hubPort": 4444,
    "hubHost": "127.0.0.1"
  }
}

 

Selenium 2019

Selenium 2019 drupal_admin dim 21/04/2019 - 20:38

Futur article sur Katalon dont l'Ide incorporable à Firefox et Chromium permet de générer du Python.
En attendant vous pouvez voir (ici) la simplicité du code Python utilisé pour mon test de "PHP7.3/Opcache" réalisé en HTTP simple sur une machine KVM de test pour éviter les problèmes de certificats ...

SQUID : cache

SQUID : cache drupal_admin ven 19/05/2017 - 20:10

Logo de Squid

J'utilise Squid  depuis très longtemps, ce blog contient plusieurs articles à ce sujet dont le premier remonte à 2010.

J'ai décidé de les regrouper pour que l'ensemble soit plus facile à consulter.
Le premier article de la série est une explication générique de l'utilité d'un proxy-cache et de son installation basique.

Le deuxième traite plus particulièrement du cas de l'usage de SSL

Les autres articles présentent divers scripts liés à l'utilisation de Squid et quelques éléments sur les "ACL" (Access Control List) et leur usage.

taxonomie

SQUID : Proxy cache filtre

SQUID : Proxy cache filtre jpp dim 23/05/2010 - 16:43

Squid est un proxy-cache parmi les plus connus, l'avantage d'un cache n'est plus à démontrer et tous les browsers en intègrent un. Mais sur un réseau comportant plusieurs machines accédant à Internet il peut être intéressant de disposer d'un cache centralisé qui dimunuera le débit Internet nécessaire et améliorera la vitesse d'affichage.
Ce proxy peut être installé sur une machine "tête" de réseau qui seule gère l'accès vers Internet. Cette machine peut (doit ?) aussi servir de Firewall commun.
Une autre fonction des proxy est le filtrage et Squid est, bien sûr, muni de possibilités dans ce domaine. La plupart des proxies nécessitent un réglage spécifique des browser en utilisant un port spécifique, en général le 3128. Si le filtrage de Squid est efficace il est donc dans ce cas facile de le contourner en désactivant le cache dans son browser.
Une autre méthode est d'utiliser un cache "transparent" et d'y rediriger les requêtes sortantes à destination du port 80. Une simple règle iptables permet d'effectuer la redirection de tout ce qui veut sortir vers un port 80 en provenance su réseau "SOURCE" vers le port 3128 standard de SQUID (Note 2016: on peut agir de même en SSL avec les versions récentes de Squid) :

PATH=/sbin:$PATH

IFINT=eth0           
#

SOURCE="192.168.1.0/24"
PORTS=3128
PORTE=80
#
iptables -t nat -A PREROUTING -i $IFINT -s $SOURCE -p tcp --dport $PORTE  -j REDIRECT --to-port $PORTS

Il faudra ajouter la directive "http_port 3128 transparent" dans le paramétrage de SQUID.
Le filtrage sera réalisé par des "ACL" (Access Control List) et des "http_access deny/allow". Afin que le filtrage soit plus "transparent" un pseudo fichier (une image png de un seul point, transparent lui aussi) sera renvoyé à la place de la demande filtrée ce qui évite de polluer les écrans par des messages intempestifs.

Fichier de paramétrage SQUID partie "générique"  :

http_port 3128 transparent
hosts_file /etc/hosts
# Controles standard
# ------------------
acl Safe_ports port 80
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl purge method PURGE
acl CONNECT method CONNECT


http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports

 

Nous arrivons ensuite à notre section de filtrage, le fameux "ACL" est effectué par une recherche dans un fichier externe, simple fichier texte (à mettre à jour manuellement, on peut trouver de tels fichiers sur Internet). Le type de règle utilisé "dstdom_regex", il suffit alors que le fichier contienne une URL (ou une partie d'URL) pour que la condition soit remplie.

acl mespub      dstdom_regex "/etc/squid/mespub.txt"
deny_info file:///etc/squid/deny.png mespub
http_access deny mespub

Si le fichier "mespub.txt" contient une ligne ".sexe.com" tous les sites dont le nom se termine par "sexe.com" seront invisibles. Ce fichier peut aussi contenir des adresses IP car souvent les sites d'images publicitaires n'ont pas de nom de domaine mais seulement une IP.
Le fichier paramètre contient à la fin quelques variables "techniques" qu'il est intéressant de conserver (et d'adapter) :

# Filtrage selon reseau d'origine
acl reso0 src 10.0.1.0/24
acl reso1 src 127.0.0.1
acl reso2 src 192.168.1.0/24
http_access allow reso0
http_access allow reso1
http_access allow reso2
http_access allow localhost
http_access deny all
http_reply_access allow all
#
# Constantes diverses
#
icp_access allow all
visible_hostname mon_host_name
memory_pools_limit 1 MB


access_log     /var/log/squid/access.log squid
error_directory /usr/share/squid/errors/French
coredump_dir     /var/spool/squid

Une aide importante à l'utilisation du filtrage est constituée du paquet "sarg" qui permet d'extraire des statistiques d'accès des fichiers de log de SQUID.
Pour Debian l'installation est immédiate et créée automatiquement les crontabs qui vont bien (journalière, hebdomadaire et mensuelle).
Pour la partie journalière il vaut mieux "coupler" l'exécution du script avec la purge des fichiers "SQUID" effectuée par "logrotate" en effectuant le calcul des statistiques juste avant la rotation des logs, ajouter un traitement "prerotate" lançant "/usr/sbin/sarg-reports daily" et supprimer le script présent dans "/etc/cron.daily".
Le résultat est directement consultable sur le serveur en http (il faut évidement avoir Apache sur le serveur SQUID), par défaut tout est installé (Debian) dans /var/www/sarg_reports :

 

   

Le champ "FICHIER/PERIODE" est cliquable et amène sur une page statistique par adresse IP d'origine:

Les adresses sont cliquables et amènent sur le détail complet des sites HTTP consultés ce jour par cette adresse IP :

C'est un peu indiscret, mais utile pour les mises à jour du fichier texte de filtrage ... noter la mention "REFUSE" sur les sites "bloqués".
 

Squid avec ssl

Squid avec ssl jpp mar 11/11/2014 - 17:53


Note avril 2020 : Squid (version  4.9-20200102) est toujours actif et j'ajoute régulièrement quelques données dans les fichiers de filtrage pour définir quelques origines gênantes et je récupère toutes les semaines les informations sur les serveurs de pub depuis https://pgl.yoyo.org

Note juin 2018 : j'utilise toujours Squid (version 4.0.25) sur mon système frontal ce qui permet de bloquer certains sites de pub un peu trop intrusifs et aussi d'accélérer l'affichage. Pour voir le principe des "ACL" et quelques exemples aller ici.

Note septembre 2017, en cas d'ennui de compilation vérifier l'installation de :
libssl-dev et libcrypto++-dev

apt-get install libssl-dev libcrypto++-dev

La version qui "tourne" actuellement est la version 3.5.19-20160618-r14061. Je recompile une nouvelle version de temps en temps, quelques "trucs" que j'utilise sont décrits en annexe.
Surtout ne pas oublier d'installer votre certificat sur les postes client !

J'ai voulu essayer d'utiliser Squid3 en proxy SSL, mais malheureusement le binaire proposé par Debian est compilé sans l'option SSL. Pour persister dans mon idée il m'a fallu passer par les sources et je vous conte ci-après l'histoire correspondante.
Cette opération a été réalisée sur une machine Debian 7.4, pour d'autres distributions les répertoires peuvent varier.
Télécharger la dernière archive (pour moi : squid-3.5.02.tar.xz) et la décompresser dans un répertoire tranquille, j'utilise /usr/src/PGM/BUILD comme répertoire de base et ne touche pas à la disposition "classique des programmes locaux dans /usr/local/....
J'ai mis les options de configuration qui m'intéressent dans le petit script suivant :

#!/bin/bash
# A lancer dans le répertoire de "BUILD" au niveau "au dessus" de squid
# Mise à jour Aout 2016 pour SQUID 3.5

OPTIONS=' --with-default-user=squid '
# MAX FD
OPTIONS=${OPTIONS}' --with-filedescriptors=16384 '
# NO IPV6
OPTIONS=${OPTIONS}' --disable-ipv6 '
#    Enable SSL
OPTIONS=${OPTIONS}' --enable-ssl --enable-ssl-crtd --enable-inline '
# SQUID 3.5
OPTIONS=${OPTIONS}' --with-openssl '
# transparent
OPTIONS=${OPTIONS}' --enable-linux-netfilter --enable-icmp --with-large-files '
OPTIONS=${OPTIONS}' --enable-icap-client --enable-useragent-log --enable-referer-log'
OPTIONS=${OPTIONS}' --disable-poll --enable-epoll --disable-ident-lookups  '
OPTIONS=${OPTIONS}' --enable-async-io=16 --enable-underscores --enable-carp'
OPTIONS=${OPTIONS}' --enable-storeio=aufs,diskd,rock '
OPTIONS=${OPTIONS}' --enable-htpc '
OPTIONS=${OPTIONS}' --enable-err-language=fr '
OPTIONS=${OPTIONS}' --enable-http-violations '

cd squid-3.5       

./bootstrap.sh

./configure $OPTIONS 2>&1 | tee LOG.CONFIGURE

make clean 2>&1 | tee LOG.CLEAN

make 2>&1 | tee LOG.MAKE

exit

Il ne reste plus qu'à vérifier les logs et lancer un "make install" (en root).
Ainsi je pourrais compiler d'autres versions sans ennuis, du moins en principe.
Après un essai de compilation "direct" j'ai eu des ennuis à la première exécution. Après recherche j'ai suivi la procédure conseillée (internet dixit) : lancer avant toute chose dans le répertoire de Squid la commande "./bootstrap.sh" qui configure elle même plein de trucs ... en résultat tout est OK (Le script ci-dessus vous évite ce genre d'ennui.

Après ce petit baratin on lance le truc et on commence pas aller dans le répertoire de Squid et on lance la grande magie :
./bootstrap.sh

On lance le petit script de configuration créé précédemment. Puis le fatidique :
make 2>&1 | tee MAKE.LOG

La compilation est assez longue, presque autant que celle d'un noyau Linux!
Ensuite on peut passer au "make install" en "root" bien sûr !
On reste "root" pour la suite, il faut, dans le répertoire par défaut (pour moi /usr/local/squid) :

 

  • Créer un répertoire pour stocker le certificat racine de notre autorité
    mkdir ssl_cert
  • Créer un certificat
    Voir le script joint
  • Créer un repertoire "lib" dans  /usr/local/squid/var
    mkdir lib
  • initialiser le répertoire de cache des certificats créés
    /usr/local/squid/libexec/ssl_crtd -c -s /usr/local/squid/var/lib/ssl_db

Note : Si le répertoire existe, tout le monde peut faire des erreurs ! Il faut le détruire avant de relancer la commande. Dans ce cas ne pas oublier :
chown -R squid:squid /usr/local/squid/var/lib/ssl_db"

  • Initialiser les pages de messages d'erreur dans /usr/local/squid/share/errors
  • Créer un répertoire "fr" et un lien de "fr" vers "fr-fr"
  • copier le répertoire "templates" dans "fr" et, pour bien faire traduire les pages !

cd /usr/local/squid/share/errors
mkdir fr
ln -s fr fr-fr
cp ./templates/* ./fr

  • Créer un user "squid" groupe "squid" sans droit de login
  • Comme le user d'exécution prévu est "squid" faire un "chown -R squid:squid /usr/local/squid"

Pour la suite je considère que vous avez déjà un fichier de config qui fonctionne en HTTP classique avec les "acl" et filtres qui vous conviennent. Si ce n'est pas le cas commencer par ce point pour que le cache fonctionne selone vos désirs en HTTP. Pour tester configurez votre navigateur avec Squid comme proxy, dans ce cas otez l'option "transparent" de la configuration, vous la remettrez plus tard avant d'activer le système de redirection.
Ajouter les paramètres adéquats dans le fichier de configuration "squid.conf" :

#
# Recommended minimum configuration:
#
shutdown_lifetime 5 seconds

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
# ACLs all, manager, localhost, and to_localhost are predefined.
# acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
# acl localnet src 172.16.0.0/12    # RFC1918 possible internal network
acl localnet src 192.168.2.0/24    
acl localnet src 192.168.3.0/24
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80        # http
acl Safe_ports port 81        # http
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
# acl Safe_ports port 70    # gopher
# acl Safe_ports port 210    # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
# acl Safe_ports port 488    # gss-http
# acl Safe_ports port 591    # filemaker
# acl Safe_ports port 777    # multiling http
acl CONNECT method CONNECT

#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
http_access deny to_localhost

#
#     Ajouter ici vos ACL
#

 

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all
 

# Squid normally listens to port 3128
http_port 3128 transparent

# Squid listen Port Add "intercept" ou "transparent" pour proxy transparent
#     Squid pour redirection (Une seule ligne)
https_port 192.168.2.11:3129 intercept ssl-bump generate-host-certificates=on cert=/usr/local/squid/ssl_cert/xxxxxx.crt key=/usr/local/squid/ssl_cert/xxxxxx.private options=NO_SSLv2,NO_SSLv3

#
## Disable ssl interception for dropbox.com and hotmail.com (and localhost)
acl no_ssl_interception dstdomain .dropbox.com .hotmail.com
ssl_bump none localhost
ssl_bump none no_ssl_interception
 
# SSL Bump Config
always_direct allow all
ssl_bump server-first all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /usr/local/squid/var/lib/ssl_db -M 4MB
sslcrtd_children 4 startup=2 idle=1

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /usr/local/squid/var/cache/squid 2048 32 256

Il faut alors mettre en place une redirection de ports des ports entrants 80 et 443 vers la machine "Squidifiée" sur les ports 3128 et 3129.
Voir le script joint "Redirection iptables".
Récupérer un script d'init (il n'y en a pas dans le paquet source) ou bien récupérez celui joint ici (repris de Debian avec quelques adaptations à "
/usr/local/squid") puis lancer :

service squid start

Et c'est parti ... enfin presque il vous faut avant tout usage HTTPS aller installer votre fichier ".crt" dans le magasin de certificats des browsers du réseau.
Sinon c'est le blocage assuré de tous les sites HTTPS !
C'est le seul inconvénient du proxy HTTPS, comme il doit signer les certificats qu'il vous envoie en lieu et place de ceux qu'il a négociés avec le site il faut qu'il dispose d'une autorité adéquate. Tous les navigateurs disposent de cette possibilité, mais c'est une contrainte importante.

Pour "curl" et "wget" il faut copier votre certificat de CA dans /etc/ssl/certs, puis l'ajouter à la fin du fichier /etc/ssl/certs/ca-certificates.crt.
A part cela c'est le  seul moyen de cacher efficacement les pages HTTPS.

Remarque :

Depuis la version du 2 juillet 2015 il est nécessaire d'effectuer une petite modif pour éviter un plantage fatal au démarrage avec message :
"icmp_sock: (1) Operation not permitted".
Il suffit de passer le binaire "pinger" (dans squid/libexec) en mode suid root :

cd le_repertoire_de_squid
cd libexec
chown root:squid pinger
chmod 4755 pinger

ou de réaliser un "make install-pinger".
Comme "pinger" utilise des ports "au hasard" (?) j'ai préféré ajouter l'option "pinger_enable false" dans mon fichier "squid.conf".

Scripts joints :

  • Création certificat
  • Script d'init
  • Exemple de redirection IPTABLES
taxonomie

Squid : script d'init

Squid : script d'init jpp mar 11/11/2014 - 18:18

Script adapté du script fourni par Debian :

#! /bin/sh
#
# squid        Startup script for the SQUID HTTP proxy-cache.
#
# Version:    @(#)squid3.rc  1.0  07-Jul-2006  luigi@debian.org
#
### BEGIN INIT INFO
# Provides:          squid
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Squid HTTP Proxy version 3.x
### END INIT INFO

NAME=squid
DESC="Squid HTTP Proxy 3.x"
DAEMON=/usr/local/squid/sbin/squid
PIDFILE=/usr/local/squid/var/run/$NAME.pid
CONFIG=/usr/local/squid/etc/squid.conf
SQUID_ARGS="-YC -f $CONFIG"

[ ! -f /etc/default/squid3 ] || . /etc/default/squid3

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin

[ -x $DAEMON ] || exit 0

ulimit -n 65535

find_cache_dir () {
        w="     " # space tab
        res=`sed -ne '
                s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
                t end;
                d;
                :end q' < $CONFIG`
        [ -n "$res" ] || res=$2
        echo "$res"
}

find_cache_type () {
    w="     " # space tab
    res=`sed -ne '
        s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
        t end;
        d;
        :end q' < $CONFIG`
    [ -n "$res" ] || res=$2
    echo "$res"
}

start () {
    killall -u squid
    cache_dir=`find_cache_dir cache_dir`
    cache_type=`find_cache_type cache_dir`

    #
    # Create spool dirs if they don't exist.
    #
    if [ "$cache_type" = "coss" -a -d "$cache_dir" -a ! -f "$cache_dir/stripe" ] || [ "$cache_type" != "coss" -a -d "$cache_dir" -a ! -d "$cache_dir/00" ]
    then
        log_warning_msg "Creating $DESC cache structure"
        $DAEMON -z -f $CONFIG
    fi

    umask 027
    ulimit -n 65535
    cd $cache_dir
    start-stop-daemon --quiet --start \
        --pidfile $PIDFILE \
        --exec $DAEMON -- $SQUID_ARGS < /dev/null
    return $?
}

stop () {
    PID=`cat $PIDFILE 2>/dev/null`
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
    #
    #    Now we have to wait until squid has _really_ stopped.
    #
    sleep 2
    if test -n "$PID" && kill -0 $PID 2>/dev/null
    then
        log_action_begin_msg " Waiting"
        cnt=0
        while kill -0 $PID 2>/dev/null
        do
            cnt=`expr $cnt + 1`
            if [ $cnt -gt 24 ]
            then
                log_action_end_msg 1
                return 1
            fi
            sleep 1
            log_action_cont_msg ""
        done
        log_action_end_msg 0
        killall -u squid
        return 0
    else
        return 0
    fi
}

case "$1" in
    start)
    log_daemon_msg "Starting $DESC" "$NAME"
    if start ; then
        log_end_msg $?
    else
        log_end_msg $?
    fi
    ;;
    stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    if stop ; then
        log_end_msg $?
    else
        log_end_msg $?
    fi
    ;;
    reload|force-reload)
    log_action_msg "Reloading $DESC configuration files"
    start-stop-daemon --stop --signal 1 \
        --pidfile $PIDFILE --quiet --exec $DAEMON
    log_action_end_msg 0
    ;;
    restart)
    log_daemon_msg "Restarting $DESC" "$NAME"
    stop
    if start ; then
        log_end_msg $?
    else
        log_end_msg $?
    fi
    ;;
    status)
    status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit 3
    ;;
    *)
    echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}"
    exit 3
    ;;
esac

exit 0
 

taxonomie

Squid : quelques "ACL"

Squid : quelques "ACL" drupal_admin sam 15/11/2014 - 18:05

Les très fameux "ACL" permettent, entre autres, de filtrer efficacement des sites "indésirables".
Les plus souvent visés sont les sites "pour adultes", mais on peut y ajouter les sites qui vous farcissent vos vos écrans de publicités diverses ou qui vous "pistent".
Squid dispose pour cela de trois types principaux d'acl (il y en a d'autres) mais la documentation est parfois sybilline.

Pour la plupart d'entre exu une syntaxe permet de déporter les paramètres dans un bête fichier texte externe dont il suffit d'indiquer le nom, ce nom peut être donné sous la forme d'une URL. Je mets "http://mon_serveur_web/deny.png" qui pointe vers une image de 1 pixel, comme cela on ne voit rien sur l'écran !

Premier type : liste d'URL "à éviter".

acl  listeurl  dstdomain "/etc/squid/nom_du_fichier"
deny_info      http://mon_serveur/deny.png        listeurl
http_access    deny   listeurl

Le format est simple, des noms de domaines, s'il sont précédés d'un point tous les sous-domaines sont eux aussi bloqués. Exemple :

.yieldmanager.com
.zanox-affiliate.de
.zanox.com

Deuxième type : liste d'IP "incorrectes"

acl  listeip   dst        "/etc/squid/nom_du_fichier_ip"
deny_info      http://mon_serveur/deny.png        listeip
http_access    deny   listeip

Le format du fichier est simple : des adresses IP au format CIDR, par exemple :

209.207.224.220/32
209.207.224.246/32

Troisième type : liste d'expressions régulières.

acl ad_block   dstdom_regex    "/etc/squid/ad_block.db"
deny_info      http:/mon_serveur/deny.png  ad_block
http_access    deny        ad_block

Pour cette dernière liste j'utilise une liste "toute faite", il en existe plusieurs, par exemple un petit :

wget -O /etc/squid/ad_block.db 'http://pgl.yoyo.org/adservers

/serverlist.php?hostformat=squid-dstdom-regex&showintro=0&

mimetype=plaintext'

Un petit exemple quand même pour la route :

.zintext\.com
.zmedia\.com
Note : cela marche aussi sans le "\" devant .com.

Avec tout ceci vous êtes parés à filtrer.

Télécharger ma liste de "vilains méchants".

Voir un site présentant diverses listes d'adresses à éviter.
 

taxonomie

Squid : script generation certificat

Squid : script generation certificat jpp mar 11/11/2014 - 18:24

Ce script est le résultat de diverses récupérations sur Internet .... le certificat généré (autorité) à charger est le fichier en ".crt"

#!/bin/bash
#
SORTIE()
{
if [ "$1" -eq 0 ]
   then
    echo 'OK'
   else
    echo ------- KO ----------;
fi
exit
}

# Partie a personnaliser
RCN=/usr/local/squid/ssl_cert
KNAME='votre_autorite';
PAYS=FR
REGION=Idf
VILLE='Trifouilly les Oies'
NA=le_nom_de_votre_entite
FQDN=votre_nom
MAIL=un_mail_bien_a_vous  
PASS='une_phrase_de_passe'

cd $RCN
ret=$?
if [ $ret -ne 0 ]
   then
    echo 'Erreur cd '$RCN
    SORTIE 1
    exit $ret
fi
# Generer la clef (2048 bits)
openssl genrsa -out $KNAME'.private'  2048
ret=$?
if [ $ret -ne 0 ]
   then
    SORTIE 2
fi
# generer certificat
openssl req -new -key $KNAME'.private' -out $KNAME'.csr' <<!FINI
$PAYS
$REGION
$VILLE
$NA
$NA
$FQDN
$MAIL
$PASS
$NA
!FINI
ret=$?
if [ $ret -ne 0 ]
   then
    SORTIE 3
fi
### signer
openssl x509 -req -days 3652 -in $KNAME'.csr' -signkey $KNAME'.private' -out $KNAME'.crt'
ret=$?
if [ $ret -ne 0 ]
   then
    SORTIE 4
fi
SORTIE 0

taxonomie

squid : script de redirection

squid : script de redirection jpp mar 11/11/2014 - 18:48

#!/bin/bash
#
#    Diversion port 80 to 3128 (squid)
#    et 443 to 3129 (squid SSL)
#
GENER()
{
iptables -t nat $1 PREROUTING -i $IFINT -s $SOURCE -p tcp $OPTION --dport $PORTE  -j REDIRECT --to-port $PORTS
}
# ================================================================

PATH=/sbin:$PATH
# interface vers reseau privé
IFINT=br1
# adresse du reseau à "Traiter"
SOURCE="192.168.2.0/24"
# Ne pas proxifier ce host
HOST='192.168.2.2'    
OPTION=' ! -d '$HOST
#
#    HTTP
#
PORTS=3128
PORTE=80
#
GENER -D
GENER -I
#
#    HTTPS
#
PORTS=3129
PORTE=443
#
GENER -D
GENER -I

exit 0
 

taxonomie

Squid listes de sites a eviter

Squid listes de sites a eviter drupal_admin mar 09/05/2017 - 19:25

Depuis le temps que j'utilise Squid j'ai accumulé deux listes de sites à filtrer :

  1. Une liste de noms de domaines.
  2. Une liste d'adresses IP.

ACL pour la liste d'adresses IP:
acl             badip   dst     "/etc/squid/badip.txt"
deny_info       http://apache_local:81/deny.png  badip
http_access     deny    badip

ACL pour la liste de noms de domaine :
acl             trade   dstdomain       "/etc/squid/trade.txt"
deny_info       http://portail.jpp.fr:81/deny.png  trade
http_access     deny            trade

Téléchargez la liste IP (#200 adresses) ici.

Téléchargez la liste de sites (#800 noms de domaines) ici.

Voir aussi l'article sur les listes publiques permettant d'améliorer le filtrage.

taxonomie

Squid version 4

Squid version 4 drupal_admin mer 27/09/2017 - 12:39

Debian Stretch a abandonné la version 1.0 de Openssl et le paquet "libssl-dev" est dédié à la version 1.1, aussi les anciennes versions de Squid (3.5 par exemple) ne compilent plus avec Debian 9 et provoquent des erreurs si l'ancienne version de libssl n'est pas présente, voir article sur ce plantage.
J'ai donc décidé de passer à la version 4 de Squid qui est adaptée à libssl 1.1.
Pour disposer de cette version c'est très simple :

  • Télécharger les sources sur http://www.squid-cache.org/Versions/v4, j'ai téléchargé la version la plus récente squid-4.0.21-20170901-ra8623e5 datée du 1er septembre.
  • Décompresser l'archive
  • Lancer le script ci dessous :

#!/bin/bash
OPTIONS=' --with-default-user=squid '
# MAX FD
OPTIONS=$OPTIONS' --with-filedescriptors=16384 '
# NO IPV6
OPTIONS=$OPTIONS' --disable-ipv6 '
## Modif pour V4
OPTIONS=$OPTIONS' --enable-ssl --enable-inline '
# Depuis SQUID 3.5
OPTIONS=$OPTIONS' --with-openssl '
# transparent (pour utiliser redirection avec iptables)
OPTIONS=$OPTIONS' --enable-linux-netfilter --enable-icmp --with-large-files '
OPTIONS=$OPTIONS' --enable-icap --enable-useragent-log --enable-referer-log'
OPTIONS=$OPTIONS' --disable-poll --enable-epoll --disable-ident-lookups '
OPTIONS=$OPTIONS' --enable-async-io=16 --enable-underscores --enable-carp'
OPTIONS=$OPTIONS' --enable-storeio=aufs,diskd,rock '
OPTIONS=$OPTIONS' --enable-htpc '
OPTIONS=$OPTIONS' --enable-err-language=fr '
OPTIONS=$OPTIONS' --enable-http-violations '
# Nouveau 4.0
OPTIONS=$OPTIONS' --enable-delay-pools '
OPTIONS=$OPTIONS' --enable-kill-parent-hack '
OPTIONS=$OPTIONS' --enable-translation '
cd squid-4.....
./bootstrap
./configure $OPTIONS 2>&1 | tee LOG.CONFIGURE make clean 2>&1 | tee LOG.CLEAN
make -j 3 2>&1 | tee LOG.MAK
make clean 2>&1 | tee LOG.CLEAN
make -j 3 2>&1 | tee LOG.MAK

Il ne vous restera plus qu'à effectuer un "sudo make install" pour disposer de cette dernière version qui fonctionne parfaitement avec libssl 1.1.
A noter : le reste de l'installation, y compris le paramétrage, restent identiques à ceux utilisés pour la version 3.5.

 

taxonomie

Améliorer le filtrage de Squid

Améliorer le filtrage de Squid drupal_admin jeu 09/04/2020 - 14:32

La fonction filtre de Squid fonctionne essentiellement à l'aide de listes noires, il est donc essentiel de disposer de "listes noires" à jour car les publicitaires "invasifs" n'hésitent pas à modifier leurs noms de domaines et les adresses IP de leurs machines (merci le cloud !).

Une bonne source de ces listes est lle site https://pgl.yoyo.org, vous pouvez aussi aller voir https://yoyo.org.
Comme ces listes ne sont pas forcément dans un format reconnu par Squid, j'utilise deux scripts qui effectuent :

  • La récupération des données
  • Leur mise en forme
  • Leur placement dans le bon répertoire sous le "bon nom".

 Le paramétrage dans "squid.conf" est simple, il suffit d'ajouter :

Paramétrage SQUID

acl         yoyo_ip     dst      "/etc/squid/yoyo_bad_adresses.txt"
deny_info     http://xxxxxxx/deny.png   yoyo_ip
http_access     deny     yoyo_ip

acl    ad_block    dstdom_regex    "/etc/squid/ad_block.db"
deny_info     http://xxxxxxx/deny.png  ad_block
http_access    deny        ad_block

Note : le renvoi est fait vers un serveur Apache résidant sur la même machine, le fichier "deny.png" est une simple image d'un petit point rouge.
On doit pouvoir faire le même genre d'opération avec un fichier "local".
Ces scripts sont, plus ou moins, paramétrables à l'aide d'un fichier ".conf"et réalisent les opérations pour lesquelles ils ont été conçus.
Il est conseillé de les lancer une fois par semaine afin de bénéficier d'une mise à jour régulière.

Les scripts sont disponibles ici en format tar.gz.

taxonomie