Firefox_Sync_logo

Mise à jour 21/08/2011 : Le serveur dont l’installation est décrite ici n’étant plus supporté, j’ai détaillé l’installation du nouveau serveur dans cet article.

Mise à jour 16/08/2011 : Comète m’a fait remarqué dans les commentaires que le serveur minimal n’est plus maintenu depuis 1 mois, je vous redirige donc vers le tutoriel de Mozilla pour plus d’infos. Je vais tester le nouveau serveur sous peu et réécrirai l’article si nécessaire.

Si je n’avais qu’une seule extension Firefox à garder ce serait Xmarks parce qu’avec 3 PC et un mobile, impossible de synchroniser mes centaines de favoris et dizaines de mots de passe sans elle. Cette extension est un véritable bijou et je pèse mes mots. Elle a cependant un défaut de taille, les données sont stockées sur les serveurs de la société. Le fait est que confier ses données personnelles, qui plus est ses mots de passe, à une société tierce est une très mauvaise idée. La confidentialité de celles-ci étant toute relative pour des raisons de politique d’utilisation du service  (l’affaire Dropbox en est une illustration) ou plus implacable et sournois, pour des motifs de sécurité intérieure (cf. les déclarations de Microsoft concernant le Patriot Act). Mon mauvais esprit aurait donc souhaité le disparition pure et simple de Xmarks suite à leur problème financiers afin qu’ils libèrent leur logiciel et que tout un chacun puisse installer son propre serveur Xmarks (A noter que Xmarks proposait quand même une méthode de stockage perso via WebDAV ou FTP grâce à l’extension Xmarks BYOS – Bring Your Own Server). Heureusement pour eux mais pas pour nous, Lastpass les a rachetés et Xmarks continue donc son bonhomme de chemin (Xmarks BYOS a par contre disparu…). Venons-en maintenant au sujet qui nous intéresse : Mozilla Sync. Même si la fondation Mozilla est au-dessus de tout soupçon concernant les question de vie privée, elle n’en reste pas moins soumise aux législations en vigueur, si vos données sont stockées sur des serveurs américains, le Patriot Act s’y appliquera. Voici donc un moyen relativement simple d’installer à la maison son propre serveur Mozilla Sync.

Pré-requis :

  • Un serveur GNU/Linux (ici Debian Squeeze i386)
  • Serveur Web (ici Apache 2) avec support HTTPS
  • Un navigateur Mozilla Firefox/IceWeasel PC/Mobile

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

Je le précise d’emblée, il s’agit ici d’installer le serveur dit « Minimal » créer par Toby Elliott suite au hack de Fazal Majid qui n’arrivait pas à installer le serveur complet (ceux qui ont essayé comprendrons aisément…).

 

1. Installation

 – Télécharger la dernière version de Weave Minimal dans /tmp :

# cd /tmp
# wget http://people.mozilla.com/~telliott/weave_minimal.tgz

 – Extraire le contenu de l’archive :

# tar zxvf weave_minimal.tgz

 – Renommer le dossier en weave et le déplacer dans /var/www :

# mv weave_minimal weave
# mv weave /var/www/

 – Modifier les droits et propriétaires du dossier et des fichiers :

# chown -R www-data:www-data /var/www/weave
# chmod -R 755 /var/www/weave

 – Éditer le fichier de configuration d’Apache /etc/apache2/apache2.conf (à adapter selon votre distribution et/ou l’existence de Virtualhosts) et ajouter les lignes suivantes afin de créer un alias  :

Alias /weave/ "/var/www/weave/index.php/"
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

 – Se rendre à l’adresse https://my_server.net/weave/1.0/blah/info/collection, un pop-up apparait.

 – Entrer le login « blah » et n’importe quel mot de passe afin de créer la base de données

 – Vérifier que la base de données a bien été créée (fichier /var/www/weave/weave.db) :

# ls -la /var/www/weave

Le script /var/www/weave/create_user sert à créer et supprimer les utilisateur ainsi qu’à changer le mot de passe.

 – Créer un utilisateur (la suite de chiffres et de lettres correspond à la clé de synchronisation, il faut absolument la copier en lieu sûr) :

