Aller à la recherche

Des Logiciels Libres

Pour parler de Logiciels Libres en milieu professionnel... ou pas!

lundi, mars 7 2016 18:58

Métrologie avec Carbon-Graphite - Partie 1 - Les concepts

Présentation conceptuelle de la métrologie avec la pile "Carbon-Graphite".

Lire la suite...

samedi, septembre 8 2012 11:50

OpenElec/XBMC pour Raspberry Pi

Pour ceux que ça intéresse, je compile régulièrement depuis peu la version d'OpenElec avec XBMC 12 alpha (frodo) pour Raspberry Pi. Les fichiers sont disponibles à cette adresse.

splah-rpi

Pour se servir de ces fichiers, il faut:

  • 1 raspberry pi
  • 1 carte SD (512Mo minimum)

Après voir récupéré une des archives et l'avoir décompressée, voici la procédure à suivre:

Sur la carte SD, creer 2 partitions:

  • la 1ere de 128Mo en fat32 flag bootable, label System (mkfs.vfat -n System /dev/SDCARDp1)
  • la 2e du reste de la carte en ext4, label Storage (mkfs.ext4 -L Storage /dev/SDCARDp2)

Copier les fichiers presents dans le repertoire System dans la racine de la partition vfat de 128Mo. Au final cette partition doit contenir:

  • bootcode.bin
  • cmdline.txt
  • kernel.img
  • loader.bin
  • start.elf
  • SYSTEM

Le premier boot peut être plus long vu que certains fichiers vont être créés sur la partition Storage.

Normalement je teste tout ça avant d'uploader, avoir une version très à jour permet de tester pas mal de chose, comme le support CEC, le nouveau moteur Audio d'XBMC etc. Même si tout ceci est en version alpha, cela reste très utilisable.

Je ferais un autre billet sur la compilation de tout ça, car ce n'est pas bien compliqué au final.

lundi, septembre 3 2012 08:47

Monter un PC de salon, le choix du matériel

L'objectif

L'objectif du PC de salon (ou HTPC pour faire court), c'est de pouvoir regarder ses films de vacances, des photos ou encore écouter de la musique, le tout confortablement installé dans son salon. Une interface logiciel visuellement agréable est souhaitable, ce qui correspond complètement à XBMC.

Présentation de XBMC

XBMC permet de gérer sa médiathèque en tout simplicité, les fichiers pouvant être stockés sur différents support, du disque interne/externe, au partage samba/NFS/aFS etc. Il gère en plus des profils utilisateurs ce qui est bien pratique. Les gros avantages de XBMC sont qu'il récupère certaines informations sur le net, vous avez donc ainsi un résumé du film, une note (imdb), la durée, la qualité etc et surtout il retient où vous vous êtes arrêté dans le film et coche quand ce dernier a été vu en entier. Extrêment pratique. Il est hautement personnalisable via des addons et autres thèmes directement installables depuis l'interface XBMC.

Les critères du choix du matériel

Revenons au matériel. Ce PC est donc forcément relié à une TV (ou vidéoprojecteur) et éventuellement à un kit Home Cinema pour le son. Le plus consommateur en ressource étant les films, qui sont de plus en plus souvent en HD maintenant. De ce constat simple, nous pouvons déjà établir quelques critères:

  • 1 connexion HDMI (incontournable) vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD

Ces critères vont nous aider à choisir le bon matériel. En fait, c'est assez simple, et pas forcément coûteux vu qu'il n'est pas du tout nécessaire d'avoir le dernier i7 pour s'en sortir (au contraire). Pour affiner notre sélection, rajoutons qu'il faut que l'ensemble soit très silencieux et plutôt faiblement encombrant, installation dans un salon oblige. Pour être sûr du silence, le plus simple est d'opter pour un PC faible consommation. Qui dit faible consommation, dit faible dégagement thermique et donc peu ou pas de ventillation, parfait pour notre usage. Il vaut mieux aussi opter pour une alimentation externe si c'est possible, toujours dans l'idée d'éviter du bruit. Si nous complétons notre liste de critères, cela donne:

  • 1 connexion HDMI vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD
  • Peu coûteux
  • Petit
  • Silencieux
  • Faible consommation électrique
  • Alimentation externe

