Prix de la Bureaucratie 2018 : la CCI du Gard

Il y a quelques semaines, je me suis inscrit à l’Édition 2018 du Prix de la TPE. Je ne sais pas s’il existe des gens qui ne savent pas ce que c’est qu’une TPE, mais en tout cas, quand on me parle de “Très Petite Entreprise”, je me sens vaguement concerné, et je pars du principe que mon entreprise Microlinux entre parfaitement dans cette catégorie.

Prix TPE 2018

J’ai donc ouvert le site mis en ligne par la Chambre de Commerce, j’ai cliqué sur Concourir, et j’ai dûment rempli le formulaire en ligne qui demande de décrire l’entreprise en détail. Étant donné que les entreprises informatiques spécialistes de Linux et de l’Open Source ne sont pas exactement répandues dans la région, je me suis dit en mon for intérieur que ce petit côté innovant plairait peut-être au jury de ce concours.

Musique d'attenteEt là je viens d’avoir un coup de fil de la Chambre de Commerce du Gard. Non pas pour me signifier que j’ai gagné quoi que ce soit. Mais pour m’informer que je suis exclu du concours au vu de mon statut de micro-entrepreneur. J’ai demandé à la dame au téléphone si c’était une mauvaise blague, mais apparemment, c’est bien sérieux. “De toute façon il y a beaucoup de personnes dans votre cas”, a-t-elle dit en guise de consolation. Je lui ai fait savoir que cela aurait été plus correct de leur part d’afficher un avertissement sur la page d’accueil de leur site.

AgrafeuseBref, à moi de décerner le Prix de la Bureaucratie 2018 à la Chambre de Commerce du Gard. Étant donné que le critère distinctif pour une TPE, ce n’est pas l’originalité de ses services ou ses produits ou son caractère innovant, mais plutôt sa manière de déclarer son chiffre d’affaires et le fait qu’elle récupère ou non la TVA, cela mérite bien une agrafeuse dorée en plastique jaune. Le responsable du Prix de la TPE pourra venir la récupérer au siège social de Microlinux au 7, place de l’église 30730 Montpezat. Et j’en profiterai au passage pour lui tirer les oreilles et lui expliquer un peu la life.

Post scriptum 29 juin 2018. Ma tendre moitié (qui a fait des études de droit) s’est renseigné sur le statut de la TPE en France, et comme on dit communément sur le Web, ce qu’elle a trouvé va vous surprendre.

Une entreprise est catégorisée TPE lorsqu’elle a moins de dix salariés et que son chiffre d’affaires (CA) annuel ou son bilan total est inférieur à 2 millions d’euros. Dans le cas contraire, elle est redéfinie comme une PME.

Or, depuis la loin n° 2008-776 di 4 août 2008 de modernisation de l’économie, les TPE sont renommées microentreprise. Attention à ne pas confondre avec le régime fiscal de la micro-entreprise qui est le nouveau nom donné à l’auto-entreprise.

Conclusion n° 1 : le Prix de la TPE devrait s’appeler Prix de la Microentreprise, étant donné que l’appellation TPE est obsolète.

Conclusion n° 2 : vous pouvez participer à ce prix si vous êtes une microentreprise (écrit tout attaché) mais pas si vous êtes une micro-entreprise (avec un tiret).

Vous trouvez ça complètement dingue ? Bienvenue au club.

 

 

 

Publié dans Non classé | Marqué avec | 10 commentaires

En cours de rédaction : CentOS pour les nuls

Logo EyrollesDepuis quelques semaines, je suis attelé à la rédaction de mon prochain ouvrage sur Linux pour l’éditeur Eyrolles. Après Linux aux petits oignons, Ubuntu efficace et Débuter avec Linux, voici venir le quatrième ouvrage spécialisé de ma plume, et peut-être même le cinquième dans la foulée, car vu l’ampleur du sujet, il va probablement falloir répartir ça sur deux tomes.

Là je suis confortablement installé à mon bureau, la fenêtre est ouverte et donne sur les cimes des arbres de la place des Platanes et la garrigue ensoleillée au loin. Les hirondelles construisent leur nid juste à côté de ma fenêtre, et c’est très sympa de les voir faire des loopings enthousiastes ou de s’immobiliser à moins d’un mètre de mon bureau avant l’atterrissage. Plus haut dans le ciel, l’été vient de frapper son premier grand coup de cymbale. La machine à café espresso fonctionne bien et garantit le taux de caféine idéal pour un travail de rédaction soutenu. Écoutez mes phalanges qui craquent.

bibliographie

Pour l’instant, le titre de travail que j’ai donné à mon dossier, c’est Administration Linux. Je pense qu’en définitive ça s’appellera Administration Linux pas à pas ou Administration Linux par la pratique. Ce qui me motive à écrire ce livre, c’est le constat d’un manque sur le marché. Un livre du genre RHEL/CentOS pour les nuls, qui explique pas à pas et sans aucun prérequis l’administration de ces systèmes. Alors bien évidemment, vous me direz qu’il y a déjà une flopée de bouquins qui traitent de ça.

  • Le best-seller du marché, c’est la collection Administration Linux en quatre volumes de Jean-François Bouchaudy dans la collection T-Soft. C’est basé sur CentOS 5, et c’est donc officiellement EOL (End Of Life). Bon, y’a des trucs qui sont pas mal dedans, mais j’avoue que j’ai rarement vu un bouquin technique avec autant d’erreurs factuelles et de fautes de frappe. Il n’y a manifestement eu aucun travail de relecture technique, ou même de relecture tout court. Et quand on regarde les illustrations, on se demande si elles ont été faites par un gamin de trois ans.
  • Un autre best-seller, Red Hat Enterprise Linux et CentOS dans la collection ENI. C’est la réédition d’un grand classique, dont la mise à jour a été copieusement bâclée. À titre d’exemple, la configuration d’Apache sous CentOS 7 concerne en fait celle de la version 6. Et bon, les bouquins techniques qui commencent par me conseiller de désactiver SELinux plutôt que de m’expliquer clairement à quoi ça sert, je ne m’étendrai pas plus là-dessus.
  • Sinon, en langue anglaise, je pourrais à la limite conseiller l’excellent Unix and Linux System Administration Handbook, un des meilleurs bouquins techniques que j’ai pu avoir sous la main. C’est écrit par une équipe d’auteurs extrêmement compétents et bien renseignés. C’est toujours sérieux sans jamais se prendre au sérieux, et c’est souvent même drôle à lire. Sauf que c’est basé sur Red Hat Enterprise Linux, CentOS, Debian, Ubuntu et FreeBSD, ça compte pas moins de 31 gros chapitres pour un total de près de 1.200 pages, et c’est donc le pavé idéal pour les interrogatoires musclés, pour asseoir les gosses dessus à table ou pour caler la porte de la terrasse un jour de Mistral. Il faut donc quelque chose de plus concis que ça. En français.

