Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo

Ubuntu: installer le bureau Gnome Classic à la place d’Unity

ubuntu-update

J’ai récemment hérité d’un MacBook Pro, sur lequel j’ai installé Ubuntu.

Depuis quelques années maintenant, la société Canonical qui publie Ubuntu a fait le choix d’imposer un nouveau bureau, appelé Unity, qui s’adresse aux petits écrans des laptops et autres netbooks.

Personnellement, je ne suis pas fan du bureau Unity et préfère retrouver un bureau Gnome (à prononcer Génome) plus classique, avec des menus qui me permettent d’accéder aux applications.

Plusieurs solutions s’offrent à nous : on peut retrouver Gnome Classic (basé sur Gnome 2), ou alors installer des bureaux plus récents comme MATE ou Cinnamon, tout deux développés par l’équipe de Linux Mint.

Sur mon Ubuntu, j’ai opté pour Gnome Classic, certes vieillissant mais qui me convient bien. Voici donc comment l’installer.

Installer le bureau Gnome Classic

Pour installer Gnome Classic Desktop, il suffit de mettre à jour nos dépôts et d’installer le paquet gnome-session-flashback:

sudo apt update && sudo apt install gnome-session-flashback

Ensuite, il ne vous reste plus qu’à quitter votre session.

Au démarrage de la nouvelle session, cliquez sur le logo Ubuntu à droite de votre nom d’utilisateur et enfin sélectionnez Gnome Flashback (Metacity):

Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo

Entrez votre mot de passe de session: vous venez de retrouver Gnome Classic !

Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo 1
Postfix : résoudre l'erreur SASL "_sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql" photo

Postfix : résoudre l’erreur SASL “_sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql”

postfix-logo

Il y a quelques mois, j’ai aperçu quelques messages d’erreurs récurrents dans les fichiers logs du serveur de mail Postfix, concernant SASL.

Voici un extrait de ces messages:

Oct 10 11:35:05 mail postfix/smtpd[18553]: sql_select option missing
Oct 10 11:35:05 mail postfix/smtpd[18553]: auxpropfunc error no mechanism available
Oct 10 11:35:05 mail postfix/smtpd[18553]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: sql

La solution est toute simple – commencez par éditer le fichier de configuration de Postfix:

nano /etc/postfix/main.cf

Puis commentez la ligne qui commence par smtpd_sasl_path. Chez moi, cela donne :

#smtpd_sasl_path = private/authCode language: PHP (php)

Et enfin, il suffit de relancer tous les services relatifs à l’identification SASL ainsi que Postfix :

find /etc/init.d/ | grep courier | while read line; do $line restart; done
service saslauthd restart
service postfix restartCode language: PHP (php)

Et voilà, plus de messages d’erreur dans les logs.

Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine photo

Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine

Aujourd’hui, nous allons mettre en place DNSSEC afin d’ajouter une couche de sécurité supplémentaire dans la gestion des DNS de notre domaine.

Principe de fonctionnement du DNS

Le DNS (Domain Name System) est un maillon clé du fonctionnement d’Internet car la quasi-totalité des services en ligne utilisent des noms de domaine à un moment ou à un autre.

Le DNS est organisé sous la forme d’une arborescence inversée, avec une « racine » dont dépendent les différentes « branches ».

Au premier niveau de l’arborescence se trouvent les « Top Level Domains » (TLD) ou domaines de premier niveau, comme les .fr, .com, .net etc.

Au second niveau, nous avons les noms de domaine « classiques » comme « skyminds.net ».

Fonctionnant comme une base de données distribuée sur des millions de machines, le DNS repose sur des interactions entre ces machines permettant d’identifier celle qui est la plus susceptible de pouvoir répondre à la requête d’un internaute.

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo 2

Dans l’exemple ci-dessus, l’utilisateur veut se connecter au site http://www.wikipedia.fr. Il envoie sa requête via son navigateur. Celle-ci est reçue par un serveur dit « résolveur » qui a pour première mission d’identifier la machine sur laquelle est installé le nom de domaine wikipedia.fr.