Le choix est donc simple car avec ces critères, il ne reste plus grand chose. Il sera difficile de faire tenir un i7 ou autre machine de course la dedans. Heureusement, depuis quelques années maintenant, avec l'arrivée des netbooks, une gamme de PC de bureau, utilisant le même matériel, (dit nettop) convient parfaitement. Au niveau CPU, il s'agit d'Intel ATOM au minimum double-coeur tournant autour des 1.5Ghz. Largement suffisant pour lire des videos en qualité standard, de la musique et des photos. Il existe l'équivalent chez AMD (avec les NEO). En tout cas c'est bien cette catégorie de PC qui nous intéresse mais il reste la partie video HD à traiter.

Concernant la partie video HD, c'est sur ce point qu'il faut faire attention. XBMC supporte depuis assez longtemps l’accélération video. La première couche a avoir été supporté est VDPAU pour les cartes NVIDIA. Le support pour les cartes AMD est arrivé il y a quelques mois. Pour le reste c'est un peu le néant à part quelques projets exotiques (le Raspberry Pi par exemple). Je n'ai pas eu le temps de tester complètement avec une carte AMD/ATI, donc pour être sûr d'éviter les galères, il vaut mieux partir sur du NVIDIA. Mais attention, une carte à 30€ suffit du moment qu'elle prend en charge le décodage video.

Pour la mémoire, 1 ou 2Go sera largement suffisant. Ce qui nous donne la liste suivante:

  • 1 connexion HDMI vers l'ampli ou la TV
  • Assez de ressources pour lire des video HD
  • Peu coûteux
  • Petit
  • Silencieux
  • Faible consommation électrique
  • Alimentation externe
  • Carte graphique NVIDIA

Le matériel

Normalement avec cette liste, le budget devrait tourner autour des 200, 300€ max. J'avais pour ma part opter il y a un peu plus de 3 ans pour un PackardBell Imax Mini (équivalent d'un Acer Aspire Revo), comprenant un Intel Atom 230, un chipset ION, 2Go de RAM et 160Go de disque dur. Le tout à l'époque en promo à Carrefour pour 209€. Avec un câble HDMI à 4€ le budget total était de 213€. Dur à l'époque de faire moins. Je parlerais surement dans un futur article de la solution Raspberry Pi pour faire un mediacenter à 30€. Aujourd'hui, j'hésiterais surement avec différentes marques mais en restant sur le même type de matériel (ATOM + chipset NVIDIA ION), comme Asus, Zotax, ou même Shuttle qui propose un modèle complètement passif!

Pour le système d'exploitation, la dernière Fedora 17 est parfaite pour cet usage, forcément. L'installation des pilotes NVIDIA et d'XBMC se faisant depuis les dépôts RPMFUSION. Le fait de disposer d'un vrai PC avec un vrai OS permet de pouvoir utiliser la TV comme écran, pour par exemple surfer, lire ses mails etc. Le tout étant aussi bien plus souple qu'une solution matériel type divx box.

jeudi, juillet 5 2012 10:21

Ralonger l'historique du shell

En shell, l'historique joue un rôle bien pratique en nous permettant de rappeler et/ou de retrouver d'anciennes commandes. Par défaut il ne conserve que 1000 entrées, ce qui suffit bien souvent. Mais sur des serveurs très utilisés, ou pour n'importe quelle autre raison, il est possible de changer cette valeur. Pour cela il suffit d'ajouter dans votre ~/.bashrc la ligne suivante (où de la corriger si elle existe déjà):

export HISTSIZE=3000

Cette valeur sera prise en compte au prochain login, mais pour que ce soit pris en compte immédiatement, au choix:

  • source ~/.bashrc
  • ou taper la commande export HISTSIZE=3000

Pour s'en assurer:

echo $HISTSIZE

Pour voir la taille actuelle de l'historique:

history | wc -l

J'avais déjà cité il y a quelques temps des raccourcis bien pratiques, certains utilisent l'historique.

PS: cette méthode a été testé sous bash uniquement.

jeudi, décembre 15 2011 09:22

Glances, pour un aperçu condensé des signes vitaux d'une machine

Vous connaissez certainement tous ces outils en mode texte pour surveiller l'activité d'une machine. Pour n'en citer que quelques uns: top, htop, iotop, vmstat, sar, collectl, iptraf...

Vient s'ajouter à cette longue liste un outil donc la vocation première est de rassembler un maximum d'information sur l'activité de la machine dans un espace le plus réduit possible: le fameux et ancestral terminal en 80x24. Et c'est là tout son intérêt.

Glances

Cet outil est codé en Python par l'auteur du blog nicolargo que vous connaissez surement aussi. Il sera bientôt disponible dans les dépôts Fedora officiels (d'ici une bonne semaine) mais vous pouvez déjà le tester depuis le dépôt de test:

