Logiciels : installation
Logiciels : installation jppCe 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 :
- Suricata est reporté dans la section Mesures/Monitoring Sécurité
- OSSEC est lui aussi reporté dans la section Mesures/Monitoring Sécurité.
- Pour les bases de données voir le chapitre qui leur est consacré.
Jan une IA personnelle
Jan une IA personnelle jppJ'ai remarqué dans une revue un test d'un programme Open Source d'Intelligence Artificielle : Jan (https://jan.ai), il est possible de télécharger une archive au format Debian que je e suis empressé d'installer. Il semble qu'il faille une machine assez puissante avec de la mmémoire et de l'espace disque pour les modèles ...
Je l'ai installé sur une machine Debian (bookworm) avec un Ryzen 7 et 64Go de mémoire ainsi que de l'espace disque.
L'installation est standard avec dpkg qui installe le logiciel dans /opt et crée les entrées de menu adéquates.
Pour le premier test je lui ai demande :
Ecrit un article de vulgarisation de Linux.
Je vous livre le résultat qu'il a écrit à l'aide du modèle "LLama 3 8B Q4"
Découvrez le monde de Linux :
Une introduction aux systèmes d'exploitation open-source.
Linux, un nom qui évoque souvent des terminaux, des lignes de commandes et des compétences techniques hors de portée pour beaucoup d'entre nous. Mais Linux est plus que cela ! Il s'agit d'un système d'exploitation open-source qui a révolutionné le monde de l'informatique et offre de nombreuses avantages pour les utilisateurs.
Qu'est-ce que Linux ?
J'ai lu ce jour dans une revue un article sur un systéme d'Intelligence Artificielle Open Source qui s'installe en local : Jan (https://jan.ai). Il est possible de récupérer une archive Debian qui s'installe sans aucun problèmes, installez le logiciel sur une machine relativement puissante avec de la mémoire car le fonctionnement demande pas mal de CPU et de mémoire. Ici la machine possède 64Go et un Ryzen 7.
Linux est un système d'exploitation open-source.
C'est-à-dire qu'il est disponible gratuitement et que son code source est accessible à tous. Il a été créé par un étudiant en physique, Linus Torvalds, en 1991. Linux est conçu pour être un système d'exploitation fiable, sécurisé et flexible, qui peut s'adapter à différents types d'appareils, des ordinateurs personnels aux serveurs, en passant par les routeurs et les routeurs Wi-Fi.
Les avantages de Linux
Les utilisateurs de Linux profitent de nombreux avantages par rapport aux systèmes d'exploitation propriétaires comme Windows ou macOS. Voici quelques-uns des avantages les plus notables :
La gratuité : Linux est disponible gratuitement, ce qui signifie que vous n'avez pas à payer de licence pour l'utiliser.
La flexibilité : Linux peut s'adapter à différents types d'appareils et peut être personnalisé pour répondre à vos besoins spécifiques.
La sécurité : Linux est considéré comme l'un des systèmes d'exploitation les plus sécurisés, car il est conçu pour être résistant aux attaques malveillantes.
La communauté : la communauté Linux est immense et active, ce qui signifie que vous pouvez trouver de l'aide et des ressources en cas de problème.
Comment utiliser Linux
Il existe de nombreuses distributions de Linux, c'est-à-dire des versions personnalisées du système d'exploitation, telles que Ubuntu, Debian, Fedora et Arch Linux. Chacune de ces distributions a ses propres caractéristiques et avantages.
Voici les étapes à suivre pour installer Linux sur votre ordinateur :
Choisissez votre distribution : sélectionnez la distribution de Linux qui vous convient le mieux.
Créez un CD ou une clé USB : créez un CD ou une clé USB contenant la distribution de Linux que vous avez choisie.
Installez Linux : insérez le CD ou la clé USB et suivez les instructions d'installation.
Configurer votre système : configurez votre système Linux en fonction de vos besoins.
Conclusion
Linux est un système d'exploitation puissant et flexible qui offre de nombreuses avantages pour les utilisateurs. Si vous êtes prêt à explorer le monde de l'informatique et à découvrir les avantages de Linux, n'hésitez pas à télécharger une distribution et à l'installer sur votre ordinateur. Vous pouvez même vous joindre à la communauté Linux et apprendre de nouvelles compétences techniques !
Pas trop mal pour un début ?
Jan test 2
Jan test 2 jppAprès le premier test un deuxième essai avec un autre "modèle" : "Mistral Instruct 7B G4", le résultat généré en anglais, avec un petit peu de remise en forme (titres et sous titres en gras)le voici.
Title: Exploring the Linux Operating System: A Comprehensive Guide for Beginners
Introduction
Linux, an open-source operating system, is widely recognized for its versatility, security, and reliability. Initially developed in 1991 by Finnish software engineer Linus Torvalds, Linux has since become a cornerstone of the modern digital world, powering servers, supercomputers, and embedded devices. This article aims to provide a beginner-friendly introduction to the Linux operating system, its history, key features, and applications.
A Brief History of Linux
Linux was born out of Linus Torvalds' desire to create a free, Unix-like operating system. The initial version, Linux kernel 0.01, was released on September 17, 1991. Over the years, Linux has evolved significantly, thanks to the contributions of thousands of developers worldwide.
Today, Linux comes in various distributions, or "distros," each with its unique features, user interface, and focus. Some popular examples include Ubuntu, Debian, Fedora, Arch Linux, and CentOS.
Key Features of Linux
Open-Source: Linux is an open-source operating system, meaning its source code is freely available to everyone. This encourages collaboration, innovation, and customization.
Security: Linux's open-source nature and strong community support contribute to its robust security. The absence of proprietary code reduces the attack surface, making Linux less vulnerable to viruses and malware.
Stability: Linux is renowned for its stability and reliability. Its modular design allows for efficient resource management, minimizing system crashes and downtime.
Customization: Linux allows users to customize nearly every aspect of their operating system. This flexibility makes it ideal for users with diverse needs and preferences.
Compatibility: Linux supports a vast array of hardware and software. It can run on various architectures, from desktop computers to servers and mobile devices.
Getting Started with Linux
For beginners, choosing the right Linux distro is crucial. Ubuntu is a popular choice due to its user-friendly interface, extensive community support, and ease of installation. Other beginner-friendly distros include Linux Mint, Zorin OS, and Manjaro.
To install Linux, you'll need a computer with at least 2GB of RAM, a hard drive with at least 20GB of free space, and a CD/DVD drive or USB flash drive to create the installation media. Detailed installation guides are available for each distro.
Once installed, you can start exploring Linux by learning basic commands, navigating the file system, and customizing your desktop environment.
Applications and Uses of Linux
Linux is used in various applications, from servers and supercomputers to embedded devices and desktop computers. Google, Facebook, and Netflix all rely on Linux servers for their infrastructure. Linux is also the operating system of choice for Android smartphones.
For desktop users, Linux offers a range of productivity applications, including the LibreOffice suite, GIMP for graphic design, and VLC Media Player for multimedia.
Conclusion
Linux is an essential part of the modern digital landscape, offering a powerful, flexible, and secure operating system for a wide range of applications. Whether you're a seasoned developer, a curious beginner, or a casual user seeking an alternative to Windows or macOS, Linux is a versatile choice worth exploring. With its robust community support, extensive documentation, and wide array of applications, Linux continues to be a dynamic and evolving force in the world of operating systems.
Jan : Encore un test
Jan : Encore un test jppDepuis mon coin en vacances j'ai téléchargé Jan sur mon portable avec seulement deux modèles et j'ai refait un petit essai :
Ecrit un texte (francais) pour dissuader d'utiliser Wndows, directement en français :
Bien sûr, je peux vous aider à rédiger un texte en français pour dissuader de l'utilisation de Windows. Voici un exemple :
Attention ! Utiliser Windows peut être source de nombreux problèmes et représenter un coût important en termes de temps, d'argent et de frustration.
En effet, Windows est connu pour être lent, instable et sujet à des bugs, ce qui peut entraîner des pertes de données et des interruptions incontrôlées de votre travail. En plus, les mises à jour de Windows peuvent être longues et nécessiter une connexion internet stable, ce qui peut être source de frustrations supplémentaires.
De plus, Windows est développé par une entreprise privée, Microsoft, qui peut utiliser votre utilisation de son système d'exploitation pour collecter des données personnelles sans votre consentement. Cela peut représenter une violation de votre vie privée et de votre liberté.
Enfin, l'utilisation de Windows est une dépendance coûteuse en termes de licences et de maintenance. Les mises à jour de Windows peuvent coûter des centaines d'euros, tandis que les licences de Windows peuvent coûter plusieurs centaines d'euros.
Il existe de nombreuses alternatives à Windows qui sont plus rapides, plus stables et plus privées, tels que Linux ou macOS. Ces systèmes d'exploitation sont open source et gratuits, ce qui signifie que vous pouvez utiliser et modifier le code source à votre guise. En plus, ils ne collectent pas de données personnelles sans votre consentement.
En choisissant un système d'exploitation libre et open source, vous pouvez réduire les coûts, améliorer la sécurité de votre système et protéger votre vie privée. N'hésitez pas à faire le pas vers un système d'exploitation plus adapté à vos besoins.
Je vous laisse juger de la qualité du résultat.
LDAP
LDAP jppNous 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 jppPour créer cet annuaire il faut installer des "paquets" suivants (pour Debian) :
- slapd (le démon)
- ldap-utils
La structure de notre annuaire sera simple :
- un "TOP" pour notre domaine "mondomaine.net"
- Une branche "users" pour stocker les utilisateurs enregistrés (accès à l'annuaire)
- Un utilisateur "manager" : qui gère, entre autres les utilisateurs et qui peut effectuer des mises à jour.
- Un utilisateur "totor" : standard pour les accès en lecture seule
- 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é jppJ'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é jppJ'ai un PC portable sous Linux (cela vous étonne ?) et cela 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 Thunderbird 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écifique :
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 !) :
- Stopper "slapd", sur l'esclave je me répète
- Aller dans le répertoire "/var/lib/ldap/domaine.net"
- Y détruire tout (sauf le fichier DB_CONFIG), si on est bien sur la machine esclave !
- 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 jppMaintenant 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.
Note 2024 : je n'ai pas touché au paramétrage de mon mail (Evolution) depuis cette date, et cela marche toujours ...
Paramétrage Evolution
Paramétrage Evolution jpp"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 :
- Nommer le carnet d'adresses ici "kmail"
- Donner l'adresse ou le nom du serveur si vous avez un DNS.
- Donner le port (389 en standard, 489 ici).
- Choisir une connexion "pas de chiffrement" (on est chez nous à l'abri du grand méchant loup ! ).
- Prendre l'authentification "En utilisant de nom distinctif (DN)"
- 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 :
- Dans "base de recherche" on indique "ou=people,dc=domaine,dc=net"
- Pour "Domaine de recherche choisir "Un"
- "Filtre de recherche" on ne met rien, ça c'est sympa.
- Pour "Délai" laisser à 5 minutes
- 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.
- "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 et cela peut durer plus de 10 ans ...
Paramétrage Thunderbird
Paramétrage Thunderbird jppLe 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.
- Nom : nommer votre carnet d'adresse
- Nom d'hôte : adresse IP ou nom du serveur d'annuaire
- Nom distinct de base : c'est la base de recherche des contacts "ou=people,dc=domaine,dc=net".
- Numéro de port : le port standard est le 389 (489 chez moi)
- 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".
- 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 !
Note 2024 : La machine sur laquelle était installé Thunderbird n'a pas supporté la migration vers Windows 7 avec un crash complet lors de la migration, elle ne démarrait plus ni en XP ni en 10. En montant le disque "data" sur une machine Linux j'ai réussi à récupérer l'intégralité des fichiers. Depuis Madame a une machine sous Linux, quelques grincements de dents au début (c'est pas pareil que WIndows !), et Thunderbird a démarré sur la nouvelle machine Linux quasiment sans problèmes ... et Thunderbird fonctionne toujours.
Migrations Debian
Migrations Debian jppCe 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.
2tant très occupé à l'époque de la migration de Buster à Bullseye je n'ai réalisé aucun document sur le sujet, mais je n'ai pas eu d'ennuis majeurs.
Note : Certains problèmes/ennuis sont traités dans la section "conseils et ennuis divers".
De Jessie a Stretch
De Jessie a Stretch jppJ'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 conterai 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 (dump des données fait avec "mysqldump", ç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 jppCe petit livre raconte les actions faites 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).
- Test sur une MV simple (Xen), servira aussi de test de Linux 5.0.2 Xénifié.
- Test sur une MV applicative (KVM) (Apache, PHP, MariaDB ...), en partie pour effectuer aussi un passage de PHP7.0 à une version ultérieure.
- 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 lui même va migrer dès le passage de Buster en "stable".
Migrer MV simple
Migrer MV simple jppDebian 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.
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 Mysql/MariaDB ....
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.
Migrer MV complexe
Migrer MV complexe jppPassage de Stretch à Buster d'une machine applicative.
La machine visée (sous KVM) comporte :
- un serveur Web
- PHP
- Une base de données MariaDB
- Un seul 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" :
- Mettre à jour le fichier sources.list.
- 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 encore 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 jppJe suis ensuite passé aux choses sérieuses : migrer une "vraie" machine de production, celle sur laquelle est implanté ce service Web dans une machine virtuelle.
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 :
De bullseye à bookworm
De bullseye à bookworm jppAprès la migration quasiment sans problèmes de plusieurs machines virtuelles ou physiques j'ai fini par migrer ma machine principale, celle connectée au modem fibre et qui abrite notamment ce site. Cette migration m'a donné quelques soucis notamment avec l'annuaire LDAP géré sur cette machine.
Détails à venir.
Zimbra Collaboration suite
Zimbra Collaboration suite jppZIMBRA :
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 2023 : il est fortement question que la version "libre" de Zimbra disparaisse, j'ai donc migré la gestion de mes mails sur Carbonio, à suivre quelques conseils à voir ici.
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 jppNous 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 :
- Une base mysql
- Un annuaire LDAP (Openldap)
- Un serveur d'applications (Jetty)
- Un serveur SMTP (Postfix)
- Un serveur WEB (Apache)
- L'antivirus (Clamav)
- 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.
- Stopper le service : /etc/init.d/exim4 stop
- 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 2A : logiciel
ZIMBRA. :Phase 2A : logiciel jppNote 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 2B : logiciel
ZIMBRA : Phase 2B : logiciel jppLa 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 jppL'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 jppPassons 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.
Zimbra : migrations
Zimbra : migrations jppNote 2022 : je suis passé directement de Ubuntu 14.04 sur 20.04, mais c'est aussi pénible que le changement de machine, il faut tout installer puis transporter les comptes et leur contenu, c'est assez long ....
J'utilise maintenant Zimbra depuis quelques années et j'ai donc du "upgrader" régulièrement pour rester dans la course.
- Premier upgrade en 32 bits vers la version 6.0.7.
Avant le passage de 32 à 64 bits (en 8.6) j'ai "loupé" la migration vers la version 7. - Premier upgrade en 64bits : 8.6 à 8.7
- De 8.7 à 8.7.5
- De 8.7.5 à 8.8.5
- De 8.8.5 à 8.8.6
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 jppZimbra 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@x… 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 :
Zimbra : migrer 8.6 à 8.7
Zimbra : migrer 8.6 à 8.7 jppLa 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 cela ré-installer la 8.6 en y incluant le proxy.
Il suffit ensuite de "dé-tarer" l'archive dans un coin tranquille et de lancer le script "./install.sh" ce qui vous fournira un listing analogue 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 License Terms for this Zimbra Collaboration Suite Software: 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 Use Zimbra's package repository [Y] Y Do you wish to upgrade? [Y] Y Installing: The system will be modified. Continue? [N] Y zimbra-core will be downloaded. Saving existing configuration file to /opt/zimbra/.saveconfig Shutting down zimbra mail zimbra-ldap...done Removing deployed webapp directories Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save Checking ldap status....not running. You have the option of notifying Zimbra of your installation. 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=adm… Notification complete Setting up zimbra crontab...done. Moving /tmp/zmsetup.20161111-193459.log to /opt/zimbra/log |
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.
Zimbra : migrer 8.7 à 8.7.5
Zimbra : migrer 8.7 à 8.7.5 jppJ'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 14.04) et un "tar xvf" dans un "petit répertoire tranquille" on entre dans le vif du sujet et les "README" ne signalent pas de problème particulier.
Premièrement : sauvegarder la 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 (sur un 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'erreur 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.
Zimbra : migrer 8.7.5 à 8.8.5
Zimbra : migrer 8.7.5 à 8.8.5 jppTiens, 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.
8.7.5 vers 8.8.5 trace
8.7.5 vers 8.8.5 trace jpp
./install.sh Operations logged to /tmp/install.log.B9FZcmpn License Terms for this Zimbra Collaboration Suite Software: |
"Y" évident !
Checking current number of databases... Do you want to verify message store database integrity? [Y] y
Checking for installable packages Found zimbra-core (local)
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 Use Zimbra's package repository [Y] |
On va accepter "Y".
Configuring package repository Checking for installable packages Found zimbra-core (local)
Do you wish to upgrade? [Y] |
Pourquoi pas ? "Y"
Scanning for any new or additional packages available for installation Install zimbra-chat [N] Installing: The system will be modified. Continue? [N] |
"Y" bien sûr !
Beginning Installation - see /tmp/install.log.B9FZcmpn for details... zimbra-core-components will be downloaded and installed. Downloading packages (11): Saving existing configuration file to /opt/zimbra/.saveconfig Shutting down zimbra mail Removing deployed webapp directories Installing repo packages (11): Installing local packages (21): Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save Checking ldap status....not running. You have the option of notifying Zimbra of your installation. Notify Zimbra of your installation? [Yes] |
Pourquoi pas ? Ils l'ont mérité :
Notification complete Setting up zimbra crontab...done. |
Zimbra : migration 8.8.5 à 8.8.6
Zimbra : migration 8.8.5 à 8.8.6 jppJe 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.
Un clic sur l'utilisateur désiré déclenche l'ouverture d'une deuxième fenêtre destinée au "chat" avec cette personne.
Il est à noter qu'un dossier supplémentaire "Discussions" est ouvert et qu'il permet de conserver ou d'effacer les échanges.
VM Ubuntu 16.04 + letsencrypt
VM Ubuntu 16.04 + letsencrypt jppMa 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 déjà 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.
Ne pas oublier de sauvegarder le contenu des comptes ....
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 :
- Stopper zimbra (éviter les conflits de ports)
- certbot certonly --standalone -d Votre-nom-de-domaine
- 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 :
- 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 - Depuis le même répertoire /etc/letsencrypt/live/le_nom_du_domaine copier le tout
cp *.pem /opt/zimbra/ssl/letsencrypt 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- 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.
Il ne reste plus qu'à restaurer les comptes .... qu'on a sauvegardé avant le début de l'opération.
Update version 8.8.8 à 8.8.15
Update version 8.8.8 à 8.8.15 jppZimbra : Premier upgrade de version sur Ubuntu 16.04 : 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; comme d'habitude, 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.
Zimbra dans une MV
Zimbra dans une MV jppL'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é !
Note août 2021 : Encore un changement de machine physique, toujours avec "dd" suivi d'une ré-installation sur un Ubuntu un peu plus "à jour" 20.04 LTS sur un AMD Ryzen 5 3600 avec Debian 11.2 et reprise des données des comptes.
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.20141…"
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 PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE. 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... Checking for suggested prerequisites... Checking for installable packages Found zimbra-core Installing: The system will be modified. Continue? [N] Y DNS ERROR resolving MX for mon-serveur.xxxx Checking for port conflicts 7) zimbra-spell: Enabled 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 Notify Zimbra of your installation? [Yes] |
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 :
- Stoppé l'ancien système
- Modifié le DNS
- Installé quelques règles "iptables" sur la machine physique pour rediriger les entrées vers la bonne adresse, télécharger le script "iptables" utilisé.
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 : disk snap... 100% full
Zimbra : disk snap... 100% full jppVoir en fin de page pour le téléchargement ds scripts "correcteurs" qui fonctionnent très bien sur la nouvelle VM en Ubuntu 20.04.
Mon installation de Zimbra est assez ancienne sur une Ubunto 16.04 LTS, mais maintenue régulièrement à jour avec le repository de Zimbra dans mon /etc/apt/sources.list.z/zimbra.list qui content :
deb [arch=amd64] https://repo.zimbra.com/apt/87 xenial zimbra
deb [arch=amd64] https://repo.zimbra.com/apt/8815 xenial zimbra
deb-src [arch=amd64] https://repo.zimbra.com/apt/87 xenial zimbra
Lors de la dernière mise à jour apt m'a proposé d'installer un paquet (...) pour bénéficier des mises à jour étendues (livepatch) de ma version 16.04 LTS.
Après m'être inscrit sur le site de Canonical (gratuit jusqu'à 3 machines) j'ai installé la clef fournie et relancé une mise à jour qui m'a proposé plus de 100 paquets à mettre à jour, ce que je me suis empressé de lancer.
A la suite de cette installation je reçois de Zimbra une multitude de messages signalant des disques pleins à 100%. Ces disques sont respectivement /dev/loop0 et /dev/loop1 sur lesquels sont montés (cf snap) les répertoires nécessaires à "livepatch".
J'ai ainsi reçu plus de 800 messages en deux jours me signalant ces disques "pleins".
Or c'est parfaitement normal que ces "disques" soient à 100%, c'est le fonctionnement normal de "snap",il faut donc inhiber la procédure "Zimbra" qui génère ces alertes.
On dirait que les auteurs de Zimbra ont prévu le coup car il est possible très simplement de mettre à jour le paramètre "zmstat_df_exclude" qui doit régler ce problème.
1) Voyons voir le paramètre "ad hoc"
zmlocalconfig | grep zmstat_df_excludes
qui renvoie
zmstat_df_excludes =
soit : aucune exclusion enregistrée.
1) commencer par établir la liste de ces devices "loop..."
df | grep loop
/dev/loop0 101888 101888 0 100% /snap/core/11993
/dev/loop1 9344 9344 0 100% /snap/canonical-livepatch/119
Ensuite lancer la commande suivante (user "zimbra") :
zmlocalconfig -e zmstat_df_excludes="/dev/loop0:/dev/loop1"
Bien utiliser ":" comme séparateur.
Et le tour est joué, plus de messages inutiles et ennuyeux, tout en gardant les alertes pour les autres systèmes de fichiers.
Pour vérifier :
zmlocalconfig | grep zmstat_df_excludes
qui, maintenant renvoie :
zmstat_df_excludes = /dev/loop0:/dev/loop1
ce qui semble parfait et d'ailleurs je n'ai pas reçu d'autres messages au sujet de ces deux "disques".
Note : il faut surveiller l'apparition de nouveaux "/dev/loopN" et les ajouter illico à la liste.
J'ai eu la surprise, quelques jours après de recevoir une salve de mail pour un nouveau "livepatch" qui m'a créé un nouveau "loop" :
/dev/loop2 9344 9344 0 100% /snap/canonical-livepatch/126
J'ai donc du l'ajouter avec (en user "zimbra") :
zmlocalconfig -e zmstat_df_excludes="/dev/loop0:/dev/loop1:/dev/loop2"
A vérifier immédiatement par :
zmlocalconfig | grep zmstat_df_excludes
zmstat_df_excludes = /dev/loop0:/dev/loop1:/dev/loop2
.... A surveiller après chaque mise à jour ... Mais que fait-on après 20 mises à jour, a-t-on 21 /dev/loopNN ?
Suite à un problème de gestion de certificat j'ai monté une nouvelle machine virtuelle en Ubuntu 20.04, évidemment elle "souffrait" du même problème que la précédente ... mais, rien n'y fait, même en appliquant cette méthode cette fichue machine m'inonde de mails signalant que le disque /dev/snapxx est à 100%.
C'est toutes les 10 minutes et il y a actuellement 13 "disques" snap. J'ai signalé cette anomalie sans avoir de réponse pour le moment ...
Dernières nouvelles : après quelques jours la configuration des "df_exclude" est enfin active et je n'ai plus des centaines/milliers de mails intempestifs ... Mais pourquoi cela a mis plusieurs jours pour s'activer reste un mystère.
En fait il semble qu'il faille effectuer un restart complet de zimbra pour que la nouvelle configuration soit activée.
Note 2022
Je suis depuis "passé" sur Ubuntu 20.04 LTS puisque le 16.04 est tombé hors "LTS".
Mais le résultat est le même, zimbra s'entête à me déclarer tous les disques /dev/snap/... (nom du "répertoire" où sont montés les /dev/loopNN au nombre de 14 à ce jour.
J'utilise deux petits scripts qui :
- RECUP_LOOP récupère les "loop" et les répertoires associés sous forme de liste et appelle le script suivant, télécharger.
- SNAP_EXCLUDE qui met en forme les données et lance l'exécution de la commande zimbra "zmlocalconfig" avec la liste des "loop" et répertoires transmise par le premier script, télécharger.
J'ai mis dans la crontab l'exécution de RECUP_LOOP tous les soirs.
Zimbra : script cool snap
Zimbra : script cool snap jppCes scripts, très courts, permettent de régler le problème des message inutiles dus aux disques "snap" qui sont, par définition pleins à 100%.
Ces mini scripts peuvent être exécuté après n'importe quelle mise à jour et même être lance par "cron", c'est vraiment très simple et court. Le "travail" est découpé en deux scripts :
- Faire la liste des "snaps" et des points de montage liés.
- Lancer la fonction d'enregistrement, mise en forme des données et exécution par le user "zimbra".
#!/bin/bash df | grep '/dev/loop' | awk '{print $1;}' >/root/bin/SNAP_LISTE_A df | grep '/dev/loop' | awk '{print $6;}' >>/root/bin/SNAP_LISTE_A sort -k 1 /root/bin/SNAP_LISTE_A >/root/bin/SNAP_LISTE |
# SNAP_EXCLUDE #!/bin/bash LISTE=$(echo $LISTE | sed 's/ /:/g') |
Le script 1 appelle le script 2; on peut donc se contenter de lancer le script 1 pour recréer la liste et la transmettre à Zimbra ou n'exécuter que le script 2 en utilisant la liste existante.
Zimbra divers
Zimbra divers jppCe petit groupe d'articles traite essentiellement du paramétrage de certaines actions spécifiques et d'autres détails comme l'utilisation d'un téléphone.
ZIMBRA : utiliser un "smartphone"
ZIMBRA : utiliser un "smartphone" jppUn 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 ...
Note 2022 : et même un 13 maintenant
Selenium
Selenium jpp
Deux petits articles consacrée à 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.
Peut-être un test.
Selenium : juste un petit tour.
Selenium : juste un petit tour. jppCet 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 faits 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 jppLe 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" } } |
SQUID : cache
SQUID : cache jppJ'utilise Squid depuis très longtemps, ce blog contient plusieurs articles à ce sujet dont le premier remonte à 2010.
Note août 2021, à l'occasion du changement de machine (voir l'article spécifique) je suis passé à la version 5 de Squid.
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.
SQUID : Proxy cache filtre
SQUID : Proxy cache filtre jppSquid 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 d'un 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 navigateurs 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/TLS 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
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 OPTIONS=' --with-default-user=squid ' 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" :
# # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # Squid normally listens to port 3128 |
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
Squid : script d'init
Squid : script d'init jppScript (ancienne mode avec "service") 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
Squid : quelques "ACL"
Squid : quelques "ACL" jppLes 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 farcissent 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 eix 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&show…'
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". Elle date un peu depuis 2014, mais elle est mise à jour assez régulièrement.
Squid : script generation certificat
Squid : script generation certificat jppCe script est le résultat de diverses récupérations sur Internet .... le certificat généré (autorité) à charger dans les navigateurs "clients" 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
Squid : script de redirection
Squid : script de redirection jppCe script "iptables" effectue la redirection des trames demandant à "sortir" vers les ports 80 ou 443, les trames sont automatiquement redirigées sur les "bons" ports de Squid.
#!/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 réseau à "Traiter"
SOURCE="192.168.2.0/24"
# Ne pas proxifier ce host, c'est le support de SQUID
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
Squid listes de sites à éviter
Squid listes de sites à éviter jppDepuis le temps que j'utilise Squid j'ai accumulé deux listes de sites à filtrer :
- Une liste de noms de domaines.
- 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.
Note 2024 : Ces listes ne sont plus à jour depuis 2020 ... il va falloir que je m'y remette ...
Squid version 4
Squid version 4 jppDebian 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.
Améliorer le filtrage de Squid
Améliorer le filtrage de Squid jppLa 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 le 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" reconnu par le paramétrage de Squid.
Le paramétrage dans "squid.conf" est simple, il suffit d'ajouter :
acl yoyo_ip dst "/etc/squid/yoyo_bad_adresses.txt" acl ad_block dstdom_regex "/etc/squid/ad_block.db" |
Note : le renvoi est fait vers un serveur Apache (Nginx doit faire aussi bien) 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" sur les postes clients.
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.
Carbonio
Carbonio jppZimbra ayant annoncé que la version "opensource" ne serait pas continuée je me suis mis à la recherche d'un "remplaçant" et j'ai trouvé "Carbonio" qui semble être un "fork" de Zimbra et présente le même genre de fonctionnalités.
Je ne vais pas m'étendre sur l'installation, une seule consigne : il faut suivre "à la lettre" la procédure, et, même si un message semble vous demander de faire autrement (cela m'est arrivé) il ne faut pas dévier de la procédure.
Il est toutefois "conseillé" d'installer le logiciel dans une machine virtuelle avec la "bonne" version de Ubuntu, prendre de préférence une "LTM" car on ne change pas de logiciel de messagerie tous les jours ....
Une fois la MV "vierge" installée en faire une bonne sauvegarde "au cas ou".
Pour le reste rien de très compliqué, les notices de Zextras sont bien faites.
Utiliser Spamhaus
Utiliser Spamhaus jppL'installation s'est bien terminée, l'interface Web fonctionne et l'accès depuis Evolution ou Thunderbird fonctionne parfaitement, la première chose qui nous manque est le paramétrage des sites "antispam", oui cela sert !
Or l'interface Web d'administration ne donne pas accès (au moins pas encore) à ce type de données, il faut passer par le CLI et des commandes de paramétrages "un peu" ésotériques.
Le mini-script suivant permet d'installer 4 sites antispam d'un coup :
- Abuseat.org (division de Spamhaus)
- Spamcop.net
- Spamhaus.org
- barracudecentral.org
Cet ensemble doit permettre de "purifier" un peu les mais reçus, voici le petit script qui réalise ce miracle.
carbonio prov mcf \
zimbraMtaRestriction reject_invalid_helo_hostname \
zimbraMtaRestriction reject_unknown_helo_hostname \
zimbraMtaRestriction reject_unknown_client_hostname \
zimbraMtaRestriction reject_unknown_reverse_client_hostname \
zimbraMtaRestriction reject_non_fqdn_sender \
zimbraMtaRestriction reject_unknown_sender_domain \
zimbraMtaRestriction reject_invalid_hostname \
zimbraMtaRestriction "reject_rbl_client cbl.abuseat.org" \
zimbraMtaRestriction "reject_rbl_client bl.spamcop.net" \
zimbraMtaRestriction "reject_rbl_client sbl.spamhaus.org" \
zimbraMtaRestriction "reject_rbl_client b.barracudacentral.org"
Et on vérifie avec la commande :
carbonio prov gcf zimbraMtaRestriction
qui retourne :
zimbraMtaRestriction: reject_invalid_helo_hostname
zimbraMtaRestriction: reject_unknown_helo_hostname
zimbraMtaRestriction: reject_unknown_client_hostname
zimbraMtaRestriction: reject_unknown_reverse_client_hostname
zimbraMtaRestriction: reject_non_fqdn_sender
zimbraMtaRestriction: reject_unknown_sender_domain
zimbraMtaRestriction: reject_invalid_hostname
zimbraMtaRestriction: reject_rbl_client cbl.abuseat.org
zimbraMtaRestriction: reject_rbl_client bl.spamcop.net
zimbraMtaRestriction: reject_rbl_client sbl.spamhaus.org
zimbraMtaRestriction: reject_rbl_client b.barracudacentral.org
Et c'est tout pour aujourd'hui.
Attention.
Il semble que certaines mises à jour "écrasent" ces données, il faut donc vérifier périodiquement ?
(A confirmer).
Application Carbonio Iphone
Application Carbonio Iphone drupadminCarbonio offre aussi une application pour téléphones (Versions Iphone et Android).
La connexion s'effectue par le service "web" standard du serveur web de Carbonio, celui que vous utilisez avec votre browser favori, (bien indiquer le port) et fonctionne parfaitement.
L'interface (Iphone) , je n'ai pas testé la version pour Android, est fonctionnel et permet de lire agréablement les mails.
Première image : écran d'affichage des mails reçus :
La fenêtre de lecture des mails est parfaitement lisible et le menu (smple) facilement accessible.
Je n'ai pas testé la partie "contacts" car ... je n'ai pas encore saisi de contacts dans Carbonio ...
L'aspect "utilisateur"
L'aspect "utilisateur" jppLe premier écran rencontré, celui de login apparaît sur un fond qui fait un peu "bande dessinée" :
Après avoir fourni login et mot de passe on arrive sur l'affichage des mails :
La colonne la plus à gauche donne accès à :
- Emails
- Calendrier
- Contacts
- Fichiers
- Recherche
- Paramètres principaux
La colonne suivante présente ici (affichage des mails) les différents dossiers de courrier, il est tout à fait facile de créer de nouveaux dossiers ...
Le gros "bouton bleu" en haut permet de créer :
- un mail
- un nouveau contact
- un nouveau groupe de contacts
- de télécharger un fichier ...
L'écriture d'un nouveau mail ouvre une petite fenêtre dans l'écran :
Cette fenêtre possède à peu près tout ce qu'il faut pour écrire un "beau" mail avec fontes et tout le reste.