Le résolveur s’adresse d’abord à la « racine » du DNS, qui lui indique quels sont les serveurs « faisant autorité » (c’est-à-dire compétents) pour .fr puisque le nom de domaine est en .fr.

Dans un second temps, les serveurs du .fr indiquent à leur tour au résolveur que le nom de domaine wikipedia.fr est hébergé sur tel serveur.

Celui-ci est alors en mesure d’indiquer au navigateur l’adresse IP du serveur web hébergeant les contenus du site web www.wikipedia.fr.

Ce schéma se vérifie quel que soit le site web auquel on souhaite accéder.

DNSSEC : authentifier l’origine et l’intégrité des données

DNSSEC, acronyme de Domain Name System Security Extensions, désigne un ensemble défini d’extensions de sécurité du protocole DNS, standardisé par l’IETF dans la RFC 4033.

Lire la suite

Serveur dédié : générer de l'entropie additionnelle avec Haveged photo

Serveur dédié : produire une meilleure réserve d’entropie avec haveged

Sur notre serveur dédié, nous avons parfois besoin de générer des nombres aléatoires avec une forte entropie, par exemple lorsque l’on génère une clé SSH, un certificat SSL/TLS ou une clé pour DNSSEC.

Aujourd’hui, je vous propose donc un article un petit peu plus théorique, qui nous permettra d’améliorer la qualité des données aléatoires et l’entropie générale de notre serveur.

On commence donc par la théorie et on enchaîne sur la partie technique.

L’entropie ou le caractère aléatoire sous Linux

Le chiffrement est basé sur deux facteurs principaux : les nombres premiers et les nombres aléatoires.

Sous Linux, les nombres aléatoires sont générés par le pseudo random number generator (PRNG) qui génère des données aléatoires depuis les interruptions matérielles (clavier, souris, accès disque, accès réseau…) et depuis d’autres sources provenant du système d’exploitation.

Serveur dédié : générer de l'entropie additionnelle avec Haveged photo 1

Une interruption matérielle (en anglais Interrupt ReQuest ou IRQ) est une interruption déclenchée par un périphérique d’entrée-sortie d’un microprocesseur ou d’un microcontrôleur.

Ce caractère aléatoire ou aléa, que l’on désigne sous le terme entropie, est utilisé principalement pour le chiffrement comme SSL/TLS mais peut aussi avoir plein d’utilisations pratiques (génération de mots de passe, de clés, de chaînes de caractères aléatoires…).

Lire la suite

BASH : lister, bloquer et débloquer des adresses IP avec iptables photo 1

BASH : lister, bloquer et débloquer des adresses IP avec iptables

Sur un serveur dédié, il n’est pas rare d’avoir des adresses IP à bannir pour se débarrasser de visiteurs malveillants, de spammeurs ou de bots qui effectuent des requêtes farfelues visant à perturber le bon fonctionnement des services du serveur.

Heureusement, toutes ces petites contrariétés peuvent être résolues en quelques secondes grâce à un firewall comme iptables.

Ce petit tutoriel vous montre les quelques commandes à retenir pour lister, bannir ou débloquer des adresses IP avec iptables ainsi qu’un petit script bash qui vous permettra d’automatiser la gestion de ces trois fonctions très simplement.

Bannir une IP

Pour bannir une adresse IP avec iptables, il suffit de lancer cette commande:

iptables -I INPUT -s x.x.x.x -j DROPCode language: CSS (css)

L’argument DROP indique que l’adresse IP indiquée (x.x.x.x) n’aura plus accès à la machine.

Lister les IP bloquées

Pour voir la liste des adresses IP bloquées, il suffit de demander à iptables la liste et de ne sélectionner que celles qui sont en DROP:

iptables -L INPUT -v -n | grep DROP

Résultat :

Chain INPUT (policy DROP 23 packets, 4122 bytes)

Débloquer une IP

Pour débloquer une IP, il faut d’abord afficher la liste des IP bannies:

iptables -L INPUT -v -n | grep DROP

Toutes les IP sont classées dans un ordre numéroté, ligne par ligne. Il suffit d’indiquer le numéro de la ligne de la règle à supprimer avec la commande:

iptables -D INPUT numero-de-la-regle

L’argument -D (pour delete) permet de supprimer la règle qui correspond à l’adresse IP que nous souhaitons supprimer. Par exemple, si on veut supprimer la règle 1, il suffit d’indiquer:

iptables -D INPUT 1

Vous aurez remarqué que toutes ces commandes sont bien fastidieuses et leurs syntaxes assez complexes à retenir.

Voyons donc comment créer un script bash qui prendrait en charge toutes ces commandes.

Script Bash pour automatiser la gestion des IP bannies dans iptables

Bash

Voici un script bash qui devrait grandement vous simplifier la gestion des IP dans iptables.

Il permet de bloquer, débloquer et lister les adresses IP en toute simplicité.

Lire la suite

VLC : résoudre le problème de la lecture d'un dossier photo

VLC : résoudre le problème de lecture de dossiers avec le clic-droit

logo-vlc

Lors de mon précédent article à propos du téléchargement automatique des sous-titres avec VLC, j’ai essayé de mettre à jour – en vain – le paquet vlc sur mon installation Ubuntu et j’ai fini par prendre les captures d’écran avec une version portable.

Or, depuis, il m’est impossible de lire un dossier avec VLC !

Le problème : lecture impossible d’un dossier avec VLC

Les symptômes sont les suivants : un clic droit sur le dossier offre bien l’option Ouvrir avec > Lecteur multimédia VLC.

Le dossier arrive bien dans VLC mais il est impossible de lancer la lecture, que ce soit avec le bouton lecture ou en double-cliquant sur le nom du dossier dans la playlist.

Le nom vibre comme s’il s’agissait d’un message d’erreur mais le dossier n’est pas ouvert et rien n’est lu.

La solution : éditer le fichier de configuration de VLC

La solution est d’éditer le fichier de configuration de VLC, qui s’appelle vlcrc.

Sous Windows, il se trouve à l’emplacement %appdata%\vlc\vlcrc.

Sous Ubuntu, il se trouve à l’emplacement /home/matt/.config/vlc/vlcrc donc on l’édite:

gedit /home/matt/.config/vlc/vlcrc

On recherche la ligne qui concerne le module Demux :

# Demux module (string)
demux=anyCode language: PHP (php)

et on commente la ligne qui l’active :

# Demux module (string)
#demux=anyCode language: PHP (php)

Lire la suite

hourglass

Serveur dédié : optimiser toutes les images GIF avec GIFsicle

Après avoir vu comment optimiser les fichiers JPG et PNG sur le serveur, voici comment optimiser les fichiers GIF.

hourglass

Comme dans le tutoriel précédent, nous allons optimiser toutes nos images d’un seul coup, de manière à charger nos pages plus rapidement et à consommer moins de bande passante.

Pour optimiser les fichiers GIF, j’ai choisi GIFsicle.

L’installation et la compression de vos répertoires d’images prend à peine quelques minutes.

Installation de GIFsicle

On installe le paquet :

apt-get install gifsicleCode language: JavaScript (javascript)

et on RTFM :

man gifsicle

Optimisation des PNG

Pour optimiser les fichiers GIF, il suffit de lancer :

gifsicle --batch -O3 *.gifCode language: CSS (css)

L’argument --batch permet de gérer plusieurs fichiers et -O3 permet la meilleure optimisation possible, en essayant plusieurs combinaisons de compression pour trouver le ratio le plus intéressant.

Lire la suite

Serveur dédié : installer la dernière version d'OpenSSL sous Debian photo

Bash : lister et redémarrer tous les services qui utilisent libssl après une mise à jour d’OpenSSL

Lorsque l’on met à jour OpenSSL, tous les services qui utilisent les librairies SSL et qui sont chargés en mémoire ne rechargent pas les librairies (dont libssl) qui viennent d’être mises à jour.