yum install --enablerepo=updates-testing glances

Il sera aussi disponible sur EPEL6, par contre pour EPEL5 python est trop vieux...

La bibliothèque utilisée pour récupérer les statistiques est pystatgrab, qui sera certainement parmi les dépendances à installer.

N'hésitez pas à faire vos commentaires sur cet outil sur le billet le concernant.

A bientôt! Et bonne fêtes de fin d'année!

dimanche, janvier 16 2011 15:06

Création d'un fichier swap

Un espace de swap est utilisé sous Linux quand il n'y a plus ou pas assez d'espace en mémoire vive. Il est donc important mais pas obligatoire d'en avoir un. Il est d'usage d'avoir au moins une partition de type swap, mais il est tout à fait possible de s'en passer ou d'en avoir plusieurs.

Dans certains cas, comme un besoin temporaire de swap, des tests, un manque de place pour ajouter une partition swap dédiée, ou un bête oubli lors de l'installation, nous pouvons être amener à créer un fichier de swap, plutôt qu'une partition.

Création du fichier

La création du fichier peut se faire avec l'outil dd, en ligne de commande, afin de définir une taille, prenons par exemple 512Mo:

dd if=/dev/zero of=/swap bs=1M count=512

A l'issue de cette commande, nous aurons un fichier /swap de 512Mo rempli de zéros.

Formatage du fichier

La swap utilise son propre système de fichier, simplifié et adapté à la gestion de données en mémoire. Notre fichier /swap doit donc être formaté et marqué pour être identifié comme espace swap:

mkswap /swap

Montage du fichier

Nous pouvons maintenant utiliser ce fichier directement à chaud avec la commande suivante:

swapon /swap

A l'inverse pour l'arrêter:

swapoff /swap

Pour vérifier que cette nouvelle swap est bien utilisée nous pouvons utiliser plusieurs commandes:

free
swapon -s

Ajout dans fstab