# php /var/www/weave/create_user
(c)reate, (d)elete or change (p)assword: c
Please enter email: my_account@email.net
Please enter password: my_password
bd54sb5e1fd64gv76vs5gv16qse1vsd5 created

Le serveur est maintenant installé et actif.

 

2. Ajout d’un Firefox PC / Mobile

2.1. Firefox PC

 – Ouvrir Firefox PC, entrer l’adresse about:config et changer la valeur de la clé services.sync.serverURL par : https://my_server.net/weave/ (Noter le / à la fin de l’adresse)

 – Ouvrir un nouvel onglet, entrer l’adresse https://my_server.net/weave/ et valider le certificat de manière permanente.

 – Ouvrir les Options/Paramètres de Firefox, allez dans l’onglet Sync et cliquer sur le bouton Configurer Firefox Sync

 – Choisir j’ai déjà un compte – se connecter

 – Configurer les options de synchronisation (bouton en bas à gauche) et valider (Attention à ne pas écraser vos marque-pages par mégarde !):

Options de configuration Sync

– Cliquer sur le lien Je n’ai pas l’appareil avec moi et renseigner les champs :

Compte : my_account@email.net
Mot de passe : my_password
serveur (Utiliser un serveur personnalisé…) : https://my_server.net/weave/
clé de synchronisation : bd54sb5e1fd64gv76vs5gv16qse1vsd5

Paramètres de connexion Sync

 2.2. Firefox Mobile

Le configuration de Firefox Mobile se fait la même manière que sur le version de bureau.

 – Aller dans les paramètres, activer Sync et appuyer sur le bouton Connecter :

Paramètres Firefox Mobile
 – Appuyer sur le lien Je n’ai pas accès à mon ordinateur pour l’instant… :

 Connexion Firefox Mobile Sync – Renseigner les champs comme précédemment :

Infos Connexion Firefox Mobile Sync

 – La synchronisation est maintenant activée :

Firefox Mobile Sync Activé

Un point de plus pour moi dans le match qui m’oppose au Minitel 2.0 !


Mr Manatane
L’incorrigible enfant gâté que vous êtes ! Vous l’avez installé hein, n’est-ce pas ?! Le système d’exploitation de l’an 2000, la distribution Linux de Monsieur Puissance. L’informatique au service de l’homme moderne. Et vous avez décidé d’en apprécier les performances réelles par une petite compilation sur le vif. Bref, ça va chier dans le compilateur les loulous ; c’est bien légitime. Mais au moment de vous connecter au serveur de fichiers pour y récupérer les sources, un popup vous invite à marquer un temps d’arrêt, il prétend dans un jargon très approximatif, vouloir vous authentifier sur le domaine Active Directory de l’entreprise et parait en vouloir à votre couple identifiant/mot de passe. Voilà qui est fort désobligeant convenez-en. Alors que faire ?

J’interrompt brièvement cette introduction honteusement empruntée au regretté Mr Manatane pour préciser que cette dernière m’a été inspirée par la découverte de l’ignorance crasse de mes Jeunes quant à l’humour télévisuel belge de la fin du siècle dernier (je préfère employer le mot Jeune à celui de Stagiaire qui ne reflète en rien l’affection que le Pygmalion porte à ses disciples et ce malgré l’ingratitude de certains d’entre eux, notez-le). Mais reprenons, voulons-nous?

Il ne faut jamais au grand jamais vous exécuter en invoquant une quelconque fatalité, sous peine de devoir saisir vos identifiant et mot de passe à qui mieux mieux. Non, vous devez avec l’assurance du sysadmin chevronné vous gausser devant tant de naïveté et dire : « Mais que me contez-vous là, le Windows ? Vous m’insultez, sachez que je ne m’authentifie qu’une fois par jour et pas une de plus. Likewise Open, vous voyez ce que c’est ? » Et ponctuez éventuellement votre phrase de cliquetis de souris ou de quelques claquements de touches de clavier. Vous passerez instantanément pour ce que l’on appelle en langage informatique, un as du clavier. Et il y a fort à parier que le contrôleur de domaine piqué au vif vous mette au défi et vous propose sur le champ de mettre vos dires en pratique. Et là petit conseil d’ami, consentez à brider vos ardeurs, il est toujours utile de rester en bon terme avec votre contrôleur de domaine attitré.

