Un geekdeplus’s Blog

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😉

Ce billet est une note concernant la sécurisation du switch hp procurve. Il est tiré de cette doc (en anglais) Security_Hardening_ProCurve_Switches_White_Paper

Par défaut un switch hp procurve fonctionne en mode telnet et en http.

Sécurisation du mode telnet :

Se connecter en telnet sur le switch et entrer les commandes suivantes :

ProCurve Switch# conf t
ProCurve Switch(config)# crypto key generate ssh
ProCurve Switch(config)# ip ssh
ProCurve Switch(config)# no telnet-server

Sécurisation du mode http:

Se connecter en ssh sur le switch et entrer les commandes suivantes :

ProCurve Switch(config)# crypto key generate cert 1024
ProCurve Switch(config)# crypto host-cert generate self-signed MM/DD/YYYY 01/01/2030 HOSTNAME OU OU ACERT AC se

où MM/DD/YYYY pour le mois/jour/année courante et HOSTNAME est remplacé par le nom du switch. Les variables OU et ACERT sont utilisées pour remplir les champs OU (Organization Unit) et l’organisme de certification pour le certificat auto-signé.

ProCurve Switch(config)# web-management ssl

ProCurve Switch(config)# no web-management plaintext
ProCurve Switch(config)# write mem

Voilà on peut se connecter en ssh et en https sur le switch mais plus en telnet et en http !

Étiquettes : , ,

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 : , ,

Je ne pouvais pas commencer ce blog sans parler de synergy.

Effectivement, ce logiciel, compatible Windows / Linux permet de partager un clavier et une souris pour plusieurs machines.

Vous installez un serveur et des clients. Perso, il met arrivé d’avoir 3 pc qui utilisaient synergy. On passe d’un pc à l’autre avec la souris en déplacant le curseur hors de l’écran.

Il existe plein de tuto à ce sujet.

En voici un très complet ici et c’est grâce à lui (ou plutôt à son auteur) que j’ai découvert ce formidable outil que j’utilise tous les jours dorénavants.

Celui là est très pratique pour la configuration automatique sur une Ubuntu.

Étiquettes : , ,

Vous trouverez toutes mes pérégrinations concernant mon travail d’informaticien.

Essentiellement Windows 2003 serveur, windows 2008, et beaucoup de linux (SLES 10 et Ubuntu).


  • 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