Idéalement, il faudrait rebooter le système mais lorsqu’il s’agit d’un serveur, ce n’est pas toujours possible. Si les services ne sont pas redémarrés (restart) ou rechargés (reload) après une mise à jour, ils seront toujours vulnérables aux problèmes de sécurité que corrige la nouvelle version.

Voici donc comment détecter les services qui utilisent les librairies d’OpenSSL afin de les redémarrer et éviter de rebooter la machine.

Lister les services qui utilisent libssl

Vérifiez que votre système possède la commande lsof. Elle devrait normalement être prise en charge par votre gestionnaire de paquets.

Pour lister les services qui utilisent OpenSSL, il suffit de vérifier lesquels utilisent le paquet libssl en les classant par ordre alphabétique et en supprimant les doublons:

lsof | grep libssl | awk '{print $1}' | sort | uniqCode language: JavaScript (javascript)

Résultat:

apache2
fail2ban-
opendkim
php5-fpm
tlsmgr

Il ne vous reste plus qu’à redémarrer les services présents dans cette liste qui font appel à OpenSSL.

Lister les services qui utilisent une ancienne version de libssl

Si vous avez mis à jour OpenSSL mais que vous n’avez pas redémarré votre serveur, il est possible que certains services utilisent toujours une ancienne librairie non-patchée d’OpenSSL.

Lire la suite

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo 2

Télécharger automatiquement les sous-titres d’un film ou d’une série avec VLC

logo-vlc

Si vous avez l’habitude de regarder des films ou des séries en version originale (VO) sur votre ordinateur avec VLC, voici une petite astuce qui devrait grandement vous faciliter la tâche…

En effet, qui n’a jamais rêvé de pouvoir récupérer les bons sous-titres avec le bon timing de la bonne langue qui correspond au bon fichier vidéo?

Et bien sachez que cela est possible en trois clics avec VLC. Suivez le guide !

Pré-requis : une version de VLC à jour

Tout d’abord, vous devez disposer d’une version de VLC récente, c’est-à-dire VLC 2.2.1+. Inutile d’essayer avec VLC 2.1.x qui est livrée avec Ubuntu 14.04 LTS, le module VLSub ne fonctionne pas avec cette version.

Pour les besoins de cet article et des captures d’écran, j’ai donc utilisé la version portable de VLC.

Mettez donc VLC à jour !

Charger à la volée les sous-titres d’une vidéo dans VLC

VLC permet maintenant de charger les sous-titres d’une vidéo en cours de lecture, sans les télécharger sur l’ordinateur.

Fini le temps où vous deviez rechercher le fichier de sous-titre, le télécharger, le dézipper puis le renommer pour qu’il soit détecté automatiquement par le lecteur.

Maintenant, tout se fait en quelques clics :

1. ouvrez votre fichier vidéo avec VLC et appuyez sur le bouton Lecture.

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo 4

ouvrez le menu View > Download Subtitles:

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo 1

Si vous avez un Mac, on trouve le menu dans VLC > Extensions > VLsub :

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo

3. choisissez la langue des sous-titres voulue et cliquez sur le bouton “Search by hash”

4. VLC donne une liste des résultats, il vous suffit de sélectionner un sous-titre et cliquer sur le bouton “Download selection”:

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo 3

4. VLC affiche le message “success : subtitles loaded” en vert en bas de la fenêtre

5. fermez la fenêtre VLSub et regardez votre film ou épisode sous-titré!

Télécharger automatiquement les sous-titres d'un film ou d'une série avec VLC photo 2

Notez que vous pouvez également rechercher par nom, numéro de saison ou numéro d’épisode.

Lire la suite

Bash : réparer les tables MySQL en cas de crash photo

Bash : rechercher une chaîne dans des fichiers de manière récursive avec Grep

Bash

Voici une petite technique utile pour rechercher la présence d’une chaine de texte dans le contenu des fichiers d’un répertoire.