Pré-requis :

  • Un poste de travail sous GNU/Linux (ici Ubuntu 11.04 64 bits)
  • Un domaine Active Directory (dans mon cas les contrôleurs de domaines sont sous Windows 2008 R2)

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

Likewise Open est donc un logiciel qui permet d’intégrer un poste UNIX, GNU/Linux ou Mac OS X dans un environnement Microsoft Active Directory (la liste des systèmes supportés est disponible ici). Je m’intéresse ici à la version Open qui est gratuite et amplement suffisante pour mon usage. La version Entreprise offre quant à elle bien plus de fonctionnalités qui sont détaillées ici pour les personnes intéressées.

1. Installation

Il est possible de télécharger le logiciel sur le site de Likewise à l’adresse : http://www.likewise.com/download (quelques informations vous serons demandées) mais pour ceux qui rechignent à lâcher le moindre renseignement qui alimentera sans nul doute quelques obscures bases de données marketing, voici le lien direct vers la version stable (6.0.0.8360) : http://www.likewise.com/community/index.php/download. Pour ma part, la version présente dans les dépôts n’a pas fonctionnée (6.0.0.53010). De plus, il peut parfois être nécessaire avec les distributions récentes de recourir à la version de développement de Likewise Open (actuellement 6.1.0.8656) : http://www.likewise.com/community/index.php/download/6.1.

– Télécharger le logiciel qui correspond à votre OS :

$ cd /tmp
$ wget http://www.likewise.com/bits/6.0/8360/LikewiseOpen-6.0.0.8360-linux-amd64-deb.sh

– Rendre le fichier exécutable et le lancer :

# chmod u+x LikewiseOpen-6.0.0.8360-linux-amd64-deb.sh
# ./LikewiseOpen-6.0.0.8360-linux-amd64-deb.sh

– Suivre les instructions d’installation.

– Éditer le fichier /etc/nsswitch et modifier les lignes passwd, group, hosts pour qu’elles soient exactement comme ci-dessous (l’ordre des paramètres est important) :

# nano /etc/nsswitch
passwd:         compat lsass
group:          compat lsass
shadow:         compat

hosts:          files dns mdns4_minimal [NOTFOUND=return] mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Redémarrer le poste de travail n’est pas obligatoire mais d’expérience, c’est plus que recommandé afin de prendre en compte les changements.

– Vérifier que le domaine est joignable (c’est 2 commandes doivent impérativement fonctionner, le cas échéant consulter la documentation afin de résoudre le problème) :

# ping my_domain.local
64 bytes from domain_controler_01.my_domain.local (172.16.0.1): icmp_req=1 ttl=128 time=0.187 ms
# nslookup my_domain.local
Server:        172.16.0.1
Address:    172.16.0.1#53

Name:    my_domain.local
Address: 172.16.0.1
Name:    my_domain.local
Address: 172.16.0.2

2. Rejoindre un domaine

– Il est possible d’utiliser l’interface graphique pour joindre le domaine :

# /opt/likewise/bin/domainjoin-gui

Likewise Open GUILikewise Open GUI Authentification

ou d’utiliser la ligne de commande :

# /opt/likewise/bin/domainjoin-cli join my_domain.local active_directory_admin
Joining to AD Domain:   my_domain.local
With Computer DNS Name: my_computer.my_domain.local
active_directory_admin@my_computer.my_domain.local's password:
SUCCESS

– Il ne reste plus qu’à redémarrer le poste de travail pour prendre en compte les changements et se connecter via l’interface graphique avec l’identifiant my_domain\my_account ou en ligne de commande avec l’identifiant my_domain\\my_account (notez le double \).

 

3. Configuration du compte

