Merci de fermer les portes !

J'aurais pu sous-titrer ce billet Quand la confiance ne règne plus :-/

Il m 'avait déjà été demandé par le passé de sécuriser l'accès à un serveur Subversion mais vu les effets de bord, j'étais revenu en arrière, histoire de pas embêter mes petits camarades développeurs.
Comme toutes les choses ont une fin, c'est reparti de plus belle.
Heureusement, cette fois-ci, j'ai réussi à m'y coller, non sans avoir foutu un beau bordel pendant quelques heures.
Je vais quand même tenter de vous expliquer ce qu'il y avait à faire et comment je suis arrivé à mes fins.
Ça vous semblera peut-être très simple mais il y avait des pièges.
Imaginons un référentiel Subversion ayant la structure suivante :

/
├── Projet1
│   ├── branches
│   ├── tags
│   └── trunk
└── Projet2
    ├── branches
    ├── tags
    └── trunk

Un exemple simple de fichier d'accès est le suivant :

[groups]
projet1_devs=john, joe
projet1_admins=john
projet2_devs=jane, joe
projet2_admins=jane

[/]
* = r

[Projet1]
@projet1_devs = r

[Projet1/tags]
@projet1_admins = rw
@projet1_devs = r

[Projet1/branches]
@projet1_devs = rw

#Et ainsi de suite pour chaque projet

Jusque là, c'est pas trop grave mais tous les développeurs peuvent voir le code de chaque projet mais ne peuvent pas y écrire, on est typiquement dans le cas classique tel que décrit dans la doc.
Tant que l'on a confiance, pas de problème mais quand le doute vous habite, ça va plus.
Allons-y, fermons les portes !

Le premier réflexe est de retirer la partie liée au /... C'est une bonne idée mais dont le principal effet de bord est de gêner les outils de navigation dans le référentiel et qui oblige le développeur à connaître l'URL complète vers son projet.
Alors comment faire pour continuer à pouvoir browser tranquillement mais que dans les projets où on a les droits ?
Et bien, au lieu de mettre des droits, on en retire explicitement :

[groups]
projet1_devs=john, joe
projet1_admins=john
projet2_devs=jane, joe
projet2_admins=jane

[/]
* = r

[Projet1]
* =
@projet1_devs = r

[Projet1/tags]
* =
@projet1_admins = rw
@projet1_devs = r

[Projet1/branches]
* = 
@projet1_devs = rw

#Et ainsi de suite pour chaque projet

Vous avez remarqué la subtilité ?
Pour chaque section de projet, il suffit de retirer les droits mis à tous.
Bon, c'est simple mais fallait y penser.

Et PAM le SSH !!

M'amusant à me connecter en SSH depuis mon portable sur mon ordi fixe, j'ai constaté un comportement curieux qui m'a largement foutu les boules :D
En effet, comme à mon habitude, j'ai foiré mon premier essai de mot de passe. Jusque là, il n'y a rien d'exceptionnel.
Le truc exceptionnel est que j'ai pu ouvrir ma session avec un mot de passe faux !!!!
Comme je venais en plus d'avoir un message me précisant que l'empreinte[1] avait changé, j'ai commencé à psychoter mais... Mais il était tard alors je suis allé me coucher :D

Notes

[1] Fingerprint pour les anglophones

Lire la suite...

Une véritable hécatombe

Il y a des moments comme ça où pour une raison inconnue, tout part en sucette en même temps.

Les trois derniers jours furent comme ça.

Ça a commencé par un magnifique blocage de l'Os du Bien dont j'ai rapidement trouvé la cause. Mon bon vieux disque dur de 80Go servant au miroir (cf. ce billet[1]) s'est totalement bloqué avec un magnifique bruit de disque qui démarre, s'arrête, redémarre, s'arrête...[2]
Même pas mal, grâce au généreux don d'un collègue, il me reste deux disques de 250Go que je décide donc de tester sur le champ après avoir déconnecté mon bon vieux 80Go.
Là, surprise, tout plein de messages d'erreur se sont affichés !! Et une erreur de CRC, une autre par là sans discontinuer !
Là où c'est devenu bizarre, c'est quand les tests SMART ont annoncés que tout allait bien, que ce soit via l'utilitaire du constructeur ou les smartmontools. Mystère et boule de GEOM !