Maintenant, voilà en grandes lignes le concept de mon bouquin à venir.

  1. Ça parle uniquement des serveurs, en mode console. Pour la configuration des postes de travail, vous n’avez qu’à lire mon blog.
  2. C’est basé sur CentOS 7 et ça se concentre sur la famille Red Hat. Dans mon expérience, les formations qui essaient de danser à toutes les noces (comme on dit dans mon pays natal) finissent par embrouiller les gens qui apprennent. Généralement, je conseille à mes stagiaires de s’initier à Linux (ou Unix) en optant pour un seul système (CentOS), et de voir les autres (Debian, Ubuntu, FreeBSD) par la suite. Eyrolles a déjà deux excellents ouvrages dans la collection des Cahiers de l’Admin, le bouquin sur Debian de Raphaël Hertzog et celui sur les systèmes BSD d’Emmanuel Dreyfus.
  3. Ça doit être pratique et immédiatement utilisable, bien expliqué et sans prérequis externes, en suivant une progression pédagogiquement cohérente. Un des rares points faibles du Unix and Linux System Administration Handbook, par exemple, c’est que ça commence par le chapitre Booting and System Management Daemons, qui vous plonge à froid dans les entrailles de GRUB2 et la personnalisation des unit files de systemd. C’est très bien expliqué, y’a rien à dire. Mais un débutant qui voit ça, il part en courant pour entamer une carrière de réparateur de pirogues sur une île du Pacifique, au sein d’une micro-économie basée sur le troc.
  4. Les configurations fournies en exemple doivent être immédiatement utilisables, telles quelles.
  5. Les techniques enseignées doivent permettre à un administrateur novice de RHEL/CentOS de survivre tout en lui montrant les réflexes de base pour se documenter et apprendre en autonome par la suite.
  6. Sans oublier qu’il faut absolument trouver un nombre suffisant de vannes et de blagues de potache qui me font rire moi-même, mais tout juste en-dessous du seuil de tolérance du comité de relecture d’Eyrolles pour que ça soit amusant à lire. Jusqu’ici ils ont été plutôt sympa. Un grand merci à Alexandre Habian des éditions Eyrolles, qui ne se contente pas simplement de supporter mes idées farfelues et autres délires, mais qui les encourage activement. Publier un bouquin sur Linux basé uniquement sur Slackware en 2017, fallait oser quand-même.

Là j’en suis au chapitre 3, avec une vingtaine de chapitres prévus pour le premier tome. Avec le temps prévu pour l’escalade, le trail, le VTT et le boulot (parce qu’il faut quand-même que je remplisse mon frigo aussi), on va voir si j’arrive à nager d’une rive à l’autre d’ici la rentrée. Je vous tiens au jus.

Rédaction

Publié dans Divers | Marqué avec , | 5 commentaires

Mises à jour automatiques sous CentOS avec yum-cron

Mise à jourUne des règles les plus élémentaires de la sécurité informatique, c’est de garder son système à jour. Sur un serveur dédié qui héberge des services critiques avec une ouverture frontale sur Internet, il est même vital de patcher le plus rapidement possible les vulnérabilités connues de la machine.

Sur un système comme CentOS, c’est tout à fait possible d’automatiser cette tâche dans la mesure où il s’agit d’une distribution de qualité “entreprise”. Concrètement, cela signifie que le distributeur fournit des mises à jour à faible risque, censées corriger des bugs ou des failles de sécurité sans pour autant introduire des nouvelles fonctionnalités susceptibles de perturber le bon fonctionnement des applications hébergées.

Si vous gérez un parc de machines conséquent, vous avez peut-être l’habitude de vous réserver un jour dans la semaine pour gérer toutes vos mises à jour. Peut-être vous demandez-vous dans un coin de votre tête si la mise à jour hebdomadaire est suffisante. Quoi qu’il en soit, il s’agit là d’une tâche répétitive, et comme tous les administrateurs dignes de ce nom le savent, les tâches répétitives sont là pour être automatisées.

Évidemment, rien ne nous empêcherait de définir une tâche automatique sous forme de cronjob. Sous Red Hat Enterprise Linux et CentOS, il vaut mieux utiliser l’outil yum-cron, qui est spécialement pensé pour cette tâche. Le paquet yum-cron est fourni par les dépôts officiels.

# yum install yum-cron

Le paquet installe une paire de fichiers de configuration par défaut.

  • /etc/yum/yum-cron.conf gère les mises à jour quotidiennes du système.
  • /etc/yum/yum-cron-hourly.conf pilote les mises à jour horaires de la machine.

Étant donné qu’une mise à jour quotidienne suffit amplement à nos besoins, nous allons laisser de côté le fichier yum-cron-hourly.conf pour nous concentrer sur yum-cron.conf. Le fichier fourni par défaut est amplement documenté, et avant toute chose, nous allons en faire une copie de sauvegarde.

# cd /etc/yum
# cp yum-cron.conf yum-cron.conf.orig

J’édite le fichier en l’adaptant à mes besoins, et je supprime les commentaires pour plus de lisibilité. Au total, le fichier ressemble à ceci.

# /etc/yum/yum-cron.conf

[commands]
update_cmd = default
update_messages = yes
download_updates = yes
apply_updates = yes
random_sleep = 0

[emitters]
system_name = betadine.microlinux.fr
emit_via = email
output_width = 79

[email]
email_from = root@localhost
email_to = info@microlinux.fr
email_host = localhost

[groups]
group_list = None
group_package_types = mandatory, default

[base]
debuglevel = -2
mdpolicy = group:main

Cette configuration mérite quelques remarques.

  • La directive update_cmd définit le type de mise à jour et distingue théoriquement entre les mises à jour normales (default) et les mises à jour de sécurité (security). Cette distinction vaut uniquement pour Red Hat Enterprise Linux, étant donné que CentOS ne fait pas la distinction dans les métadonnées des paquets. Pour les utilisateurs de CentOS, le seul choix valable est donc default.
  • La directive random_sleep introduit un temps d’attente aléatoire avant de démarrer la mise à jour. L’intérêt de cette configuration, c’est d’éviter de congestionner le réseau si vous avez un nombre important de machines qui lancent leur mise à jour en même temps. Dans la configuration par défaut, ce temps d’attente peut atteindre jusqu’à 360 minutes, c’est-à-dire six heures. Puisque j’ai installé yum-cron sur un serveur dédié, je peux me passer du temps d’attente.
  • Le nom de la machine est spécifié par la directive system_name. Si vous gardez la valeur par défaut None, il équivaudra au nom d’hôte pleinement qualifié, c’est-à-dire le résultat de la commande hostname --fqdn.
  • À partir du moment où vous disposez d’un serveur mail sur la machine, c’est toujours une bonne idée de vous envoyer des notifications par mail. Notez que si vous définissez root@localhost comme expéditeur du mail, localhost sera automatiquement remplacé par le nom d’hôte spécifié dans la directive system_name.
  • Dans la configuration actuelle, c’est /etc/cron.daily/0yum-daily.cron qui est lancé en fonction de l’heure précisée dans /etc/anacrontab. Sans trop rentrer dans les détails, yum-cron se lance grosso modo toutes les nuits entre 3h00 et 4h00, ce qui convient parfaitement à mon utilisation. Les éventuels redémarrages disruptifs de certains services – notamment httpd – s’effectuent alors à une heure de faible affluence.

Il ne reste plus qu’à activer le service au démarrage et à le lancer.

# systemctl enable yum-cron
# systemctl start yum-cron

Voici à quoi ressemble un mail de notification de yum-cron après l’application d’une mise à jour automatique.

Notification yum-cron

Publié dans CentOS, Documentation Microlinux | Marqué avec , , | Laisser un commentaire

La dématérialisation, chronique de la folie ordinaire

DématérialisationÀ l’heure où tout le monde parle de “transformation numérique” et de “dématérialisation”, j’avoue platement que dans ma tête, ces deux termes sont rangés dans les mêmes zones cérébrales que “file d’attente à la préfecture” ou “extraction de dent de sagesse sans anesthésie”.