Avant de pouvoir profiter pleinement de votre session, il va falloir se connecter sur un compte local du poste de travail ayant un accès root (typiquement celui qui est créé à l’installation de l’OS) afin de donner les droits d’administration local au compte du domaine.

– Editer le fichier /etc/sudoers et ajouter le compte du domaine (permet au compte d’exécuter des commandes avec les droits root) :

# visudo
# User privilege specification
root    ALL=(ALL:ALL) ALL
my_domain\\my_account ALL=(ALL:ALL) ALL
my_account ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%my_domain\\my_account ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) ALL

– Editer le fichier /etc/group et ajouter le compte du domaine aux mêmes groupes que l’utilisateur local (afin qu’il bénéficie des mêmes droits sur le poste de travail) :

# nano /etc/group
adm:x:4:my_local_account,my_domain\my_account
dialout:x:20:my_local_account,my_domain\my_account
cdrom:x:24:my_local_account,my_domain\my_account
plugdev:x:46:my_local_account,my_domain\my_account
lpadmin:x:112:my_local_account,my_domain\my_account
admin:x:120:my_local_account,my_domain\my_account
sambashare:x:122:my_local_account,my_domain\my_account
vboxusers:x:123:my_local_account,my_domain\my_account

On va maintenant se connecter sous son compte du domaine comme indiqué précédemment pour paramétrer plus finement ce dernier.

– Lancer un terminal, on remarque ici que le classique account@computer:~$ est remplacé par un simple $, pour y remédier on va définir le shell par défaut (bash dans mon cas) :

# /opt/likewise/bin/lwconfig LoginShellTemplate /bin/bash

– De la même manière, on va définir le domaine par défaut afin de ne plus avoir à le renseigner :

# /opt/likewise/bin/lwconfig AssumeDefaultDomain true

4. Quitter un domaine

– Il est possible d’utiliser l’interface graphique pour quitter le domaine :

# /opt/likewise/bin/domainjoin-gui

ou la ligne de commande :

# /opt/likewise/bin/domainjoin-cli leave active_directory_admin

5. Dernière astuce pour la route…

Utilisant le logiciel Truecrypt assez couramment, j’ai rencontré des difficultés pour accéder à mes volumes montés sous le compte de domaine, et ce malgré le fait que ce compte est censé avoir les mêmes droits que le compte créé à l’installation du système. Le problème est en partie résolu en ajoutant les paramètres de montage suivants dans les préférences du logiciel :

uid=my_account,gid=1000,umask=0007

Un autre problème gênant que je n’ai par contre pas réussi à résoudre, c’est le non-affichage des volumes montés dans l’interface de Truecrypt alors qu’il apparaît si Truecrypt est lancé avec les droits root. Qui plus est, pour démonter le volume il faut donc utiliser Truecrypt avec les droits root, on se heurte alors au message d’erreur suivant :

Un petit tour sur le web pour trouver une solution guère élégante mais qui a l’immense mérite de fonctionner (/media/truecrypt1 étant mon point de montage, à adapter au cas par cas) :

# umount /media/truecrypt1 -d && rm -rf /tmp/.truecrypt_aux_mnt1/

Vous voici donc l’heureux possesseur d’un poste de travail sous GNU/Linux intégré dans un Active Directory et ce au prix de quelques ridicules petites commandes. En vous remerciant, bonsoir !

 

