Un geekdeplus’s Blog

Archive for the ‘Linux’ Category

Pour le boulot, j’ai cherché une solution de reverse proxy. Et j’ai trouvé Vulture. Ça fait plus d’un an que je l’utilise franchement c’est de la balle !

Vulture est un reverse proxy qui utilise la technologie d’Apache. Bon si je dois vous expliquer ce qu’est Apache, je ne sais pas comment vous vous êtes retrouvé ici !

Vulture, n’est rien d’autre qu’une application qui permet de configurer Apache pour faire un revese proxy. Mais permet facilement de faire des règles de réécritures, et permet aussi de faire du proxy SSO.

Je l’utilise pour permettre aux internautes consultant le site de mon entreprise de consulter des ressources (extérieurs) qui font une authentification par IP. Le fait de passer par un reverse proxy, l’IP présentée à ces ressources est bien celle de mon entreprise (presque comme si j’étais en interne).

En autre, Vulture permet de :

  • facilement rendre disponible une application web interne à l’extérieur.
  • sécuriser une partie interne d’un serveur. Vous avez un serveur qui héberge une appli interne (http://monserveurinterne/appli1) et une appli externe (http://monserveurinterne/appli2). Vous pouvez du coup, mettre ce serveur derrière un firewall (votre serveur est « masqué ») et faire un reverse proxy que sur l’appli externe (http://monappliexterne.domain.com -> http://monserveurinterne/appli2)
  • faire un portail SSO. Vous avez plusieurs applis qui utilisent un annuaire LDAP pour l’authentification. Si vous passez de l’appli1 vers l’appli2 vous devez vous ré-authentifier. Avec Vulture vous vous connectez à l’appli1, et ensuite vulture rejoue l’authentification quand vous passez à l’appli2. Rien besoin d’installer en plus !
  • gérer des acl en fonction d’un annuaire ldalp, radius, pki. Permet de dire que le groupe1 a accès aux applis 1,2 et 4 et que le groupe2 à accès aux applis 1,3 et 5.
  • permettre de cacher un login et un mot de passe. Vous avez une appli qui n’est accessible que sur un login / un mot de passe. Bien sur vous ne voulez pas diffuser ce login/mdp à tout le monde. Vous pouvez du coup réécrire l’authentification avec ce login/mdp.
  • intégration de mod_security. Permet de protéger une appli des attaques générales type injection ….

Voilà, je crois que c’est à peut près tout. Je vous invite à tester.

Pour les tutos d’install, je vous conseil de site de vulture.

Au fait, merci encore à Vulture 😉

Cet article explique comment, sous linux, changer une ligne d’un fichier se trouvant dans plusieurs répertoires.

Ceci est plus une note qu’une véritable explication.

Soit la structure:

/home/user1/fichier.txt

/home/user2/fichier.txt

..

Se placer dans /home et lancer la commande suivante:

find . -maxdepth 2 -name fichier.txt -print | while read i
do
sed 's|TEXTE_A_CHERCHER|TEXTE_DE_REMPLACEMENT|g' $i > $i.tmp && mv $i.tmp $i
done

Petite astuce: Si le nom de votre fichier contient des espaces, cela ne fonctionne pas.

Solution: Remplacer les espaces par des underscores. Pour cela:

find . -maxdepth 2 -name 'Fichier\ avec\ des\ espaces.txt' -exec rename 's/\s+/_/g' {} \;

Ce qui nous donnera Fichier_avec_des_espaces.txt.

-maxdepth 2 permet de ne pas aller dans les sous répertoires des utilisateurs (la commande n’ira pas dans /home/user1/dir1).

inspiration très fortes de ces 2 articles:

http://forums.devshed.com/showpost.php?p=633270&postcount=4

http://www.commandlinefu.com/commands/view/760/find-recursively-from-current-directory-down-files-and-directories-whose-names-contain-single-or-multiple-whitespaces-and-replace-each-such-occurrence-with-a-single-underscore.

Pendant bien longtemps je m’étais résigné à entrer mes login et mots de passe à la main sous prétexte que les clés SSH c’est compliqué.

Et ben, je me suis trompé et je peux vous assurer que c’est super pratique et simple à mettre en oeuvre.

D’abord il faut se créer une clé ssh

login@machine:# ssh-keygen -t dsa -f nomdelacle
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
f7:35:e1:eb:c8:73:6a:75:01:51:62:ab:14:0f:55:91 login@machine

Vos clés se trouvent maintenant sous votre home dans le répertoire .ssh (cd ~/.ssh). Il y a 2 fichiers test et test.pub.

  • test est votre clé privé
  • test.pub est votre clé public

Au moment de la génération de la clé, vous pouvez la protéger par un mot de passe. Il vous sera demandé ensuite à chaque fois que vous utilisez votre clé. Sauf si vous utilisez un agent ssh. Voir plus loin.

Partage de la clé publique

Pour pouvoir se connecter sur une autre machine avec cette clé, vous devez copier votre clé publique sur le serveur de destination.

Pour cela:

ssh-copy-id -i ~/.ssh/test.pub logindistant@serveursshdistant

On vous demande alors le mot de passe du login distant. La clé est copiée et configurée pour être utilisée.

Maintenant vous pouvez faire un ssh logindistant@serveursshdistant et vous constaterez qu’on vous demande plus votre mot de passe !

Mais dans le cas où l’on veut protéger sa clé pas une passphrase (mot de passe), vous me dirais « ça sert à rien de retaper un autre mot de passe à chaque fois ».

Pour cela on va utiliser keychain qui permet de charger une fois pour toute la session notre clé.

Utilisation de Keychain

Keychain permet de charger la clé par l’intermédiaire de ssh-agent. On lancera keychain dès l’ouverture de la première console en modifiant votre ~/.bashrc

D’abord vous devez installer keychain (selon votre distribution).

Ensuite on modifie le bashrc de votre session

vi ~/.bashrc

A la fin du fichier ajouter les 2 lignes suivantes:

keychain ~/.ssh/test_dsa
source ~/.keychain/votremachine-sh

Fermez votre console et rouvrez là. Si tout se passe bien, on vous demandera votre passphrase et vous aurez le message suivant sur votre console:

* Adding 1 ssh key(s)...
Identity added: /home/votrelogin/.ssh/test_dsa (/home/votrelogin/.ssh/test_dsa)

Il vous suffira ensuite de répéter l’étape du ssh-copy-id sur tous vos serveurs et vous pourrez vous connecter à toutes vos machines sans mot de passe toute la journée.

J’espère que cet article vous aura  permis de franchir le pas. Bien sûr l’utilisation de keychain n’est pas obligatoire. Mais je trouve ça tellement pratique !

Étiquettes : , ,


  • Aucun
  • ungeekdeplus: Debian, mais il existe des paquets pour les autres distrib. Voir sur le site. Attention il y a une nouvelle version 2.x
  • sana: tu l'as testé sur quel système d'exploitation stp??
  • ungeekdeplus: @titon: Coquille modifiée. Merci. Pour les tuto d'install je vous invite à utiliser ceux du site officiel, vous pouvez utiliser les vms déjà pré-

Catégories