Lorsque j’ai créé mon entreprise Microlinux en août 2009, j’ai été accompagné par un conseiller de la Boutique de Gestion du Gard, à Nîmes. Toutes les démarches comme l’inscription de l’entreprise ou la demande ACCRE (Aide aux Chômeurs Créant ou Reprenant une Entreprise) s’effectuaient en ligne, et mon conseiller faisait de son mieux pour mettre les croix virtuelles dans les bonnes cases dématérialisées.

Ma demande ACCRE était plus ou moins une formalité, puisque je remplissais rigoureusement tous les critères. Mon contrat à la Mairie de Montpezat – où je gérais l’informatisation et la mise en réseau des Médiathèques de la Communauté de Communes du Pays de Sommières – avait pris fin en été 2008, et au bout de près d’un an de recherche d’emploi, j’avais décidé de créer ma propre entreprise.

ArgentAu bout de la première année, l’URSSAF du Gard m’a demandé de payer l’intégralité des charges que je leur devais pour toute l’année. Quelques milliers d’euros, je ne sais plus le chiffre exact et j’ai la flemme d’aller vérifier, peu importe d’ailleurs. C’était beaucoup d’argent, et je n’avais pas la somme. Je les ai contactés en exprimant mon incompréhension, étant donné que j’avais effectué une demande ACCRE, ce qui était censé m’exonérer des charges à payer pendant au moins la première année de création de mon entreprise. La réponse de l’URSSAF m’a quelque peu interloqué.

“Non, vous n’avez pas demandé l’ACCRE.”

Et là, j’avais beau insister sur le fait que mon conseiller de création d’entreprise et moi avions bien effectué une demande ACCRE en ligne, et que la demande avait bien été validée.

“Eh non, la demande en ligne ne fonctionne pas, vous auriez dû le faire sur papier.”

J’ai donc fait un courrier à l’URSSAF pour leur expliquer que ce n’était pas à moi de faire les frais de leurs dysfonctionnements, et je demandais tout simplement qu’on rectifie le tir et qu’on m’accorde l’ACCRE. Pour toute réponse, j’ai eu une mise en demeure avec une majoration de retard à payer.

URSSAF

Ne sachant pas trop où donner de la tête, je me suis adressé au Médiateur de la République à Nîmes, qui est intervenu dans l’affaire en écrivant au directeur de l’URSSAF du Gard, et en lui suggérant de montrer un peu de bienveillance à mon égard, étant donné que le refus de l’ACCRE – dont l’attribution était normalement une formalité – risquait de me ruiner dans l’état actuel des choses. Le directeur de l’URSSAF a répondu par courrier au Médiateur de la République, en lui signifiant son refus en une phrase simple. La position de l’URSSAF est juridiquement viable. Sic.

JusticeJe suis donc allé voir une avocate à Nîmes, et j’ai intenté un procès à l’URSSAF. Je me disais que les choses étaient assez simples, puisque l’URSSAF ne niait pas le dysfonctionnement de son portail et qu’elle insistait à ce que je paye les pots cassés. Mon avocate débutait dans le métier et acceptait les dossiers avec l’aide juridictionnelle. Elle me disait qu’elle était un peu perdue dans tout ça et que je ne devais pas oublier le fait que je n’avais pas affaire à n’importe qui.

Au bout de deux ans de procès, j’ai été débouté de ma demande, et dans les conclusions, on peut lire l’argument cocasse qu’étant donné que M. Kovacs est expert en informatique, il aurait dû anticiper le dysfonctionnement du portail de l’URSSAF. Donc en gros, ça veut dire que si je suis mécanicien de voitures, n’importe qui a le droit de me vendre une épave maquillée sous prétexte que j’aurais dû en anticiper les dysfonctionnements sous le capot. Bref.

Don QuichotteJe ne suis pas Don Quichotte, et je reconnais le moment où il faut cesser de se battre contre les moulins de l’administration française. J’ai donc troqué ma vieille moto BMW contre un vélo pour payer les charges d’URSSAF et les frais juridiques, et j’ai quand-même réussi tant bien que mal à ne pas couler.

Il y a deux ans environ (je ne sais plus exactement, et cela n’a pas non plus d’importance ici), l’URSSAF m’a écrit pour m’annoncer que désormais toutes les déclarations devaient se faire de manière dématérialisée sur le site Net Entreprises. J’ai regardé un peu le portail en question, et je me suis retrouvé confronté à une immonde usine à gaz, un amalgame déplaisant de bordel et de rigueur, dont l’ergonomie avait visiblement été confiée à une équipe de Shadoks. Pour l’aspect visuel, ils ont fait quelques progrès depuis, mais sous le capot, ça dysfonctionne toujours autant.

Déclaration de recettesJ’ai envoyé un courrier à l’URSSAF pour leur faire savoir qu’il était hors de question que j’utilise leur nouvelle interface, et qu’ils veuillent bien m’envoyer un bon vieux formulaire papier. Je leur ai rappelé que le papier constituait avant tout une technologie pérenne qui a fait ses preuves depuis plusieurs millénaires. Le papier est exempt de bugs, il ne connaît pas de problèmes de téléchargement ni de soucis de compatibilité. Et il ne me somme pas non plus d’installer la version Windows d’Adobe Reader sur ma station de travail Linux.

Pendant près de deux ans, l’URSSAF a ainsi continué à m’envoyer des formulaires papier. Non sans une constante réticence, car il a fallu quand-même que je les rappelle à l’ordre tous les trimestres, en leur écrivant des courriers, en les appelant et en sautant à travers les habituels cerceaux en feu. Mais j’ai toujours fini par obtenir mon formulaire bleu et blanc Déclaration Trimestrielle de Recettes, que je mettais deux minutes à remplir, dater et signer avant de le plier, de le mettre dans une enveloppe avec un chèque pour la cotisation, et l’affaire était réglée.

Tout ça c’est fini maintenant. Depuis janvier 2018, plus de formulaire papier, et j’ai donc fait ma première déclaration en ligne sur le site Net Entreprises, pour laquelle il m’a fallu une matinée entière. Et encore, visiblement cela n’a pas fonctionné, parce que deux mois après avoir effectué ma déclaration pour le premier trimestre 2018, je n’ai toujours pas été débité.

Musique d'attenteCe matin j’ai donc appelé le 3957, où je me suis farci une bonne demi-heure de musique d’attente avant d’avoir une conseillère au téléphone. Elle a regardé mon dossier et m’a fait savoir que la déclaration n’a pas fonctionné et qu’il fallait la refaire. Je lui ai demandé s’il y avait moyen de prendre rendez-vous avec un conseiller à l’URSSAF du Gard pour voir ça directement, mais les rendez-vous ne peuvent pas être pris au téléphone. Il faut aller sur le site de l’URSSAF pour vous inscrire, Monsieur.

Je me suis donc rendu sur le site de l’URSSAF, j’ai voulu créer un compte pour pouvoir prendre rendez-vous, et j’ai eu droit au message d’erreur suivant.

Bug URSSAF

Et oui, mon numéro SIRET c’est bien le 51406750300011. Saloperie de bordel à cul de pompe à merde.