Point de digression ici sur les relations sysadmin/utilisateurs finots mais un billet assez factuel sur mon environnement de travail. Ayant la chance de pouvoir décider des logiciels sur lesquels je travaille, j’ai fait le choix il y a quelques années de migrer mon poste de travail de Windows XP vers GNU/Linux. Comme beaucoup de libristes, j’ai utilisé aux cours des années tout un tas de distributions de bureau (en vrac : Mandrake, Ubuntu, OpenSUSE, Fedora, Mandriva, Mint, Debian et Archlinux). Si je me suis tourné vers Debian pour mes serveurs et Archlinux pour mon portable personnel, mon poste de travail professionnel tourne quand à lui sur… Ubuntu 11.04 64 bits. A première vue, une distribution grand public récente pas spécialement réputée pour sa stabilité ou sa robustesse, peut paraître déplacée dans le cadre professionnel – une CentOS ou une Debian cadrant mieux – plusieurs raisons m’ont menées vers ce choix :

  • la connaissance de l’OS (on se tourne plus volontiers vers ce que l’ont connaît, c’est humain)
  • l’immense communauté d’Ubuntu (qui offre le support le plus large, hors support payant)
  • l’écosystème logiciel existant
  • pouvoir bénéficier tous les 6 mois des dernières avancées du monde GNU/Linux (malgré les inconvénients induits)
  • Tout ça pour dire que je recherche avant tout une distribution installable et configurable en une demi journée, et ce malgré les problèmes de compatibilité logiciel qui ne manquent pas d’apparaître à chaque nouvelle version de l’OS. En bref, je suis là pour travailler pas pour bidouiller mon PC toute la journée (encore que des fois…)

Autant le dire tout de suite, je ne suis pas insensible à l’aspect visuel des choses (comme le montre la capture d’écran ci-dessous), non pas par goût exacerbé de l’esthétique mais parce que passer 8 heures par jour devant son écran nécessite que ça flatte quelque peu mon iris. Mais c’est surtout dans un soucis d’améliorer l’ergonomie générale que je me laisse aller à modifier l’interface par défaut.

Exit donc Unity, pas encore au point à mon goût (je n’ai pas encore testé Gnome 3) et retour au bon vieux Gnome 2, le tout agrémenté :

  • du thème Minty-Freshness (avec les boutons à droite !)
  • des icônes Faenza-Wolfe
  • d’un Conky adapté ma configuration
  • d’Avant Window Navigator, histoire de ne pas perdre de temps dans les menus pour accéder aux principaux programmes
  • enfin de fonds d’écran récupérés chez Interfacelift (oui j’avoue, j’aime les paysages HDR)

Passons donc aux logiciels en commençant par ceux que je supprime purement et simplement (jeux, PiTiVi, Ubuntu One et quelques autres qui m’échappent…) ainsi que ceux que je remplace :

  • Totem -> VLC
  • Evolution -> Thunderbird + Lightning + DAVMail
  • Empathy -> Pidgin
  • Gwibber -> Turpial
  • Transmission -> Deluge
  • Terminal Server Client/Visionneur de bureau distant -> Remmina + greffons

Ceux que j’ajoute au niveau professionnel :

  • Likewise Open : intégration du poste dans un domaine Windows
  • Terminator : remplace avantageusement le terminal
  • SRWare Iron : navigateur Internet secondaire
  • Virtualbox / VMWare Player : virtualisation
  • Truecrypt : cryptage des supports de stockage amovible
  • KeepassX : gestion des mots de passe
  • Zenmap : scanner de ports
  • Wireshark : capture de trames réseau
  • FileZilla : client FTP
  • Getting Things Gnome : gestion des tâches
  • yEd : Editeur de diagramme

Semi-professionnel :

  • Miro : gestion des podcasts (dont le très fameux TechnoIT)
  • Ubuntu-Tweak : configuration rapide l’OS
  • Y-PPA-Manager : ajout simplifié de dépôts

Et parce que travailler pour un studio de jeu vidéo présente quand même quelques avantages  :

  • Minecraft : plus besoin de le présenter
  • Oil Rush : jeu de Stratégie en Temps Réel avec support natif de GNU/Linux
  • Amnesia : survival-horror à la première personne d’inspiration Lovecraftienne

 

Quant à vous chers confrères forçats de l’IT et autres geeks véritables, qu’utilisez-vous au quotidien sur votre poste de travail ?

 

 

 