Pour utiliser ce fichier de swap de manière plus permanente (c'est à dire même après un redemarrage), il faut l'ajouter dans /etc/fstab. Il suffit d'y ajouter la ligne:

/swap swap swap defaults 0 0

Avec ça, au prochain reboot, le fichier /swap sera monté en swap, il est de type swap et utilisera les options par défaut.

samedi, janvier 1 2011 21:30

Passage de Fedora 13 à Fedora 14

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles.

En premier lieu, il faut télécharger les paquets fedora-release et fedora-release-notes de la Fedora 14:

Après les avoir téléchargées, l'installation de ces mises à jour se fait avec la commande yum ou rpm:

rpm -Uvh fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

ou

yum install fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

Premier soucis, le seul d'ailleurs, kudzu l'utilitaire de detection et configuration de nouveau matériel à disparu de la Fedora 14. Je ne sais pas par quoi il sera remplacé, mais il faut le supprimer si on veut éviter des problèmes de dépendances.

yum remove kudzu

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

On termine ensuite par la mise à jour globale:

yum update

Après quelques dizaines (voire centaines) de paquets mis à jour, un redémarrage s'impose. Il ne reste plus qu'à vérifier que le système a bien démarré sur un kernel Fedora 14 avec la commande "uname -r" par exemple.

Passage de Fedora 12 à Fedora 13

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles. Mais cela n'empêche pas de faire une sauvegarde avant, et surtout de tester la procédure dans une machine virtuelle par exemple. Vaut mieux être prudent.

Il faut d'abord télécharger les informations pour les RPMs de la Fedora 13, à savoir les paquets fedora-release et fedora-release-notes. Ils sont disponibles sur n'importe quel mirroir:

A installer avec yum install paquet.rpm ou rpm -Uvh paquet.rpm.

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

Et enfin terminer par la mise à jour globale:

yum update

On termine par un redemarrage, histoire de passer sur le kernel de la Fedora 13. Et voilà!

Passage de Fedora 11 à Fedora 12

On suit la méthode habituelle, en commençant par un éventuel nettoyage des RPMs installés sur la machine avec la commande package-cleanup. Le but étant de trouver les doublons et les paquets orphelins (qui ne sont plus dans les dépôts). Normalement seuls les paquets en double peuvent poser problème.

package-cleanup --cleandupes
package-cleanup --orphans

Il peut être intéressant aussi avant de faire une mise à jour d'une telle ampleur de vérifier les fichiers de configuration non actualisés (les .rpmnew).

find / -name "*.rpmnew"

Nous pouvons commencer la mise à jour, en mettant d'abord à jour les paquets fedora-release:

rpm -Uvh ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-12-1.noarch.rpm ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-notes-12.0.0-4.fc12.noarch.rpm

Maintenant que notre Fedora pense être une Fedora 12, nous pouvons lancer la mise à jour à proprement parler:

yum clean all
yum upgrade rpm yum

Il vaut mieux commencer par nettoyer la base yum, histoire que celui-ci télécharge bien les informations des dépôts de la Fedora 12. Ensuite il est recommandé de mettre à jour yum et rpm, afin de gérer de nouvelles fonctionnalités éventuelles dans la gestion des paquets RPM.

Ensuite nous terminons avec la mise à jour globale:

yum update

NB: Pour rappel je teste ces mises à jour sur des machines virtuelles avant de passer aux machines physiques. Et celà concerne des Fedora installées pour jouer le rôle de serveur, donc avec un minimum de RPMs. Sur une installation classique (bureautique), il y aura plus de RPMs installés (> 1000 paquets), et donc d'autant plus de chance qu'un problème de dépendance se glisse dans votre mise à jour. N'oubliez donc pas de sauvegarder avant!

PS: désolé du retard, je n'ai pas eu le temps de valider la procédure plus tôt. Celle pour passer de F12 à F13 ne devrait pas tarder.

mardi, octobre 12 2010 14:57

Rechercher une adresse MAC avec grep

Pratique de pouvoir rechercher ou valider une adresse MAC avec une commande shell, et comme grep supporte très bien les expressions régulières cela est même facile à utiliser.

Pour construire notre expression régulière, il faut réfléchir sur ce que nous cherchons. Une adresse mac est toujours représentée comme suit: XX:XX:XX:XX:XX:XX soit 6 champs de 2 caractères. Mais il y a le séparateur ":" que nous devons aussi prendre en compte. Le plus simple est de ce dire que nous cherchons en fait 5 blocs de 2 caractères suivit du ":" avec à la fin un bloc de 2 caractères.

Concernant les caractères constituant nos blocs, vu qu'il s'agit en fait d'une notation hexadécimale, il faut aussi en tenir compte. Pas la peine par exemple de rechercher toute lettre de l'alphabet, l'hexadécimal s'arrête à F. Nous pouvons aussi avoir des chiffres de 0 à 9. Pour signifier en expression régulière que nous recherchons des chiffres de 0 à 9 il faut utiliser la syntaxe suivante:

[0-9]

Pour les lettres de A à F celle-ci:

[A-F]

Il suffit de mélanger les 2 pour avoir la plage hexadécimale de 0 à F, et nous allons rajouter les minuscules, ce qui donne:

[0-9a-fA-F]

Cette expression donne un résultat dès qu'elle tombe sur un chiffre de 0 à 9, ou 1 lettre de a à f, ou 1 lettre de A à F. C'est déjà un bon début.

Pour indiquer dans une expression régulière le nombre d'occurrence que nous recherchons, il suffit de préciser ce nombre entre accolade. Nos blocs sont toujours constitués de 2 caractères, donc:

[0-9a-fA-F]{2}

Il nous manque plus que le séparateur ":" qui est un caractère spéciaux en expression régulière, il faut donc l'échapper avec \. Notre premier bloc sera donc:

[0-9a-fA-F]{2}\:

Ce premier bloc dans une adresse mac est présent 5 fois, nous allons donc dire que tout ce bloc doit être vu 5 fois de suite. Pour délimiter un bloc, il faut utiliser les parenthèses:

([0-9a-fA-F]{2}\:){5}

Nous terminons avec le dernier bloc, qui est en fait similaire au premier mais sans le séparateur:

([0-9a-fA-F]{2}

L'expression régulière complète est donc:

([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}

Nous pouvons la tester avec grep et l'option -E ou directement avec la commande egrep. Par exemple sur les fichiers de configuration réseau d'une Fedora:

cd /etc/sysconfig/network-scripts/
egrep -ho "([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}" ifcfg-eth*

options: -h pour ne pas indiquer le nom du fichier et -o pour n'afficher que ce qui correspond au résultat et non toute la ligne complète

mardi, septembre 28 2010 21:13

Darktable

Si vous êtes passionnés de photo, ou simplement que vous disposez d'un reflex numérique, il existe déjà quelques bons logiciels sous Linux pour traiter les images RAW. Il y a depuis peu un petit nouveau très prometteur, il s'agit de Darktable (on apprecie le clin d'oeil dans le nom en rapport avec Adobe Lightroom).

darktable 0.6

Darktable est sortie en version 0.6 à la fin du mois d'août et il est déjà suffisamment fonctionnel pour l'utiliser. Il dispose des fonctionnalités principales suivantes:

  • Une édition des images complètement non destructive (souvent les logiciels de traitement ne savent pas prendre en compte toutes les informations de l'image).
  • Les opérations sur les images sont modulaires et extensibles (support des plug-ins)
  • Des requêtes de base de données flexibles, gestion avancée des tags
  • Notation des images
  • Support de nombreux standards pour l'importation (jpeg, cr2, hdr, pfm, etc)
  • Une interface sans latence, plein écran et zoomable
  • Des opérations évoluées sur les images: rotation/rognage, correction des couleurs, gestion des profils de couleurs, contrôle de l'exposition, zone flexible de correspondance des couleurs (ex rendre toutes les couleurs monochrome sauf le rouge, imiter un filtre polarisant, etc), correction des distorsions des objectifs (grâce à lensfun), balance des blancs, courbes, etc
  • Support des profils icc: sRGB, Adobe RGB, xyz, et RGB linéaire.
  • Exportation vers différents formats (.jpg, .png, .tiff) mais aussi en 16 bits (.ppm et .tiff) et en HDR linéaire (.exr, .pfm)
  • Lecture et écriture des données EXIF (grâce à libexiv2)
  • Re-importation automatique des images si celles-ci ont été modifié entre temps (grâce à inotify)
  • Fonctionne sous Linux et Mac OS X
  • Système d'exportation modulaire supportant les albums picasaweb, sur disque ou par mail.
  • Des plugins artistiques

Du coup, j'ai fais une demande pour packager ce logiciel, il est maintenant dans les dépôts update-testing et devrait être disponibles dans les jours qui suivent. N'hesitez pas à l'essayer:

su -c yum install --enablerepo=updates-testing darktable

dimanche, août 22 2010 21:15

Bash plus intelligent?

Il est possible de rendre bash plus intelligent, en permettant le complètement des commandes (completion en anglais) jusque dans leurs arguments, du moins pour certaines. Pour cela il faut installer le logiciel bash-completion. Le paquet pour Fedora est bien adapté aux commandes Fedora ce qui le rend très utile. Il n'y a rien de magique, ce n'est pas non plus de l'introspection dynamique, bash-completion repose sur une sorte de base de données qui référence les commandes et leurs arguments.

Enfin bref, pour l'installer, sous Fedora, il suffit de taper la commande suivante:

yum install bash-completion

Pour l'activer sans avoir à se deloguer:

source /etc/bash-completion

Voici des exemples surpuissants que vous pouvez vous aussi utiliser chez vous:

ser[tab] ht[tab] res[tab] => service httpd restart
yu[tab] ins[tab] ligh[tab] => yum install lighttpd

Et oui encore un truc de faignasse d'admin :)

Une dernière petite astuce pratique, toujours sur la completion. Qui n'a jamais tapé trop vite au clavier un chemin, par ex "/Etc" au lieu de "/etc" à cause de la touche shift pour faire le "/"? Et bien il est possible de rendre insensible à la casse le complètement des commandes et chemins sous Bash. Pour cela il faut éditer le fichier "/etc/inputrc" pour imposer ce réglage de manière globale ou sinon "~/.inputrc" pour votre utilisateur seulement et ajouter une ligne (à la fin par exemple):

set completion-ignore-case on

Il faut se déloguer par contre, a moins que quelqu'un connaisse l'astuce pour faire relire ce fichier par bash. Pour vérifier que ça marche:

cd /E[tab] => cd /etc

Et voilà :)

jeudi, décembre 31 2009 10:31

Passage de Fedora 10 à Fedora 11

Toujours le même sujet, les sorties de Fedora s'enchainant, il faut bien migrer vers ses nouvelles versions afin de profiter de toutes les nouveautés qu'elles apportent. La Fedora 10 ayant été déclaré en fin de vie à partir du 17 décembre 2009, elles ne recevra plus de mis à jour. Voici la procédure pour passer d'une Fedora 10 à une Fedora 11 sur un serveur.

Attention, il vaut mieux tester cette procédure sur un serveur de backup plutôt que directement sur un serveur important. La gestion des problèmes de dépendances nécessite quand même de savoir exactement ce que l'on fait. Le cas décrit ci-dessous a été exécuté sur plusieurs serveurs sans problème, mais cela peut varier en fonction du nombre de paquets RPMs installés et de l'architecture (ici 32bits).

Pour les ordinateurs de bureau, c'est à dire avec un environnement graphique et beaucoup de paquets RPMs, il existe l'outil preupgrade pour effectuer la mise à jour. Mais preupgrade sur un serveur distant n'est pas ce qui ya de plus évident, on verra donc plutôt la méthode manuelle.

Les Préparatifs

On s'assure déjà que notre serveur soit à jour:

[root@serveur]# yum update

Il est recommandé d'avoir un système le plus propre possible, on vérifie déjà les paquets orphelins (qui ne sont plus dans aucun dépôts accessibles):

[root@serveur]# package-cleanup --orphans
Setting up yum
kernel-2..12-170.2.5.fc10.i686.276
kernel-devel-2.6.27.12-170.2.5.fc10.i686
[root@serveur]# 

Ici rien de grave, juste un vieux kernel. On les supprimera plus tard.

Dernier nettoyage important, les fichiers de configuration:

[root@serveur]# find / -name "*.rpm?*"

Les fichiers *.rpmnew seront à regarder au cas par cas. Ils sont crées lors des mises à jour, certains logiciels en évoluant apportent des changements dans leur configuration. Il faut donc s'assurer d'être le plus à jour possible, sinon un beau matin un service ne redémarrera plus à cause d'un fichier de configuration obsolète. Bien sûr ce fichier est créé que si vous aviez apporté des modifications dans le fichier original. Les fichiers *.rpmsave sont moins problématique car ils ont déjà été mis de coté, la nouvelle configuration est déjà en cours d'utilisation.

La mise à jour

Elle commence par les paquets identifiant la version de Fedora installée:

[root@serveur]# rpm -Uvh fedora-release-*11*

On nettoie le cache de yum devenu obsolète:

[root@serveur]# yum clean all

La mise à jour de yum et rpm

Il est ensuite fortement recommandé de d'abord mettre à jour "rpm" et "yum", même si cela tire par dépendance une grosse partie des autres mises à jour:

[root@serveur]# yum upgrade rpm yum

La résolution des problèmes de dépendances de httpd

Normalement, le passage de Fedora 10 à Fedora 11 va poser quelques petits problème car certains paquets sont plus récents dans les dépôts updates de la Fedora 10 que dans ceux de la Fedora 11. C'est le cas par exemple de httpd ce qui posera problème sur la libcrypto:

[root@serveur]# yum list httpd
Paquets installés
httpd.i386                                                                                                       2.2.14-1.fc10                                                                                                       @updates
Paquets disponibles
httpd.i586                                                                                                       2.2.13-1.fc11                                                                                                       updates

On ne voit pas forcement directement ce que vient faire httpd dans la mise à jour de yum, mais peut être que la libcrypto est nécessaire à yum pour récupérer les paquets via HTTPS. Si httpd (de la F10) s'attend à une version précise de libcrypto (de la F10) et que yum (de la F11) en demande une plus récente, cela pose problème compte tenu du fait que le httpd de la F11 n'est pas utilisé (car version inférieure). On va donc retirer httpd (de la F10) le temps de la mise à jour:

[root@serveur]# rpm -e httpd httpd-tools mod_dav_svn mod_python mod_ssl --nodeps

La configuration sera sauvegardée en *.rpmsave.

On relance la mise à jour de rpm et yum, cette fois sur nos serveurs sans soucis.

On oublie pas de réinstaller ce qu'on a retiré juste avant, afin de passer en httpd de la F11:

[root@serveur]# yum install httpd mod_dav_svn mod_python mod_ssl httpd-tools

Cette fois tout le monde utilise la bonne version de libcrypto, plus de problème de dépendance.

La mise à jour complète

Une fois rpm et yum mis à jour, ils seront plus aptes à gérer la mise à jour complète du système. On oublie pas de nettoyer encore une fois le cache de yum, au cas où le format de données aurait changé entre le yum de la F10 et le yum de la F11. On lance enfin la mise à jour complète:

[root@serveur]# yum update

Il faut cette fois s'attendre à une longue liste de RPMs (entre 600 et 900, voire plus si c'est un desktop).

On terminera par la gestion encore une fois des évolutions des fichiers de configuration (les fichiers .rpmsave et .rpmnew). Une nouvelle vérification des paquets orphelins ne fera pas de mal non plus. Après cela on peut redémarrer le serveur afin que celui-ci exploite sans plus attendre les nouveaux kernels de la Fedora 11.

jeudi, mai 21 2009 15:07

Connexion SSH à travers un Proxy Web

Il est possible de faire passer une connexion SSH à travers un proxy web du moment que celui-ci autorise la méthode CONNECT. Cette méthode est utilisée lors des connexions HTTPs par exemple et sert à établir un tunnel HTTP. Il est de ce fait assez courant qu'un proxy (ou serveur mandataire) laisse passer ce genre de communication. Tant mieux car c'est ce que nous allons utiliser.

Pour nous faciliter cette tâche, il existe un utilitaire qui s'occupe d'établir une fausse connexion HTTP entre votre machine et la machine distante. Car un proxy n'est juste qu'un relai, entre une machine sur le réseau local qui demande une requête HTTP, et le serveur distant. Ce logiciel demande donc à notre proxy web, s'il peut se connecter à la machine distante pour communiquer avec elle. Le serveur proxy s'exécute en pensant qu'il va s'agir d'une communication HTTPs, notre logiciel communique donc maintenant avec la machine distante et passe maintenant le relai à la commande ssh. Cet utilitaire s'appelle "corkscrew" (tire-bouchon en anglais), son site officiel est ici.

corkscrew

L'avantage de cette méthode, c'est que la machine distante n'a pas à avoir de configuration spécifique. Le seul problème est quand le proxy web n'est pas autorisé à joindre le port 22 (ssh) sur une machine distante, car c'est assez rare que des machines s'échangent des données en HTTP avec ce port. Dans ce cas, il suffit soit de faire une redirection de port sur la machine distante (ip proxy => port 443 => port 22/ssh), soit de lancer le démon ssh en écoute sur un autre port. Il suffira de choisir le port 443 qui correspond habituellement au HTTPs pour être tranquille avec ce genre de filtrage.

Comment parler à votre proxy

Pour tester votre proxy:

[tipiak@client ~]$ nc proxy.reseau.local 3128
CONNECT serveur.distant.com:22 HTTP/1.1
Host: serveur.distant.com:22 (appuyer sur entrée 2 fois)
....
blabla...
Access Denied
...

Si le proxy vous répond par une page html, comme quoi vous n'avez pas acces, c'est donc que les communications vers le port 22 sont interdites. Restera la méthode vers le port 443 qui sera en fait redirigé vers votre démon ssh:

[tipiak@client ~]$ nc proxy.reseau.local 3128
CONNECT serveur.distant.com:443 HTTP/1.1
Host: serveur.distant.com:443

HTTP/1.0 200 Connection established

Voilà, c'est mieux.

Configuration du client SSH

La configuration du client SSH permet d'indiquer une commande qui sert à établir une connexion à un intermediaire. C'est avec ce paramètre que nous allons indiquer qu'il faille utiliser corkscrew. Soit vous modifier la configuration du client ssh sur la machine de manière globale, et donc toutes les connexions ssh passeront par corkscrew, soit vous utilisez un fichier de configuration annexe qui sera utilisé au cas par cas. Le fichier de configuration du client est /etc/ssh/ssh_config. Pour avoir la manière globale suffit de le modifier directement, sinon il faut le copier dans un autre fichier (par exemple cp /etc/ssh/ssh_config ~/corkscrew.conf).

Pour utiliser corkscrew, il faut ajouter cette ligne:

# remplacer proxy.reseau.local par l'adresse du proxy
# remplacer 3128 par le port du proxy
ProxyCommand /usr/local/bin/corkscrew proxy.reseau.local 3128 %h %p

L'appel à la commande "ssh serveur.distant.com" sera donc remplacé par "/usr/local/bin/corkscrew proxy.reseau.local 3128 serveur.distant.com 22", dans le cas de la configuration globale. Si vous avez opté pour la manière au cas par cas, il faut indiquer à la commande ssh notre fichier de configuration spécifique:

ssh -f ~/corkscrew.conf toto@serveur.distant.com

Si comme expliquez plus haut, le port 22 est interdit, on précisera le numero de port distant (ici 443):

ssh -f ~/corkscrew.conf toto@serveur.distant.com -p443

Et voilà.

Configuration éventuelle du serveur SSH

Cette configuration n'intervient que si le port 22 par défaut pour le protocole SSH est interdit par le serveur proxy. Il existe 2 méthode pour utiliser un autre port pour votre serveur SSH:

  • Associer le démon sur un autre port pour l'écoute en plus du port 22
  • Utiliser le pare-feu pour rediriger un flux vers le port 22

Associer le démon ssh au port 443

Il faut editer le fichier /etc/ssh/sshd_config et s'assurer d'avoir les lignes suivantes:

Port 22
Port 443

Il ne reste plus qu'à relancer le service sshd:

[root@serveur ~]# service sshd restart

Rediriger la connexion vers le port 22

Cette méthode est plus complexe mais si vous avez déjà un serveur web en HTTPs sur votre serveur distant vous n'aurez pas trop le choix. Pour cela on rajoute une configuration dans le pare-feu:

*nat
:PREROUTING ACCEPT [7:913]
:POSTROUTING ACCEPT [1:83]
:OUTPUT ACCEPT [1:83]
# Requetes entrantes
-A PREROUTING -s <IP PUBLIQUE DU PROXY> -p tcp -m tcp --dport 443 -j DNAT --to-destination <IP PUBLIQUE DU SERVEUR>:22
# Requetes sortantes
-A POSTROUTING -s <IP PUBLIQUE DU SERVEUR> -p tcp -m tcp --sport 22 -d <IP PUBLIQUE DU PROXY> -j SNAT --to-source <IP PUBLIQUE DU SERVEUR>:443
COMMIT
*filter
[...]
# HTTPS
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
[...]

Cette configuration se fait dans le fichier /etc/sysconfig/iptables associée au service iptables (à relancer après les modifications). Ceci est bien sûr un exemple, qu'il faudra adapter.

Autres méthodes

Il existe d'autres utilitaires que corkscrew, comme hts ou httptunnel (cf billet du blog de Nicolargo). Les man-pages de ssh_config semble aussi nous indiquer que c'est possible avec netcat/nc.

L'ultime solution, si le proxy n'accepte pas les tunnels HTTP, reste l'utilisation d'un shell dans une page web, avec l'excellent AjaxTerm (attention à la sécurité).

samedi, mai 16 2009 15:45

Partager une souris et un clavier entre plusieurs PC

De nos jours il est presque normal d'avoir plusieurs machines sur son bureau, ne serait-ce un poste de travail fixe, et un ordinateur portable. Plutôt que de multiplier les allers-retours entre les claviers et souris de toutes ces machines, il existe un outils permettant d'utiliser qu'un seul de ces éléments. Cet outil s'appelle "Synergy", il est libre et en plus multi-plateformes. Pour ceux qui connaissent, il s'agit d'une sorte de KVM en version logiciel.

Pour plus d'information: http://synergy2.sourceforge.net/ (le site officiel du projet).

Cet outil existe depuis assez longtemps, et sa configuration n'a jamais été très compliqué, mais avec l'interface graphique plus récente "QuickSynergy" ça devient presque ridicule de simplicitié.

On commence simplement par installer quicksynergy, sur les 2 machines, ce qui par dépendance devra tirer synergy.

[root@pc] # yum install quicksynergy

Sur le poste qui servira d'entrée principale pour la saisie, là où le clavier et la souris seront donc mutualisés, il suffit de lancer quicksynergy. Cette application possède 2 onglets, pour le "serveur" qui partage son clavier et sa souris, il faut aller sur l'onglet "share" (partage). Cet onglet présente 4 boites de saisies aux positions relatives des autres machines; celles dont vous aurez entré le nom d'hôtes seront accessibles en déplaçant la souris sur le bord choisi de l'écran.

QuickSynergy-Share

Cette capture autorisera donc le client Synergy sur la machine "portable" à communiquer avec notre serveur Synergy. Sur la machine portable, il suffira de lancer quicksynergy, sur l'onglet "use" (utiliser), et d'entrer l'adresse IP du poste partageant son ensemble clavier/souris.

QuickSynergy-Use

Si la liaison est effective, deplacer la souris sur le bord de l'ecran que vous avez choisi et ho miracle! la souris bougera sur l'autre machine. Du coup le clavier aussi. On peut difficilement faire plus simple.

Pour le parefeu, si vous en avez un sur le poste de partage, il faut autoriser le port 24800 en tcp.

jeudi, mars 12 2009 14:08

Désactiver le login graphique sous OpenSolaris

Un petit pense-bête qui concerne la désactivation du login graphique sous OpenSolaris:

svcadm disable svc:/application/graphical-login/gdm

svcadm étant le gestionnaire de service, un peu l'équivalent de chkconfig sous Fedora/RedHat.

mercredi, mars 4 2009 16:06

Tester un template ERB

ERB est un moteur de template associé au langage Ruby.

Lire la suite...

lundi, janvier 26 2009 23:36

TCP/IP over Bluetooth

Comment monter un réseau TCP/IP sur une liaison Bluetooth.

Lire la suite...

vendredi, janvier 9 2009 17:34

Raccourcis Bash bien pratiques

Quelques raccourcis clavier indispensables.

Lire la suite...