Du coup j’ai pris la moto, j’ai fait vingt kilomètres pour aller à Nîmes, et je me suis rendu à l’URSSAF, où il y a juste un portail fermé et un interphone. J’ai sonné à l’interphone, et la dame à l’accueil a refusé de m’ouvrir, mais elle m’a fait savoir que c’était uniquement sur rendez-vous et qu’il fallait que j’appelle le 3957 pour prendre rendez-vous.

Musique d'attente“Oui mais ce matin j’ai déjà appelé le 3957 et j’ai eu votre collègue qui m’a dit qu’on ne pouvait pas prendre rendez-vous au téléphone.”

“Ah ben il faut le faire sur le site de l’URSSAF alors.”

“Je veux bien, mais je n’ai pas réussi à m’inscrire sur le site pour prendre rendez-vous. Le site a un bug, il ne reconnaît pas mon numéro de SIRET.”

Après avoir parlementé encore, j’ai réussi à obtenir un rendez-vous pour demain matin, pour parler à un conseiller.

C’est reparti pour un tour. À suivre.

BMW K75

Publié dans Non classé | Marqué avec | 17 commentaires

Héberger un webmail simple avec SquirrelMail

Logo SquirrelMailSquirrelMail est un webmail, une interface web pour consulter le courrier électronique. Le monde de l’Open Source offre une série de solutions dans ce domaine, du webmail simple jusqu’à l’interface intégrée dans un groupware. SquirrelMail est sans conteste le webmail le plus simple, celui qui obéit au fameux principe KISS (Keep It Simple Stupid). Son installation n’est pas trop compliquée, et dans mon expérience, même les utilisateurs frileux face à l’outil informatique ont vite fait de l’apprivoiser au vu de son ergonomie intuitive.

En tant que projet, SquirrelMail offre quelques similitudes avec la distribution Slackware Linux, en termes de politique de communication (ou plutôt de non-communication). Le site du projet est pathologiquement obsolète et ne reflète en rien les qualités de ce qui est proposé. Ce n’est que lorsqu’on regarde sous le capot et qu’on lit le fichier ChangeLog (non daté et bien caché dans le répertoire doc/ de l’archive source) qu’on devine que le projet est effectivement encore en vie.

Dans cet article, je décris l’installation et la configuration de SquirrelMail sur un serveur dédié tournant sous CentOS 7.

SquirrelMail

Prérequis

Configuration de SELinux

SquirrelMail doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.

$ sudo setsebool -P httpd_can_sendmail on

Apache possèdera les droits d’écriture sur les répertoires data et attach. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.

$ sudo setsebool -P httpd_unified on

Enfin, il faudra également définir le booléen suivant.

$ sudo setsebool -P httpd_can_network_connect on

Téléchargement

SquirrelMail peut être récupéré directement sur le serveur grâce au navigateur Links.

$ mkdir webapps/squirrelmail
$ cd webapps/squirrelmail
$ links https://squirrelmail.org

Suivre le lien Download et télécharger l’instantané de la version stable (Stable version snapshots) ainsi que les fichiers de traduction (Translation snapshots) correspondants.

  • squirrelmail-20180604_0201-SVN.stable.tar.gz
  • squirrelmail-20180604_0202-SVN.locales.tar.gz

Créer la structure des répertoires

Le site sera installé en-dessous de l’arborescence /var/www/microlinux-mail.

  • L’application à proprement parler est hébergée sous microlinux-mail/html.
  • Les données sont stockées dans microlinux-mail/data.
  • Les pièces jointes sont rangées dans microlinux-mail/attach.

Créer ces répertoires avec les droits qui vont bien.

$ sudo mkdir /var/www/microlinux-mail
$ sudo chown microlinux:microlinux /var/www/microlinux-mail
$ cd /var/www/microlinux-mail
$ mkdir html data attach

Configuration de l’hôte virtuel

Une fois que la structure de répertoires est en place, on peut définir l’hôte virtuel dans la configuration d’Apache.

# /etc/httpd/conf.d/10-mail.microlinux.fr.conf

# http://mail.microlinux.fr -> https://mail.microlinux.fr
<VirtualHost *:80>
  ServerName mail.microlinux.fr
  Redirect / https://mail.microlinux.fr
</VirtualHost>

# https://mail.microlinux.fr
<VirtualHost _default_:443>
  Header always set Strict-Transport-Security \
    "max-age=63072000; includeSubDomains"
  ServerAdmin info@microlinux.fr
  DocumentRoot "/var/www/microlinux-mail/html"
  ServerName mail.microlinux.fr:443
  SSLEngine on
  SSLCertificateFile /chemin/vers/microlinux.fr/cert.pem
  SSLCertificateKeyFile /chemin/vers/microlinux.fr/privkey.pem
  SSLCertificateChainFile /chemin/vers/microlinux.fr/fullchain.pem
  BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
  ErrorLog logs/mail.microlinux.fr-error_log
  CustomLog logs/mail.microlinux.fr-access_log common
</VirtualHost>

Installation

À présent, on peut procéder à l’installation à proprement parler.

$ cd ~/webapps/squirrelmail

Décompresser et installer l’application en utilisant cp plutôt que mv pour obtenir d’emblée le contexte SELinux correct. C’est expliqué ici.