subsonic-logoS’il est bien une chose qui est particulièrement jouissive dans la vie du sysadmin (outre la bouteille de whisky dont Madame Michu vous gratifie après chaque dépannage), c’est bien d’étaler votre science devant un parterre de collègues profanes qui d’ordinaire n’ont que faire des arcanes de votre spécialité. L’exemple du jour est particulièrement parlant. Cataclysme planétaire ! Après Spotify qui restreint l’écoute gratuite de musique à 10 heures par mois, c’est au tour de Deezer d’annoncer une limite de 5 heures (ce n’est pas comme si le pathétique directeur de la Star’Ac d’Universal Music France n’avait pas déjà annoncé la couleur, passons…). La cafétéria est en ébullition, tout le monde ne parle que de ça. Intérieurement vous jubilez, d’abord à l’idée des dizaines de Kio/s de bande passante qui vont être de nouveau disponibles mais surtout parce que vous, ça fait un bail que vous n’avez plus recours à ces services étant donné que vous hébergez un serveur Subsonic à la maison. Vous attendez donc que votre collègue de droite finisse de s’étouffer avec ses choux de Bruxelles pour sortir le PC portable qui ne vous quitte jamais (on est professionnel ou on ne l’est pas) et dans le silence qui suit ce geste, vous faîtes une démonstration des possibilités de ce fantastique logiciel. En guise de dessert vous saisissez votre smartphone, appuyez sur l’icône au sous-marin jaune et achevez par ce geste impérial de compléter votre triomphe, car oui il y a aussi une application pour Subsonic et pas que pour l’iPhone. Allez hop, un café et l’addition !

Subsonic est donc un serveur de streaming multimédia. Exploitant Java, il est multi-plateforme mais dans un soucis de préservation de mes rentrées régulières de bouteilles de whisky, j’exposerai ici uniquement l’installation sous GNU/Linux Debian et dérivés. Les binaires (ainsi que les instructions d’installation) pour les plateformes Windows, Mac OSX, GNU/Linux RPM-DEB et Java (stand-alone) sont disponibles ici.

Pré-requis :

  • GNU/Linux Debian 6 « Squeeze »

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

On commence par installer Java si ce n’est pas déjà fait :

# apt-get install openjdk-6-jre

Puis on télécharge le dernier paquet .deb en date et on l’installe :

# cd /tmp
# wget http://sourceforge.net/projects/subsonic/files/subsonic/4.4/subsonic-4.4.deb/download  
# mv download subsonic-4.4.deb
# dpkg -i subsonic-4.4.deb

Par défaut Subsonic est disponible à l’adresse http://myserver:4040, mais le diplôme de sysadmin étant assorti d’une mention paranoïa, on va modifier le port en éditant le fichier /etc/default/subsonic :

# nano /etc/default/subsonic

Changer le port 4040 par —au hasard— 51983, dans la ligne suivante :

SUBSONIC_ARGS="--port=51983 --max-memory=100"

Sauvegarder le fichier et redémarrer le serveur Subsonic :

# /etc/init.d/subsonic restart

Le serveur étant maintenant accessible à l’adresse http://myserver:51983, il ne reste plus qu’à finir la configuration en se connectant avec les identifiant et mot de passe « admin/admin »

Un guide en 3 parties nous aide alors à terminer la configuration.

La première chose à faire est de créer un nouveau compte utilisateur et surtout de changer le mot de passe du compte « admin ». On indique ensuite le dossier qui va accueillir notre bibliothèque musicale et on finit par configurer les paramètres réseaux en redirigeant sur le routeur (par UPnP ou manuellement) le port précédemment configuré vers le serveur qui héberge Subsonic (sinon point d’accès depuis Internet, du moins en IPv4…).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Il ne reste plus maintenant qu’à transférer la bibliothèque musicale dans le dossier indiqué. D’un point de vue général, l’interface est relativement bien faite même si la possibilité de déporter la liste de lecture vers la partie droite de l’écran aurait été la bienvenue. A noter que Subsonic ne se limite pas uniquement au streaming de fichiers musicaux, il prend aussi en charge les podcasts, WebTV, WebRadios et moyennant un don le streaming vidéo et le streaming audio vers les smartphones. L’auteur suggère un montant de 20€ ce qui n’est vraiment pas cher payé aux vues des services offerts (dommage toutefois qu’on ne puisse pas payer en whisky…). Toutes ces fonctions feront l’objet d’un prochain article quand j’aurais eu le temps de tout tester, notamment la partie vidéo.