Sous linux, j’utilise très fréquemment la commande grep.

La syntaxe de grep

La syntaxe de grep est toute simple puisqu’elle consiste à définir des options de recherche, suivies des mot-clés à chercher, et enfin du répertoire de travail.

Voilà ce que cela nous donne :

grep [option] "text string to search" directory-pathCode language: JavaScript (javascript)

Grep en action

Sur le serveur, on se place dans le répertoire de travail pour y lancer cette commande :

grep --color --include=\*.{php,js,css} -rnwe "recherche" . Code language: PHP (php)

Voici le détail des arguments :

  • --color : pour activer la colorisation des résultats
  • --include=\*.{php,js,css} : les extensions de fichiers à cibler
  • -r : de manière récursive
  • -n : avec les numéros de ligne
  • -w : mots complets de la recherche (recherche stricte)
  • -e : active la regex sur les extensions de fichiers

Note : le terme à recherche doit être entre guillemets et il faut bien ajouter le point (.) final ou alors explicitement donner le chemin complet du répertoire de travail.

Grep et les expressions régulières

Il est également possible d’utiliser des expressions régulières avec Grep :

grep --color -HnR "add_[a-zA-Z].*_page.*, [0-9]*," /home/public_html/wp-content/plugins/Code language: JavaScript (javascript)

Très utile pour rapidement trouver une fonction devenue obsolète ou un bout de code utilisé dans plusieurs fichiers.

ubuntu-desktop-applet

Ubuntu : résoudre le problème de chargement de l’icône Show Desktop Applet au démarrage

Problème : plus d’icône du bureau

De temps à autre, l’icône ShowDesktopApplet ne se lance pas bien au démarrage d’Ubuntu et produit une fenêtre d’erreur avec le message suivant :

Le tableau de bord a rencontré un problème lors du chargement de “WnckletFactory::ShowDesktopApplet”. Voulez-vous supprimer l’applet de votre configuration?

Voici ce que cela donne en image :

ubuntu-desktop-applet

Commencez par cliquer sur le bouton Ne pas supprimer. Ensuite, deux manières de procéder vous permettent de retrouver l’icône du bureau.

Solution : forcer le chargement en ligne de commande

Ouvrez le terminal et lancez la commande:

gnome-panel --replace

Cela est généralement suffisant. Vous devriez obtenir une erreur de segmentation et la commande devrait vous rendre la main dans le terminal. Si ce n’est pas le cas, essayez la solution suivante.

Solution : ouvrir une nouvelle session

Si la solution précédente n’a pas fonctionné, il vous suffit de fermer la session et d’en ouvrir une nouvelle. Cela relance gnome-panel correctement.

Je n’utilise pas Unity mais Gnome Shell et l’icône du bureau est très pratique pour s’y retrouver.

Bash : réparer les tables MySQL en cas de crash photo

BASH : lancer une tâche en arrière-plan et fermer le terminal sans interrompre la tâche

Bash

J’ai récemment mis à jour mon article sur Rsync pour rapatrier quelques fichiers du serveur vers mon NAS Synology et me suis demandé comment je pouvais faire pour ouvrir un terminal, lancer un Rsync qui va sûrement me prendre des heures et fermer le terminal sans que cela interrompe la sauvegarde.

Voici quelques pistes pour lancer une commande en arrière-plan avec BASH.

Créer un sous-shell

On crée un sous-shell (subshell) en lançant la commande avec des parenthèses. Le signe & (ampersand) est nécessaire, tout comme la commande exit qui permet de quitter proprement le terminal sans terminer le processus :

(sleep 100) & exitCode language: PHP (php)

On ouvre un autre terminal et on vérifie que notre tâche est toujours en cours :

ps aux | grep sleep

Utiliser disown

Une autre manière de faire est d’utiliser disown :

sleep 60 & disown

Le système attribue un numéro de processus à notre tâche. On peut alors fermer le terminal comme un barbare, la tâche reste en cours :

ps aux | grep sleep

A garder sous le coude.