Quand ça peut foirer, ça foire... Et ça a foiré !! Le serveur que je gère à la MJC est tombé en rade hier. Je m'y suis donc rendu pour constater la perte d'un des disques du RAID-5.
C'est pas grave, normalement, on s'en sort bien avec 2 disques sur 3... Sauf là !! Pour une autre raison inconnue, le boot manager du FreeBSD[3] en place m'annonce que la partition de démarrage n'est pas en UFS.
Bon, j'ai donc re-gravé les DVD d'installation et je vais donc aller, ce soir, sauvegarder ce qui est encore en vie avant de ré-installer le strict minimum.

Mais revenons à ma machine. Hier soir, je rebranche l'ancien disque, histoire de voir. Bien sûr, il a redémarré juste pour m'emmerder. Cela m'a permis de remonter le miroir GEOM et de repartir comme en 14... Jusqu'à ce qu'il me lâche à nouveau :)

Notes

[1] Depuis ce billet, le fameux disque n'est toujours pas mort. Un véritable exploit pour un disque à l'agonie :D

[2] Bon, ok, j'arrête

[3] Encore ??!!! Ben oui, normalement ça marche !

En Taro Adun

En fouillant dans mes CDs, j'ai retrouvé mon exemplaire de StarCraft. Et là, je suis retombé en enfance[1] et j'ai décidé d'y rejouer.
Comment faire quand on n'a plus de Windows ou que l'on a pas envie de s'en servir ?
Et bien, on utilise ''Wine'' !!
Cet excellent billet relate donc l'installation de Wine et sa configuration sous Ubuntu et FreeBSD. et vous verrez qu'il y en a un pour lequel c'est nettement plus facile :D

Notes

[1] ou presque

Lire la suite...

A poil !!!

C'est pas dans mes habitudes mais je viens de me rendre compte que j'étais à poil !!
Que les femmes se calment et que leurs maris se rassurent, je suis actuellement encore complêtement habillé[1]. Il s'agissait en fait d'une métaphore.
Bon, venons-en aux faits et à l'explication de mon apoilitude.
Dpeuis quelques jours, l'Os du bien a du mal à coucher avec ma FreeBox, cette dernière refusant de lui donner son adresse[2]. Du coup, j'ai beaucoup joué les entremetteurs[3] pour que le dialogue reprenne.
D'un point de vue purement technique, j'ai énormément utilisé l'interface de configuration du mode routeur de la FreeBox ainsi qu'avec la configuration Wifi. Passons sur ces deux points dont je ferai peut-être un article[4].
A force de jouer avec l'interface, une question m'est venue à l'esprit :

Tiens, c'est marrant, j'ai configuré l'IPv6 sur ma FreeBox et pourtant, y a rien qui n'ait trait à l'IPv6 sur l'interface de config du routeur !


Donc forcément, je réfléchis et je me dis que c'est normal, vu que grâce à l'IPv6, toutes mes machines ont une adresse sur le Web et qu'il n'y a donc pas besoin de NAT[5].
Poursuivant ma réflexion, je finis par me demander comment mon mur de feu est configuré et là, c'est la panique !!!
Depuis que j'ai fait mes premiers essais en v6, je me balade à poil sur le Net !!!
Après avoir repris mon sang-froid, je vérifie quand même avec Google et je tombe . Plus de doute possible, je rajoute donc, avant de faire mieux, les règles suivantes dans mon PF après les règles ICMPv6:

pass out quick on ${ext_if} inet6
block in log quick on ${ext_if} inet6


Maintenant, ma paranoïa a repris le dessus donc va falloir que je vérifie tout ça depuis une bécane IPv6-aware se trouvant sur le Net :-/

Pour le fun, un petit lien sympa pour ceusse qui auraient une config avec un routeur à eux : http://ip6.fr/free-broute/

Voilou !

Notes

[1] En même temps, j'ai aucune raison d'être à poil au boulot

[2] IP, ne voyez rien de pervers là-dedans

[3] Encore un mot à la con, tiens :D

[4] D'ailleurs, la liste questions@freebsd-fr.org n'a fourni aucune réponse sur ces problèmes

[5] Rien à voir avec Nat

- page 1 de 3