Évidemment une fois votre démonstration digérée, un esprit chagrin mais moins obtus que les autres vous fera remarquer que Amazon Cloud Drive et Google Music arrivent bientôt et que « c’est la même chose ». Sauf que le service d’Amazon est limité à 5 Gio et celui de Google, s’il permet d’héberger plusieurs dizaines de milliers de titres, rien ne dit que ça restera gratuit, sans compter que le service est encore en Bêta (Google oblige) et uniquement accessible sur invitation et au USA. A l’heure où un hébergement mutualisé avec 25 Gio de stockage coûte autant par mois qu’une pression au troquet du coin, il serait dommage pour ceux que l’auto-hébergement répugne de se priver d’une telle solution. J’oubliais mais comme toutes les bonnes choses, Subsonic est sous licence GNU-GPLv3, mais est-ce la peine de le préciser ?!

 

Dans la famille « les petits tracas du quotidien du sysadmin en vadrouille », je veux « la connexion SSH à mon serveur GNU/Linux préféré depuis Windows ». Le premier stagiaire venu vous lancera un condescendant « et Putty, c’est pour les ‘iench ? » (oui, le stagiaire moderne aime massacrer sa langue maternelle, l’air de rien). Seulement en bon paranoïaque que vous êtes, vous avez banni ce vieux duo grabataire qu’est l’identifiant/mot de passe au profit d’un séduisant couple de clés publique/privée DSA, on ne peut plus légitime s’il en est. Dans un élan de satisfaction non dissimulé, vous demandez alors au jeune impudent comment utiliser cette clé privée DSA dans Putty, la sempiternelle réponse « ch’ais pas c’est quoi » ne tardant évidemment pas à suivre. Le bougre se retrouve vulnérable, il n’y a plus qu’à l’achever d’un coup (bas) de RTFM. Il semble meurtri, à l’évidence il a subi ce Finish Him un grand nombre fois auparavant. Le grand pédagogue en vous le prend alors en pitié et tente de soigner à la fois son amour propre et son inculture manifeste.

Pré-requis :

  • GNU/Linux Debian 6 « Squeeze » pour la partie serveur
  • SSH avec authentification par clés DSA (voir ici pour un exemple)
  • Windows pour la partie cliente
  • Putty / Puttygen
  • Un stagiaire (optionnel)

Putty est donc un logiciel émulant un terminal de commande GNU/Linux depuis Windows. Il faut maintenant télécharger et installer les versions stables de Putty et Puttygen. Ce dernier permet de convertir la clé privée DSA, que vous aurez préalablement récupérée sur votre poste Windows, au format .ppk utilisable par Putty.

On lance donc Puttygen et on y importe la clé privée. Saisissez le mot de passe demandé si vous en avez ajouté un lors de la création des clés.

Il ne reste plus qu’à sauver la clé ainsi convertie sous le nom id_dsa.ppk par exemple.

Si vous êtes confronté au message d’erreur « Couldn’t load private key (ciphers other than DES-EDE3-CBC not supported », il faut utiliser la version de développement de Puttygen.

Il ne reste plus qu’à créer la session sous Putty et à y ajouter la clé .ppk dans le menu « Connection > SSH > Auth »

 

Mission accomplie, mais pour avoir l’esprit serein et vous assurer que votre stagiaire a tout bien compris, vous lui demandez de refaire la manipulation pour les 92 autres serveurs de l’entreprise. Quand il aura fini, afin de la vacciner contre le « ch’ais pas c’est quoi », il tâchera de vous expliciter les formules de la page Wikipedia concernant DSA. Tout ceci dans un soucis de pédagogie évidemment ;).

Alors voilà, on est tout content de son serveur auto-hébergé fraîchement installé (si si), on y colle un peu tout et n’importe quoi, on teste des tas de services et là c’est le drame : lors de la sauvegarde d’un fichier de configuration, le système vous gifle sournoisement d’un revers de « no space left on device ». Un petit df -h plus loin le constat est accablant, l’installeur de Debian en qui vous aviez toute confiance, n’a réservé que 300 pauvres méga-octets pour le volume logique root alors que le disque en fait mille fois plus, que de cruauté !