$ tar xzf squirrelmail-20180604_0201-SVN.stable.tar.gz
$ cp -R squirrelmail.stable/squirrelmail/* \
  /var/www/microlinux-mail/html/

Décompresser les fichiers de traduction.

$ tar xzf squirrelmail-20180604_0202-SVN.locales.tar.gz

L’installation s’effectue par écrasement. Avant d’aller plus loin, on va vérifier les options par défaut de la commande cp.

$ alias cp
alias cp='cp -i'

On devra temporairement supprimer cet alias.

$ unalias cp

À présent on peut installer les fichiers de traduction.

$ cp -R squirrelmail.locales/* /var/www/microlinux-mail/html/

Une fois que les fichiers sont en place, on peut redéfinir l’alias.

$ alias cp='cp -i'

Définir les permissions de l’application.

$ cd /var/www/microlinux-mail
$ sudo chown -R apache:apache data/ attach/
$ sudo chmod 0770 data/
$ sudo chmod 0730 attach/

Configuration

La configuration de SquirrelMail s’effectue à l’aide du script Perl config/conf.pl.

$ cd html/config
$ ./conf.pl

Le script affiche une interface de configuration en mode texte.

SquirrelMail Configuration : Read: config_default.php
Config version 1.4.0; SquirrelMail version 1.4.23 [SVN]
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >> _

Voici les différentes étapes de configuration que j’ai utilisées pour mon site.

  1. Activer la couleur (C – Turn color on) pour rendre l’interface plus lisible grâce à l’effet de surbrillance.
  2. Fournir le nom du site (Microlinux) dans la section Organization Preferences. On pourra également l’utiliser pour le nom du fournisseur (Provider).
  3. Définir un logo personnalisé (../images/microlinux-logo.png).
  4. Définir la taille du logo personnalisé (268 x 100 pixels).
  5. Fournir le nom de domaine (microlinux.fr) dans la section Server Settings.
  6. Renseigner le répertoire des données (/var/www/microlinux-mail/data/) dans la section General Options.
  7. Renseigner le répertoire des pièces jointes (/var/www/microlinux-mail/attach/) dans cette même section.
  8. Définir le français (fr_FR) comme langue par défaut dans la section Languages.
  9. Ne pas oublier d’enregistrer les modifications avant de quitter.

Dans la configuration par défaut du logo, la fenêtre d’identification est collée sur le haut de l’écran, ce qui n’est pas très joli à voir. Pour modifier ce comportement, j’ai fait une bidouille en modifiant le logo de mon entreprise avec GIMP.

SquirrelMail logo personnalisé

Utilisation

Une fois que l’application est configurée, on peut ouvrir un navigateur web et se connecter à son compte.

SquirrelMail Login

SquirrelMail est quasiment prêt à l’emploi. Avant de l’utiliser, rendez-vous dans Options > Informations personnelles et renseignez les paramètres essentiels comme votre nom, votre adresse e-mail, l’adresse de réponse et la signature.

SquirrelMail infos

Publié dans CentOS, Documentation Microlinux | Marqué avec , , | Un commentaire

Mot de passe root oublié sous CentOS ?

Mot de passe rootDans la vie quotidienne de l’administrateur Linux, l’oubli du mot de passe root peut faire partie des choses f’âcheuses qui arrivent. Peut-être pas tous les jours, mais c’est déjà arrivé à un de mes clients. L’administrateur qui gérait le serveur de fichiers Linux de la boutique avait disparu dans la nature du jour au lendemain, et personne n’avait le mot de passe pour accéder à la machine. C’est donc une bonne chose de savoir se dépatouiller dans ce genre de situation. La définition d’un nouveau mot de passe pour root avec la méthode décrite ici nécessite un accès physique à la machine.

Au démarrage, appuyer sur la touche [E] à l’invite de GRUB pour éditer les options de démarrage. Sur un serveur CentOS 7, la ligne par défaut ressemble à quelque chose comme ceci.

CentOS Linux (3.10.0-862-3.2.el7.x86_64) 7 (Core)

Une fois qu’on a appuyé sur [E], on descend à la ligne qui concerne le kernel. C’est quelque chose comme ceci.

linux16 /vmlinuz-3.10.0-862.3.2.el7.x86_64 \
root=UUID=e96eab90-63fe-4122-a35f-5ec9d99dc847 \
ro rhgb quiet

On va ajouter l’option de démarrage init=/bin/bash à cette ligne. On notera que l’interface d’édition de GRUB utilise un clavier QWERTY américain.

linux16 /vmlinuz-3.10.0-862.3.2.el7.x86_64 \
root=UUID=e96eab90-63fe-4122-a35f-5ec9d99dc847 \
ro rhgb quiet init=/bin/bash

La bidouille consiste ici à initialiser le système en lançant uniquement un shell Bash. La combinaison de touches [Ctrl]+[X] lance le démarrage, et on se retrouve face à une invite de commandes.

[bash-4.2#

Pour l’instant, la partition principale n’est montée qu’en lecture seule, il faut donc la remonter en lecture/écriture.

# mount -o remount,rw /

À présent, nous pouvons définir un mot de passe pour root à notre guise.

# passwd
Changing password for user root.
New password: ********
Retype new password: ********
passwd: all authentication tokens updated successfully.

Si le système utilise SELinux en mode renforcé, nous devons impérativement réétiqueter le système au prochain démarrage, faute de quoi nous ne pourrons pas nous connecter.

# touch /.autorelabel

Étant donné que nous avons “initialisé” notre système avec le seul shell Bash, les commandes de contrôle comme halt -p ou shutdown -h now ne fonctionnent pas. Pour arrêter le système proprement, il suffit de remonter la partition principale en lecture seule.

# mount -o remount,ro /

Ensuite, on peut éteindre le système en appuyant sur le bouton Reset.

Au prochain démarrage, le réétiquetage des fichiers met un certain temps. Au terme de l’opération, on peut se connecter en tant que root avec le nouveau mot de passe.

Publié dans CentOS, Documentation Microlinux | Marqué avec , , | 4 commentaires

Installer un serveur FTP avec VsFTPd sous CentOS

FTPCet article décrit la mise en place d’un serveur FTP avec VsFTPd (Very Secure FTP Daemon) sur un serveur de réseau local tournant sous CentOS. FTP a été pendant longtemps la manière la plus simple pour échanger des fichiers sur Internet. Même si le protocole reste encore extrêmement populaire – notamment dans le cadre des hébergements web mutualisés – on peut considérer qu’il est obsolète, au vu des considérations de sécurité comme les mots de passe qui transitent en clair.

La raison pour laquelle je le présente quand-même ici, c’est que je m’en sers toujours dans un contexte bien précis, en combinaison avec Ghost4Linux, pour stocker l’image Ghost d’un poste client comme celui d’une salle informatique dans une école. Ghost4Linux requiert un serveur FTP local pour stocker une image ISO, et c’est donc ce que nous allons mettre en place. Sous CentOS, nous avons le choix entre ProFTPd et VsFTPd, et c’est ce dernier que nous allons utiliser.

FTP actif et FTP passif

Avant de mettre les mains à la pâte, une petite explication sur les deux modes de transfert de fichiers FTP.

Le mode FTP actif, c’est le mode par défaut des clients FTP. Dans un premier temps, une session TCP est initiée sur le port 21 du serveur. Une fois la session établie et l’authentification FTP acceptée, le serveur établit une session TCP depuis le port 20 vers un port dynamique du client.

Le mode FTP passif est conseillé à partir du moment où les clients peuvent se trouver derrière un pare-feu. Dans ce mode, toutes les initialisations de sessions TCP se font à partir du client. Là aussi, le client établit une première session TCP sur le port 21. La session est établie, l’authentification est acceptée, et à partir de là, on demande au serveur de se mettre en attente de session TCP grâce à la commande PASV. Le client peut alors établir une seconde session TCP sur un port dynamique vers le serveur.

Le numéro de port dynamique est transmis du serveur vers le client suite à la commande PASV. On peut réduire la plage de ports en configurant le serveur FTP de manière appropriée, et c’est ce que nous allons faire ici.

Configuration du pare-feu

Le pare-feu nécessite une configuration un peu particulière avec le protocole FTP. Pour permettre l’accès au serveur, nous devons faire trois choses.

  • charger le module ip_conntrack_ftp
  • ouvrir le port 21 en TCP
  • ouvrir les ports 50001 à 50010 en TCP pour le mode passif

Voici à quoi cela ressemble concrètement dans mon script de pare-feu.

...
IPT=/usr/sbin/iptables
MOD=/usr/sbin/modprobe
...
# FTP
$MOD ip_conntrack_ftp
$IPT -A INPUT -p tcp -i $IFACE_LAN --dport 21 -j ACCEPT
$IPT -A INPUT -p tcp -i $IFACE_LAN --dport 50001:50010 -j ACCEPT
...

Configuration de SELinux

Si l’on utilise SELinux en mode renforcé sur le serveur, il suffit de modifier la valeur par défaut du booléen ftpd_full_access comme ceci.

# setsebool -P ftpd_full_access 1

À partir de là, SELinux ne nous posera aucun problème.

Installation

Le serveur VsFTPd est fourni par les dépôts officiels de Red Hat et de CentOS.

# yum install vsftpd

Création d’un utilisateur

Je vais créer un utilisateur install pour mon serveur local d’images Ghost. Cet utilisateur n’est pas censé se connecter directement au système. Les images Ghost seront stockées en-dessous de /srv/ftp/install, le répertoire utilisateur correspondant que je dois créer au préalable.

# mkdir -pv -m 0770 /srv/ftp/install
mkdir: created directory ‘/srv/ftp’
mkdir: created directory ‘/srv/ftp/install’
# useradd -c "G4L User" -d /srv/ftp/install -s /sbin/nologin install
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
# chown -R install:install /srv/ftp/install/
# passwd install
Changing password for user install.
New password: **********
Retype new password: **********
passwd: all authentication tokens updated successfully.

Configuration du serveur

La configuration de VsFTPd s’effectue dans le fichier /etc/vsftpd/vsftpd.conf. Avant d’aller plus loin, nous allons sauvegarder la configuration par défaut.

# cd /etc/vsftpd/
# cp vsftpd.conf vsftpd.conf.orig

À partir de là, nous allons modifier ou ajouter quelques directives. Pour commencer, on va désactiver les connexions anonymes.

anonymous_enable=NO

Ensuite, on va descendre vers la fin du fichier et définir la configuration de notre utilisateur.

chroot_local_user=YES
userlist_enable=YES
userlist_deny=NO
check_shell=NO
userlist_file=/etc/vsftpd/vsftpd.user_list
allow_writeable_chroot=YES

Cette dernière stance mérite quelques explications.

  • La directive chroot_local_user=YES interdit aux utilisateurs de quitter l’arborescence de leur répertoire utilisateur pour se balader un peu partout dans le système.
  • La directive userlist_enable=YES active une liste d’utilisateurs.
  • Dans la configuration par défaut, la liste spécifie les utilisateurs auxquels on interdit l’accès au serveur. Nous allons faire le contraire avec userlist_deny=NO et créer une liste qui contiendra un seul utilisateur autorisé.
  • La directive check_shell=NO est nécessaire lorsqu’un utilisateur doit pouvoir se connecter alors même qu’il ne dispose d’aucun shell de connexion.
  • Le fichier spécifié par la directive userlist_file contiendra la liste avec les utilisateurs autorisés à se connecter.

Les listings récursifs sont autorisés.

ls_recurse_enable=YES

Notre serveur utilise uniquement l’IPv4, ce que nous allons préciser ici.

listen=YES
listen_ipv6=NO

Ici, on peut activer le mode FTP passif et définir la plage de ports dynamiques.

pasv_enable=YES
pasv_min_port=50001
pasv_max_port=50010

Étant donné qu’un utilise le mode FTP passif, on peut commenter ou supprimer la ligne suivante.

# connect_from_port_20=YES

Un peu plus bas, on pourra supprimer le doublon userlist_enable=YES et désactiver l’utilisation des encapsuleurs TCP.

tcp_wrappers=NO

Au total, notre fichier /etc/vsftpd/vsftpd.conf ressemble à ceci.

# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
userlist_enable=YES
userlist_deny=NO
check_shell=NO
userlist_file=/etc/vsftpd/vsftpd.user_list
allow_writeable_chroot=YES
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
pasv_enable=YES
pasv_min_port=50001
pasv_max_port=50010
pam_service_name=vsftpd
tcp_wrappers=NO

Il ne reste plus qu’à créer le fichier /etc/vsftpd/vsftpd.user_list censé contenir la liste des utilisateurs autorisés à se connecter à VsFTPd.

# echo install > /etc/vsftpd/vsftpd.user_list

Mise en service et premier test

Activer et démarrer le serveur VsFTPd.

# systemctl enable vsftpd
# systemctl start vsftpd

Pour tester le serveur localement, on pourra utiliser un client FTP comme ncftp ou lftp. Avant de le lancer, on va lui fournir un fichier test à se mettre sous la dent.

# echo "Ceci est un test FTP" > /srv/ftp/install/test
# chown install:install /srv/ftp/install/test

À présent, on peut initier une connexion en tant qu’utilisateur install.

# ncftp -u install localhost
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason 
(http://www.NcFTP.com/contact/).

Copyright (c) 1992-2011 by Mike Gleason.
All rights reserved.

Connecting to localhost...
(vsFTPd 3.0.2)
Logging in...
Password requested by localhost for user "install".

    Please specify the password.

Password: *********

Login successful.
Logged in to localhost.
ncftp / > ls
test
ncftp / > cat test
Ceci est un test FTP

ncftp / > bye

 

Publié dans CentOS, Documentation Microlinux | Marqué avec , , | Un commentaire

RGPD, je te prends, je te retourne, …

Ces dernières semaines, j’ai fait la même chose qu’à peu près toutes les entreprises de France et de Navarre et même un peu partout en Europe. J’ai laissé tomber à peu près tout travail intelligent et productif pour mon entreprise. Au lieu de cela, je me farcis les menus détails du nouveau Règlement Européen de la Protection des Données.

Les Shadoks

Concrètement, je suis en train de pondre une déclaration de confidentialité pour mon blog. Le genre de bousin qui ressemble vaguement aux mises en garde sur l’utilisation des cookies, sauf que c’est à peu près cinquante fois plus long. Le genre de texte qu’on voit fleurir partout, tout le monde clique dessus, et l’utilisateur de base, ça lui en secoue une sans faire bouger l’autre.

Évidemment, l’idée de base derrière le RGPD est bonne. On a tous droit à la confidentialité des données, à une vie privée et toussa, même sur Internet. Le RGPD nous permettra donc de reprendre la main sur nos données. Enfin, ça c’est la théorie.

Malheureusement, les gens qui ont écrit cette loi sont des têtes d’oeuf qui vivent sur une autre planète. Et comme pour la loi du Data Dock, on retrouve toujours le même écart criant entre la théorie et la pratique.

Tous pareils sauf les multinationales

FacebookLe RGPD vaut de la même manière pour Facebook, Google & Amazon que pour une petite entreprise comme la mienne (dont je suis le gérant, le principal développeur, le support technique, le commercial et le service comptable tout-en-un). Or, Facebook, Google & Amazon ont les moyens d’embaucher le personnel nécessaire pour lire, comprendre et appliquer le RGPD dans toutes ses nuances. Les estimations diverses et variées vont à quelque chose comme 500 (cinq cents) heures de travail pour cette tâche.

Le RGPD s’en contrefiche royalement que vous soyez une micro-entreprise ou une multinationale. Certes, il aurait pu faire dépendre certains prérequis légaux d’une série de paramètres comme le chiffre d’affaires de l’entreprise, le volume des données gérées ou autre chose. Au lieu de cela, c’est tout le monde au même régime, les petits comme les grands. Allez hop, marche ou crève.

Qui en profite ?

  • les grands groupes ;
  • les avocats.

On connaît la chanson.

Implosion de l’usine à gaz RGPD

Rien qu’à voir la longueur du bousin, on comprend que c’est un texte écrit par des juristes pour des juristes. Pour une fois que je vois des gens aussi dingues que nous les informaticiens, je tire une révérence.

Alcool

En revanche, certains points sont techniquement impossibles à mettre en pratique. À titre d’exemple, parlons du droit à la suppression des données personnelles. Selon le contexte, c’est tout à fait envisageable, bien sûr.

Or, la loi stipule que ce droit comprend également les sauvegardes. Et là, l’administrateur système vous regarde comme s’il vous manquait quelques cases. Admettons que vous fassiez des instantanés quotidiens, hebdomadaires et mensuels de vos bases de données, comme on le fait à peu près tous. Dans ce cas, comment faire pour extraire un ou plusieurs jeux de données de ces sauvegardes ? Réponse courte : oubliez. C’est impossible. Revoyez votre copie, les gars.

Arrêtez le délire !

Je dois préciser quelque chose ici. En tant qu’immigré autrichien et fils d’immigré hongrois, je suis avant tout citoyen européen dans l’âme. J’ai assisté à la chute du mur de Berlin et du rideau de fer (en direct), et je suis convaincu de l’idée d’une Europe unie.

Ceci étant dit, les dix commandements de la Bible comptent quelque chose comme deux cent cinquante mots, alors que la Réglementation Européenne pour l’Importation des Caramels Mous en compte 22.568. Sans blague.

Bureaucratie

Soyons clairs, les gars. Je veux bien que les gens qui utilisent Internet bénéficient de la protection de leurs données personnelles. Mais de grâce, vous n’auriez pas pu faire ça de manière intelligente, en formulant une série de lois compréhensibles, compactes et utilisables au quotidien ? À lire vos logorrhées bureaucratiques rédigées en hexagonal, j’ai envie de vous taper dessus avec un Grévisse.

Je jette un oeil dans ma boule de cristal, et je vais vous dire ce qui va se passer dans les jours à venir. Des millions de sites web arboreront des déclarations à la mords-moi-le-noeud sur leur page d’accueil. Tout le monde va royalement s’en battre les couilles, personne ne les lira, et même si l’utilisateur qui n’a rien de mieux à faire s’amusait à les lire, il les comprendrait aussi peu que les gens qui les ont rédigées.

Et maintenant, de grâce, arrêtez de nous mettre des bâtons dans les roues et laissez-nous bosser.

 

Publié dans Divers | Marqué avec , | 18 commentaires

Comment j’ai choisi mon système d’exploitation

OSLe Moyen Âge et la Renaissance avaient leurs guerres de religion, où l’on avait tout loisir de partir en croisade pour fracasser allègrement le crâne de tous les incroyants et, plus généralement, de tous ceux qui avaient le malheur de ne pas souscrire à la même religion. De nos jours, les guerres saintes et autres contrariétés ne s’organisent plus que de façon épisodique et sporadique. Le phénomène semble plutôt s’être déplacé vers les forums d’utilisateurs de systèmes d’exploitation, à en juger par le ton qui règne parfois entre individus de croyances différentes ou, pire encore, entre individus de chapelles voisines, mais dont les obédiences divergent un tant soit peu.

TrollTentez l’expérience. Inscrivez-vous à un forum d’utilisateurs Linux ou BSD (le Web en regorge) et posez la question anodine : “Quel est le meilleur système ? Ubuntu ? Debian ? Fedora ? OpenSUSE ? Arch ? Gentoo ? Red Hat Enterprise Linux ? FreeBSD ? CentOS ? Slackware ? OpenBSD ? Alpine ? Mageia ? Mint ? Que pouvez-vous me conseiller ?” Laissez macérer quelques heures, voire quelques jours, et appréciez le résultat.

BestAu vu des articles de blog divers et variés qui fleurissent régulièrement sur la toile en postulant catégoriquement que tel ou tel système est la “meilleure distribution Linux” ou le “meilleur système BSD”, j’ai envie d’ajouter mon grain de sel, en adoptant une attitude plutôt descriptive que prescriptive.

Logo CommodoreJ’utilise des ordinateurs depuis mon tout premier processeur 8080 monoplatine, que je programmais en Assembler sur un clavier hexadécimal. Oui, je suis un vieux de la vieille. Ma première “vraie” machine, c’était un Commodore VC-20, acheté en 1983 avec l’argent que j’avais gagné avec mon premier boulot d’été à seize ans, deux mois de plonge dans un hôtel à Vienne en Autriche. J’éprouve une certaine fierté complètement irrationnelle à avoir commencé à coder sur la même machine que Linus Torvalds dans le temps.

FloppyPar la suite, j’ai remplacé la fameuse “boîte à pains” de Commodore par un IBM PC-XT, qui tournait sous DOS. Après DOS, c’était les années Windows, avec Windows 3.1 et Windows 95 sur un IBM PC 386, et Windows 98 sur un Pentium-II 233. En 2001, j’étais tellement frustré de la piètre qualité des systèmes Microsoft que j’ai définitivement quitté l’univers Microsoft juste avant la sortie de Windows XP pour ne plus jamais y retoucher.

Read The Fucking ManualMa première expérience avec un autre système que Microsoft Windows, ça a été un CD-Rom d’installation de Slackware Linux 7.1 acheté à la librairie Sauramps à Montpellier. Pour me familiariser avec ce système, je me suis inscrit à la liste de diffusion du site BasicLinux.net, une série de cours en ligne gratuits prodigués par des administrateurs Unix/Linux chevronnés. En rétrospective, c’était un peu comme si j’avais voulu faire un peu de sport pour me mettre en forme et que je m’étais inscrit à un stage commando de la Légion Étrangère. Le projet BasicLinux.net n’existe malheureusement plus.

GentooDepuis mes débuts sous Linux, j’ai lu pas mal de bouquins techniques sur ce système, et j’en ai même écrit quelques uns. J’ai eu l’occasion de me familiariser avec toutes les distributions courantes et moins courantes, soit dans le cadre de mon travail, ou alors par simple curiosité. J’ai utilisé Gentoo quand il fallait encore partir d’une installation stage1 et que la compilation d’un bureau KDE complet durait près d’une semaine sur mon vieux coucou. J’ai fait tourner Arch en production dans notre réseau de médiathèques en 2006, jusqu’à ce qu’une mise à jour calamiteuse rende tous nos postes clients inutilisables. J’ai même réussi à faire booter une LFS minimale, et j’étais convaincu que c’était là le système idéal pour les gens qui adorent construire des cathédrales avec des allumettes ou qui mettent en bouteille des maquettes de grands voiliers pour se changer les idées.

ChecklistJe me rends compte aujourd’hui que ces quinze dernières années, j’ai surtout procédé par élimination, après une longue série de tentatives et d’échecs. Cet article sert donc avant tout à garder une trace de ces tentatives passées, en essayant de voir exactement pourquoi tel et tel système ne correspondait finalement pas tout à fait à mes besoins.

Slackware Linux est sans doute le système que j’ai utilisé le plus longtemps, et avec lequel je suis le mieux familiarisé. C’est une distribution simple et robuste, brute de décoffrage avec un os dans le nez, et qui JusteMarche(tm) – comme le dit mon pote Jean-Samuel à l’École des Mines d’Alès. J’ai définitivement quitté Slackware en avril 2017, pour une seule raison. C’est que la distribution n’offre qu’une quantité relativement limitée de paquets, et mon propre dépôt de paquets pour les variantes 32-bits et 64-bits de Slackware 14.0, 14.1 et 14.2 pour les serveurs aussi bien que pour les postes de travail comptait pas moins de 1.500 (!) paquets personnalisés. Autant dire que je passais une partie significative de mon temps à compiler des paquets. Il me fallait donc autre chose.

FreeBSDJ’ai longtemps été attiré par les systèmes BSD comme FreeBSD, NetBSD et OpenBSD. Je me suis passablement familiarisé avec le manuel de FreeBSD, j’aime beaucoup la qualité de la documentation, et j’ai toujours été un adepte du principe KISS. Si je n’utilise pas FreeBSD, c’est pour une seule raison, malheureusement prohibitive. C’est que je dois souvent travailler avec du matériel que je n’ai pas choisi, et dès qu’il y a un composant un poil exotique, j’aurai plus de chances à le faire fonctionner sous Linux.

DebianJ’ai également travaillé sous Debian, qui a même été ma principale distribution Linux pendant quelque temps, sur mes serveurs aussi bien que sur les postes de travail. En ce qui me concerne, je range Debian dans la panoplie des distributions très propres. Si je ne l’utilise plus aujourd’hui, c’est pour deux raisons. D’une part, la durée de support de Debian a toujours été insuffisante à mon humble estime. Concrètement, si je déploie un serveur de production trois mois avant la sortie de la nouvelle version stable, je bénéficierai de mises à jour de sécurité pendant un an et trois mois, puisque Debian offre un an de support après la sortie de la version subséquente. Évidemment, il existe des projets comme Debian LTS pour prolonger la durée de support pour les mises à jour à faible risque, mais ce projet – tout louable qu’il soit – reste limité à l’heure actuelle. Je sais qu’on peut faire les mises à jour majeures “à chaud”, mais sur les serveurs de production, ça n’a jamais été mon truc. D’autre part, je me suis rendu compte qu’il y avait comme une incompatibilité d’humeur avec certains membres un peu donneurs de leçons de la communauté Debian, le genre qui me corrige avec un zèle de théologien augustinien quand je dis “Linux” et non pas “GNU/Linux”. Ceci étant dit, si toutes les distributions venaient à disparaître du jour au lendemain, je redeviendrais probablement un Debianiste heureux.

ArchDans mon travail au quotidien, je gère quelques petits parcs de machines pour plusieurs clients. J’ai testé quelques rolling releases comme Arch et Gentoo dans le temps, et j’en suis vite revenu. Lorsqu’un distributeur décide du jour au lendemain de ne plus supporter un certain type de matériel – comme par exemple les cartes vidéo installées dans toutes nos onze médiathèques – vous avez le choix entre le changement de matériel ou le changement de système. Gentoo avait toujours l’air un poil plus propre que Arch, et sa documentation était aussi bien faite. Malheureusement, la moindre installation ou mise à jour servait également à chauffer la médiathèque, sans compter le temps que ça prenait.

FedoraUn certain nombre de distributions grand public comme Fedora ou OpenSUSE souffrent d’un syndrôme que Jean-Louis Servan Schreiber a décrit dans son excellent livre Trop Vite (ne pas confondre avec le bouquin de Nabilla, hein). Notre vie quotidienne connaît une accélération funeste dans des domaines aussi variés que la politique, la finance, la consommation, et l’informatique n’y échappe pas. À peine un logiciel, un environnement de bureau ou une distribution entière a vu le jour que l’éditeur annonce déjà la prochaine version. Les cycles de support deviennent de plus en plus courts, et certains projets en deviennent tout bonnement inutilisables, même s’ils semblent bien assemblés au départ. En tant que professionnel, je n’ai tout simplement pas envie de réinstaller tout mon parc de machines tous les huit mois.

Logo CentOSJe me retrouve donc à travailler avec CentOS au quotidien, qui doit être la distribution Linux la plus ennuyeuse qui existe. Peut-être bien que pour les systèmes d’exploitation, j’ai la même approche que pour les motos. Ma dix-neuvième moto est une BMW K75, le même modèle que celui de la Police Nationale et de la Gendarmerie. Ça distille zéro sensations, mais ça m’emmène à travers les routes des Alpes sans broncher. Chaque version de CentOS est supportée pendant dix ans, ce qui veut dire que tous les systèmes CentOS 7 que j’ai installés depuis 2014, je pourrai les maintenir sans les réinstaller jusqu’en juin 2024. Mes clients – des responsables d’administrations régionales, des directeurs d’école – apprécient beaucoup quand je leur explique ce genre de détail plaisant. J’utilise CentOS depuis la version 4, je suis inscrit sur la mailing list depuis près de douze ans, et j’apprécie le professionnalisme sobre de cette communauté.

Ennuyeux, c’est bien. :o)

BMW K75

Publié dans Divers | Marqué avec , | 19 commentaires

Carte NVidia GeForce 210 et RHEL/CentOS 7.5

NVidiaRed Hat Enterprise Linux 7.5 a été publié récemment, et les paquets CentOS correspondants sont déjà disponibles dans les dépôts CR (Continuous Release). J’ai donc lancé une mise à jour sur ma station de travail, qui m’a récupéré pas moins d’un gigaoctet de paquets.

Au redémarrage, j’ai eu la mauvaise surprise de me retrouver avec un système qui bloque au moment de lancer DKMS. Ce qui signifie très probablement qu’un de mes drivers pose problème avec le nouveau kernel.

J’ouvre une console avec [Ctrl]+[Alt]+[F6], je me connecte et je jette un oeil dans /var/log/Xorg.0.log. Effectivement, j’ai un No screens found, qui m’indique que mon driver nvidia ne fonctionne pas correctement.

Avant toute chose, je m’assure de démarrer en mode console par défaut.

# systemctl set-default multi-user.target

Je supprime les deux paquets kmod-nvidia-340xx et nvidia-x11-drv-340xx en provenance du dépôt ELRepo, et je télécharge manuellement le driver NVIDIA-Linux-x86_64-340.106.run sur le site du constructeur. Je lance la construction du driver, qui se solde par un échec.

Ma prochaine intuition me dit que le driver de chez NVidia fonctionnera peut-être avec un kernel plus récent. Dans un premier temps, j’installe donc le dernier noyau LTS de chez ELRepo.

# yum --enablerepo=elrepo-kernel install kernel-lt

Une fois ce kernel installé, je redémarre dessus. Attention, les noyaux en provenance de chez ELRepo ne sont jamais prioritaires dans GRUB, il faut donc les sélectionner explicitement au démarrage du système.

Une fois que je tourne sur mon nouveau noyau, je fais d’abord l’inventaire de tous les paquets relatifs au kernel dont je dispose sur mon système.

# rpm -qa | grep kernel

Je désinstalle soigneusement tous les paquets relatifs au noyau 3.10.0, notamment kernel-devel, kernel-headers, kernel-tools et kernel-tools-libs, sans oublier kernel tout court.

Le driver nvidia entre potentiellement en conflit avec le driver libre nouveau, je prends donc soin de le blacklister dans /etc/modprobe.d/blacklist.conf. Il est également utile d’ajouter une option comme nomodeset dans /etc/default/grub.

Notons qu’à partir de là, je redémarre automatiquement sur le bon kernel , étant donné que c’est le seul qui est installé sur ma machine.

La prochaine étape consiste à récupérer tous les paquets qui vont bien avec mon nouveau kernel.

# yum --enablerepo=elrepo-kernel install kernel-lt-devel \
  kernel-lt-headers gcc dkms

Je retente la construction du driver.

# ./NVIDIA-Linux-x86_64-340.106.run

À partir du moment où DKMS est présent sur le système, l’installateur NVidia propose d’enregistrer le module auprès du service, ce qui évite d’avoir à le reconstruire lors d’une mise à jour du noyau.

Je vérifie mon fichier /etc/X11/xorg.conf, qui doit ressembler à ceci.

Section "Device"
        Identifier  "Videocard0"
        Driver      "nvidia"
EndSection

Je redémarre et je croise les doigts.

# systemctl isolate graphical.target

Le logo de NVidia s’affiche sur mes deux moniteurs, suivi du gestionnaire de connexion GDM. Tout est donc rentré dans l’ordre.

Qui a dit que Linux n’était pas user-friendly ? :o)

Publié dans CentOS, Documentation Microlinux | Marqué avec , | Laisser un commentaire