Pas de problème vous dîtes vous alors, redimensionner un volume logique avec LVM, c’est de la rigolade, sauf qu’en bon paranoïaque que vous êtes vous avez chiffré tout ce petit monde à grands coup de LUKS. Bref la tâche semble ardue, les live-CD vont être de sortie suivis fatalement d’une réinstallation en bon et due forme, vous l’avez bien cherché !

Avant de sortir l’artillerie lourde, on se pose 5 minutes, on prend un café et on va jeter un œil sur le web des fois que d’autres inconscients n’auraient pas fait la même erreur. Miracle, ils sont légions (mais eux n’attaquent pas le PSN…) ou presque, l’espoir renaît, tout va bien se passer, méthode Coué, méthode Coué… Pour faire simple, l’idée est de prendre quelques giga-octets sur un autre volume logique (dans mon cas /home) pour les ré-affecter à ce goinfre de root. Deuxième miracle, cette périlleuse opération va se faire en 10 commandes ni plus ni moins.

Pré-requis :

  • GNU/Linux Debian 6 « Squeeze » dont les partitions sont chiffrées avec LUKS

Conventions :

  • prompt : # commande : exécuter la commande sous le compte root ou précédée de la commande « sudo »
  • prompt : $ commande : exécuter la commande sous le compte utilisateur

 

On commence par arrêter tous les services qui accèdent au volume logique sur lequel on va récupérer de l’espace disque (il peut être nécessaire de redémarrer le serveur pour arrêter certains processus récalcitrants) et on démonte le volume :

# umount /home

Il faut ici distinguer le système de fichiers et le volume logique (le premier étant « à l’intérieur » du deuxième). Le système de fichiers doit toujours être réduit à une taille inférieure à celle prévue pour le volume logique (ex : LV : 260 Gio / FS : 259 Gio). On va donc commencer par diminuer la taille du système de fichiers (attention : resize2fs est utilisé pour les systèmes de fichier ext3/ext4 uniquement) :

# resize2fs -p /dev/mapper/debian-home 259G

Le système nous demande alors, avant d’aller plus loin, de lancer la commande « e2fsck -f /dev/mapper/debian-home » afin de vérifier l’intégrité du système de fichier :

# e2fsck -f /dev/mapper/debian-home

Un fois cette commande terminée, on peut seulement alors lancer la commande resize2fs.

Le système de fichier étant redimensionné, on passe maintenant au volume logique que l’on va passer de 280 Gio à 260 Gio :

# lvresize --size=260G /dev/mapper/debian-home

Il ne reste plus qu’à étendre le système de fichiers à l’intégralité du volume logique :

# resize2fs /dev/mapper/debian-home

On remonte le volume logique :

# mount /dev/mapper/debian-home /home

Et on contrôle que la taille du volume est conforme à nos attentes :

# df -h

Jusque là tout va bien, il va maintenant falloir réattribuer l’espace libéré au volume root. On réalise alors qu’on ne peut pas le démonter, malédiction ! Le cercle vicieux live-CD/bidouillage/réinstallation refait surface. Que nenni, j’avais promis 10 commandes, les 3 dernières vont régler le problème avec une facilité déconcertante pour la simple et bonne raison qu’on peut redimensionner le volume root à chaud sans le démonter.

On commence par augmenter la taille du volume root en lui ajoutant 5 Gio (J’ai récupéré 20 Gio sur /home, mais j’en garde sous le coude pour une prochaine fois. A noter qu’il vaudrait mieux laisser de l’espace libre à la création des volumes, lors de  l’installation, afin de palier à ce genre de problème) :

# lvresize --size=+5G /dev/mapper/debian-root

Il ne reste plus qu’à étendre le système de fichiers à tout le volume logique :

# resize2fs /dev/mapper/debian-root

Et pour finir, on vérifie que l’opération s’est bien déroulée :

# df -h

Le serveur est sain et sauf, avec un système de partitions classique, cette opération aurait été bien plus compliquée à mettre en œuvre et surtout plus risquée : la flexibilité et la facilité de LVM en actions !

Sources :