Tag Archives: Linux

Howto : OTP pour SSH sous Debian GNU/Linux

Qu’est-ce que OTP ?

OTP signifie « One Time Password » ou Mot de passe a Usage Unique. C’est un mot de passe valable pour une seul session.

Pourquoi OTP ?

Le principal avantage de cette méthode est qu’elle ne permet pas de mettre en place de attaques par  rejeux. C’est-à-dire que si quelqu’un enregistre le traffic entre le client et le serveur puis rejoue ce traffic dans le but de s’authentifier, ce dernier ne pourra pas le pass n’etant valide que pour une session qui a déjà été consommé vu qu’il a pu l’enregistrer. OTP tire parti de nombres aléatoires afin de ne pas pouvoir prédire les OTP. (A l’inverse des Sequence Number sous NT4 par exemple).

Comment fonctionne OTP ?

Il y a 3 approches principales :

  • OTP basé sur la synchronisation entre le serveur et le client (valide pour une seule periode de temp).
  • La génération mathématique du password selon le précédent password.
  • L’utilisation de challenge et d’algorithmes mathématique et/ou un compteur.

Il y a plusieurs manières de faire parvenir au client le prochain OTP, avec des token electronique, un client web, d’autre avec un daemon qui tourne sur le mobile du client ou enfin, la plus simple, les OTP sont ecris sur une feuille emporté avec la machine. (La plus connue, mais la plus risqué !! )

Installation

Voici les paquets à installer pour faire fonctionner l’OTP sur Debian.

apt-get install libpam-opie opie-server opie-client

Configuration

Configuration OTP

Il est fortement recommandé de générer les OTP et les challenges en local sur la machine. En effet, si au moment de la création, via ssh par exemple, de vos OTP un hacker sniff votre communication,  il récupère alors les OTP, malgré le SSL dessus qui peut être Spoofé.

Nous allons maintenant générer un challenge OTP associé à votre compte avec un password.

debian:~# opiepasswd –c root
Updating root:
Using MD5 to compute reponses.
Enter new secret pass phrase : passwordopie
Again new secret pass phrase : passwordopie

ID root OTP key is 499 de8236
SLOB HOLM NARY MARE BOLO TORN
debian:~#

J’ai ici créé mon challenge pour me connecter. Mon password opie est « passwordopie » et mon password système est « password ». On vas ensuite généré 50  OTP pour root.

debian:~# opiekey -n 50 499 de8236
Using the MD5 algorithm to compute response.
Enter secret pass phrase : passwordopie
490 … ICI la liste des OTP
debian:~#

Nous avons maintenant créé nos OTP. Il ne nous reste plus qu’a intégré cela avec pam dans l’authentification SSH.

Configuration SSH

Pour permettre a ssh d’employer des OTP il faut modifier le fichier /etc/pam.d/sshd. On doit rajouter la ligne : auth sufficient pam_opie.so

Voici a quoi ressemble le mien :

debian:~# cat /etc/pam.d/sshd
# PAM configuration for the Secure Shell service
auth     sufficient pam_opie.so
auth     required    pam_unix.so
auth     required    pam_deny.so
session  required    pam_limits.so                # Limits
session  optional    pam_motd.so                  # MOTD
session  optional    pam_mail.so standard noenv   # MAILBOX
debian:~#

Se connecter

Un fois cela fait, redémarrez ssh et tentez de vous loguer en SSH.

login as: root
Password: password #celui du système
otp-md5 497 de8236 ext, Response: NIBS COME JILL BEAU ED MOB
Welcome Home Manu ^^
Last login: Fri Jan  7 00:12:11 2011 from 192.168.0.103
debian:~#

OTP Generator

Coté client j’utilise une petite applet java OTPGenerator qui est un s/Key Generator en Java et respecte le RFC 2289. Il dérive du projet JOTP de Harry Mantakos et reprend certaines de ses sources. Un lien vers le logiciel est fourni a la fin du howto. L’applet se trouve dans bin.

Dans password je renseigne passwordopie, le password donné lors de la création du challenge. Ensuite je renseigne la Sequence et le challenge que j’ai pour me connecter. Le hash doit être en MD5 (par defaut, le MD5 est utilisé). En fois cliqué sur calculé nous obtenons la clef a renseigné au serveur. Ici : NIBS COME JILL BEAU ED MOB

jsOTP(404)

jsOTP est un projet sous licence BSD de Jeremy Lin se composant de librairies javascript permettant de calculer ses Token en MD5, MD4, sha-1, ripemd-160 et de les traiter par lots.
Voici une implémentation que j’ai réalisé qui correspond a notre besoin en MD5 avec un format 6 mots. http://manu404.dyndns-home.com/jsotp404/

Il fonctionne en JavaScript avec JqueryUI. Une archive est disponible dans les ressources.

Référence

Logiciels

Documents

Liens

License

Copyright (c) 2011 Istace Emmanuel.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant sections, with Front-Cover Texts : “Howto : OTP pour SSH sous Debian GNU/Linux, and no Back-Cover Texts.  A copy of the license is included in the section entitled “GNU Free Documentation License”.

Copyright (c) 2011 Istace Emmanuel.
Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section altérable, Avec le texte de première page de couverture suivant : « Howto : OTP pour SSH sous Debian GNU/Linux », sans texte de dernière page de couverture. Une copie de cette Licence est incluse dans la section appelée « GNU Free Documentation License » de ce document.

Howto RAID sous Debian GNU/Linux

Voici un howto sur comment utiliser dur RAID5 avec mdadm sous Debian GNU Linux. Une version PDF est disponible.

Introduction

A Propos

Ce Howto a été écrit dans le but monter un serveur avec l’utilisation de RAID sous un système Debian  Lenny 5.0 GNU/Linux. Ce document est sous licence FDL v1.2. Ce Howto s’intègre dans une série de howto destiné a créé un RAID avec LVM et Quota.

Licence

Copyright (c) 2011 Istace Emmanuel.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant sections, with Front-Cover Texts : “Howto RAID LVM & Quota sous Linux”, and no Back-Cover Texts.  A copy of the license is included in the section entitled “GNU Free Documentation License”.

Copyright (c) 2011 Istace Emmanuel.
Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section altérable, Avec le texte de première page de couverture suivant : « Howto RAID LVM & Quota sous Linux », sans texte de dernière page de couverture. Une copie de cette Licence est incluse dans la section appelée « GNU Free Documentation License » de ce document.

Théorie

Un RAID est un ensemble de technique mise en œuvre sur plusieurs disques durs pour augmenter les performances, la sécurité ou la fault tolerance. Il y a 3 principaux types de RAID, le RAID 0, 1, 10 et 5.

RAID 0

Le RAID 0, aussi appelé striping consiste a répartir les données sur deux disque dur comme le montre le shema ci-dessous. Le premier bloc est sur sda et le second sur sdb. Sa capacité est egale a la taille du plus petit disque du RAID multiplié par le nombre de disque. Par exemple 1disque de 300Go et deux disque de 250Go en RAID 0 donnent une capacité totale de 750 Go (250 * 3). Malheureusement avec ce type de RAID il n’y a aucune redondance et donc, la perte d’un des disque provoque une perte de donnée.

RAID 1

Le RAID 1 ou mirroring consiste a utiliser n disque redondant (au minimum 2) et e copier sur chacun les mêmes données. Sa capacité est egale a celle du plus petit disque dur du RAID, au niveau de lka fiabilité par contre, le gain est évident. Elle accepte une déffaillance de n-1 disques. Ainsi, si nous mettons 4 disque de 200Go, nous aurons 200Go d’espace disponible et on pourra perdre 3 disque dur dans le RAID avant de perdre des données. Malheurement les couts sont proportionnelle au nombre de mirror alors que la capacité reste identique.

RAID 10 (ou RAID 1 + 0)

Ce type de RAID est un raid composé. Il consiste a créé un RAID 0 avec deux RAID 1. On a donc du striping de mirror. Il faut au minimum 4 disque pour créé un RAID 10. Sa capcité est egale a la taille du plus petit RAID1 multiplié par le nombre de RAID 1 dans le RAID0. Ainsi si je créé 2 RAID 1 composé de 2 disque de 200Go j’ai : 200Go * 2 = 400Go.

RAID 5

Le RAID5 se base sur le stripping et une parité. Chaque bande est donc constituée de N blocs de données et d’un bloc de parité. Ainsi, en cas de défaillance de l’un des disques de la grappe, pour chaque bande il manquera soit un bloc de données soit le bloc de parité. Si c’est le bloc de parité, ce n’est pas grave, car aucune donnée ne manque. Si c’est un bloc de données, on peut calculer son contenu à partir des N − 1 autres blocs de données et du bloc de parité. L’intégrité des données de chaque bande est préservée. Donc non seulement la grappe est toujours en état de fonctionner, mais il est de plus possible de reconstruire le disque une fois échangé à partir des données et des informations de parité contenues sur les autres disques. Le RAID5 utilise des Spare disque, disque qui sont mis en spool et monté puis reconstruit en cas de défaillance d’un des disque. Sa capacité est égale a la somme de la capacité des N – 1 disque. 3 disque de 200 Go en RAID5 fournissent donc 400 Go d’espace utile.

Mise en place sous Debian GNU Linux

L’outil mdadm

Cet outil sera utilisé pour créer et administrer notre RAID. S’il n’est pas présent sur votre système, installez le paquet.

root:~# apt-cache search mdadm
mdadm – tool to administer Linux MD arrays (software RAID)
root:~#

Son fichier de configuration se trouve dans /etc/mdadm/mdadm.conf sous Debian. Il est nécéssaire de formater les disque au type 0xFD (Linux RAID autodetect).

RAID 0

On va ici créer un RAID0, donc du striping. On aura donc un partie des données sur chacun des disques. Si vous utilisez une virtual machine mais en savez pas comment ajouter un disque dur, reportez-vous aux Annexes de ce HowTo pour VmWare Workstation et Oracle VirtualBox
Voici comment ce que l’on va faire :

On a donc deux partitions, sda et sdb que l’on montera en RAID 0.

root:~# mdadm –-create /dev/md0 –-level=raid0 –-raid-devices=2 /dev/sda /dev/sdb

–create /dev/md0     Création d’un RAID représenté par /dev/md0
–level=raid0         Type de raid a créé, ici raid0
–raid-devices=2      Nombre de disque dans le RAID
/dev/sda /dev/sdb     Devices du RAID

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid0
root:~# mount –t ext3 /dev/md0 /mnt/raid0

RAID 1

Passons au RAID 1, ici les données sont dupliquées sur chaque disque du RAID

Le principe est le même que en RAID0 mais avec un partition de secoure en plus et le level en raid1 et non raid0.

root:~# mdadm –-create /dev/md0 –-level=raid1 –-raid-devices=2 /dev/sda /dev/sdb -–spare-devices=1 /dev/sdd

–create /dev/md0     Création d’un RAID représenté par /dev/md0
–level=raid0         Type de raid a créé, ici raid0
–raid-devices=2      Nombre de disque dans le RAID
/dev/sda /dev/sdb     Devices du RAID
–spare-devices=1      Nombre de disque de secoure
/dev/sdd              Disques de secour a utilisé

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid1
root:~# mount –t ext3 /dev/md0 /mnt/raid1

RAID 10

Passons au RAID 10, nous allons pour cela créé deux matrices RAID 1 que l’on vas regrouper sur une matrice RAID 0.

On vas créé les deux matrices RAID 1

root:~# mdadm –-create /dev/md0 –-level=raid1 –-raid-devices=2 /dev/sda /dev/sdb
root:~# mdadm –-create /dev/md1 –-level=raid1 –-raid-devices=2 /dev/sdc /dev/sdd

Nos deux RAID 1 (/dev/md0 et /dev/md1) créé, on vas les regrouper dans un RAID 0

root:~# mdadm –-create /dev/md2 –-level=raid0 –-raid-devices=2 /dev/md0 /dev/md1

On peut maintenant créé notre filesystème sur le RAID0 de RAID1

root:~# mkfs –t ext3 /dev/md2
root:~# mkdir /mnt/raid10
root:~# mount –t ext3 /dev/md2 /mnt/raid10

RAID 5

Enfin le RAID 5, nous utiliserons ici 4  disques également dont un de secoure.

Le principe est le même que en RAID0 mais avec un partition de secoure en plus et le level en raid1 et non raid0.

root:~# mdadm –-create /dev/md0 –-level=raid5 –-raid-devices=3 /dev/sda /dev/sdb /dev/sdc -–spare-devices=1 /dev/sdd

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid5
root:~# mount –t ext3 /dev/md0 /mnt/raid5

Administration

Verifier le RAID

Il y a deux possibilities pour verifier l’etat du thread. Le fichier /proc/mdstat et la commande mdadm.

root:~# watch cat /proc/mdstat

Every 2,0s: cat /proc/mdstat                                                                                                                    Tue Jan  4 03:06:33 2011

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md0 : active (auto-read-only) raid5 sdb[0] sde[3](S) sdd[2] sdc[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

md1 : active (auto-read-only) raid5 sdf[0] sdi[3](S) sdh[2] sdg[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

resync=PENDING

unused devices: <none>

Ou bien mdadm –detail <device>

root:~# mdadm –detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Tue Jan  4 01:24:08 2011
Raid Level : raid5
Array Size : 208768 (203.91 MiB 213.78 MB)
Used Dev Size : 104384 (101.95 MiB 106.89 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Jan  4 01:46:14 2011
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 64K

UUID : b8c892c6:c59a3628:f0e976dc:8f6e00c0
Events : 0.10

Number   Major   Minor   RaidDevice State
0       8       16        0      active sync   /dev/sdb
1       8       32        1      active sync   /dev/sdc
2       8       48        2      active sync   /dev/sdd
3       8       64        –      spare   /dev/sde

Ajouter un disque dur

Pour ajouter un disque dur a la matrice de RAID on utilise l’option –a de mdadm :

root:~# mdadm /dev/md0 –a /dev/sdx
mdadm: hot added /dev/sdax

Avec cela on ajoute sdx au Raid md0

Suprimer un disque dur

Pour enlever un disque dur de la matrice de RAID on utilise l’option –d de mdadm :

root:~# mdadm /dev/md0 –d /dev/sdc
mdadm: hot removed /dev/sdc

Ainsi on suprimme /dev/sdc de md0

Simuler une panne et remplacer un disque

Pour tester le bon fonctionnement du RAID il est intéressant de créé des pannes.

root:~# mdadm /dev/md0 –f /dev/sdd
mdadm: set /dev/sdd to faulty in /dev/md0

Ainsi le disque sdc est passé en faulty :

md0 : active (auto-read-only) raid5 sdb[0] sde[3](S) sdd[2](F) sdc[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

Si un spare disk est présent, il sera automatiquement utilisé pour remplacer le disque déffecteux. Voici maintenant comment remplacer sdd, qui est maintenant « foutu » de notre RAID.

root:~# mdadm /dev/md0 –d /dev/sdd
mdadm: hot removed /dev/sdd

root:~# mdadm /dev/md0 –a /dev/sdr
mdadm: hot removed /dev/sdr

On a suprimer sdd du RAID et on a mis sdr a sa place. Si le RAID est complet, ce disque sera rajouté dans les spare disk en cas de futur panne.

Annexes

Annexe A : Ajout de disque dur sous VmWare Workstation

a.       Se rendre dans le menu de configuration du hardware de la VM. (Si elle est en exécution, double cliquer sur l’icône du disque dur en bas à droite)

b.      Cliquer sur Add

c.       Choisir Hard Disk puis suivant.

d.      Choisir Create a New Virtual Disk

e.      Choisir SCSI comme type de disque virtuel.

f.        Ici vous définissez la taille que vous désirez pour votre nouveau disque et cliquez sur suivant

g.       Sur la plupart du système, si vous ajoutez un disque, vous devrez redémarrer la VM.

Sources & Référence

Linux – Mise en place d’un serveur DHCP

Présentation

Le service DHCP (Dynamic Host Configuration Protocol) permet de configurer dynamiquement des hôtes en leurs envoyant des informations sur leur adresse, le routage, les DNS etc. Il n’y a en général qu’un serveur DHCP par segment du réseau, le plus souvent, si un second est présent, il aura comme rôle DHCP relay. Nous ne parlerons pas des DHCP Relay dans cet article.
DHCP est une sur couche de BOOTP (Bootstrap Protocol), quand le client veut contacter le DHCP, c’est BOOTP qui est utilisé pour fournir les informations qui valident sur une durée donnée (un bail)Un client, va donc, au travers de BOOTP, broadcasté le réseau (sur 255.255.255.255 donc) avec une trame contenant, entre autre, sa MAC, le type de request, le port, etc. Il effectue une DHCPDISCOVER, ensuite, une fois que le serveur a detecté un DHCPDISCOVER, il va répondre au client avec un DHCPOFFER (via sa MAC donc, on est toujours en Layer 2, il n’y a pas encore d’IP ici, d’où la limitiation du champ qux subnets) qui contient une première configuration. L’hôte établit cette configuration et renvoi un DHCPREQUEST pour confirmer que la configuration envoyé plus tôt est correcte. Si c’est le cas, le DHCP renvoi un DHCPHACK avec des informations complémentaires (durée de bail par exemple).
Voici une analyse de cette négociation, réalisé sur mon LAN avec Wireshark.

Dans mon cas, pour une question de facilité, mon serveur et mon client sont connecté en mode AdHoc.

Installation

La première chose à faire est d’installer le DHCP, rien de plus simple :
apt-get install dhcpd

DHCPD est donc un daemon. Il se lance via “/etc/init.d/dhcpd start” ou “service dhcpd start” selon la distribution. Il y a deux fichiers importants, /etc/dhcpd.conf et /var/lib/dhcpd/dhcpd.leases. Le premier contient les configurations à envoyer  aux clients, le second, les configurations déjà envoyées.

Configuration.

Nous allons faire deux configurations. Un première avec des hôtes entièrement dynamique, une seconde où l’on voudra que certains hôtes aient toujours la même ip ou une route différente par exemple.
Configuration A – Full Dynamic
Il n’y a qu’un fichier a éditer, /etc/dhcpd.conf
Voici une configuration de “base”, mais pleinement fonctionnelle qui conviendra  aussi  bien à un réseau domestique que d’entreprise. Avant de configurer notre DHCP nous devons connaître certains infos :

Quel est le subnet ?
Quels sont les DNS à utiliser ?
Quel est le nom de domaine transmit au client ?
Le DNS est-il dynamique ?
Quelles sont les durées de bail ?
Quelle est la route par défaut ?
Il y a-t-il des hôtes statiques ?
Quel est le range d’ip disponible a attribué ?

Dans notre exemple :

Quel est le subnet ?  192.168.1.0/24 (255.255.255.0)
Quels sont les DNS à utiliser ?  194.7.1.4
Quel est le nom de domaine transmit au client ?  404Network.local
Le DNS est-il dynamique ?  Non
Quelles sont les durées de bail ?  21600 secondes
Quelle est la route par défaut ?  192.168.1.254
Il y a-t-il des hôtes statiques ? Non
Quel est le range d’ip disponible a attribué ?
De 192.168.1.2 a 192.168.1.253
192.168.1.1 = DHCP, 192.168.1.254 = Gateway

Ce qui nous donne un fichier de ce type :

ddns-update-style none;  #Pas de mise a jours du DNS
option domain-name "404Netowork.local";  #Domaine
option domain-name-servers 194.7.1.4; #Addresse ip des DNS
default-lease-time 21600; #Bail par défaut
max-lease-time 43200; #Bail envoyé lorsque le client demande un bail plus élevé
#Nous allons ici créer une zone ou spool DHCP
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.254; #route par défaut
option subnet-mask 255.255.255.0; #masque de sous réseau
range 192.168.1.2 192.168.1.253; #Range d'ip a attribué
}

Configuration B – Mixed DHCP

Nous voulons maintenant que certaines machines dans notre réseau aient toujours la même ip. Pour ce faire nous allons préciser une ip par Mac Address. Les hôtes, n’étant pas dans la liste, auront une ip dymanique “classique”. Il nous faut juste nous poser une question supplémentaire,  quels sont les hôtes statiques et quels sont leurs ip ?

Quel est le subnet ?  192.168.1.0/24 (255.255.255.0)
Quel sont les DNS à utiliser ?  194.7.1.4
Quel est le nom de domaine transmit au client ?  404Network.local
Le DNS est-il dynamique ?  Non
Quelles sont les durées de bail ?  21600 secondes
Quelle est la route par défaut ?  192.168.1.254
Il y a-t-il des hôtes statiques ? Non
Quel est le range d’ip disponnible a attribué ?
De 192.168.1.100 a 192.168.1.253
192.168.1.254 = Gateway
192.168.1.1 -> 192.168.1.100 = Hôtes statiques

Quels sont les hôtes statiques ?
00:04:ad:41:5c:98 -> Maxime
00:b1:57:c5:75:ad -> Julie

Quelles sont les ips des hôtes statiques ?
Maxime -> 192.168.1.2
Julie -> 192.168.1.3

Le fichier de configuration devient donc :

ddns-update-style none;  #Pas de mise à jour du DNS
option domain-name "404Netowork.local";  #Domaine
option domain-name-servers 194.7.1.4; #Adresse ip des DNS
default-lease-time 21600; #Bail par défaut
max-lease-time 43200; #Bail envoyé lorsque le client demande un bail plus élevé
#Nous allons ici créer une zone ou spool DHCP
subnet 192.168.1.0 netmask 255.255.255.0
{
 option routers 192.168.1.254; #route par defaut
 option subnet-mask 255.255.255.0; #masque de sous réseau
 range 192.168.100 192.168.1.253; #Range d'ip a attribué
 host Maxime
 {
 hardware ethernet 00:04:ad:41:5c:98;
 fixed-address 192.168.1.2;
 }

 host Julie
 {
 hardware ethernet 00:b1:57:c5:75:ad;
 fixed-address 192.168.1.3;
 }
}

Il ne reste plus qu’à relancer le serveur DHCP pour prendre en compte la nouvelle configuration.
Il se peut que le fichier dhcp.leases ne soit pas créé à l’installation, dans ce cas, le serveur DHCP grognera. Il suffit de le créé avec touch, et le serveur fonctionnera correctement.
Pour la sécurisation de serveurs DHCP contre le DHCP Spoofing (en résumé, se faire passer pour un dhcp et donc, envoyer des informations corrompues aux hôtes), j’ai écris un article pour éviter ce type d’attaque que vous pouvez le lire à cette adresse

Tips : Visionner “On est pas couché” sans Silverlight et/ou sous Linux


Ajourd’hui j’ai trouvé comment regardé les videos de “On est pas couché” quand on ne dispose pas de Silverlight ou tout simplement qu’on est sous Linux.

En effet, le projet Moonlight, qui est la version OpenSource de SilverLight et développé par Microsoft a un temps de latence par rapport à l’original. Et la version de SilverLight nécéssaire pour regarder les videos sur le site de France 2 n’est pas disponnible dans le projet Moonlight. De plus, France 2 ne donne plus les “direct-links” vers sa video et l’utilisation de SilverLight est obligatoire. Ceci-dit, leur application n’es qu’un player de flux mms ^^ Donc, il y a bien un fichier quelque part qui est lu.
Pour le trouver, aller dans le code source de la page (sous firefox : Affichage -> afficher le code source)
Dans le code qui est affiché, cherchez après :

<span>Vous regardez <span> Emission du 3 avril 2010 </span> <br />
<a href=”IMG/asx/onpc-48.asx”>Voir la vidéo</a>

(si on est le 3 avril)
Ensuite, ouvrez la page en dessous dans la balise href et la class video : “IMG/asx/onpc-48.asx”
Dans ce fichier on a +/- :

<asx version=”3.0″>
<title>emission du samedi 4 avril 2010</title>
<entry>
<ref href=”mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/horsgv/regions/siege/france2/on-n-est-pas-couche/emission.wmv” />
</entry>
</asx>

Et voila, le tour est joué.
On a le lien vers le fichier. On peux le regarder en streaming via le mms ou alors remplacer mms:// par http:// et dans ce cas le télécharger

Allez
Bon visionnage a tous ^^

Tips : Reset password Debian (Grub)


Ca m’arrive souvent d’oublier le password root de mes debians en VM que je n’ai plus démarré depuis longtemp.
Voici une petite procédure qui permet de le reseter. Je ne sais pas si la procédure fonctionne avec Lilo (que je connais très mal par ailleur)
Ce qu’il faut faire :

1. Rebooter, une fois grub afficher, taper “e” et rajouter “init=/bin/bash” sur la ligne kernel

Appuyer sur b pour booter.
2. Remonter le filesystem en read/write car il est pour le moment en read only.
Pour ce faire, taper la commande :
“mount -o remount rw /”
3. Simplement utiliser passwd pour fixer un nouveau password.
!!!!!!!!!!!!!! CLAVIER PAR DEFAUT EN QWERTY !!!!!!!!!!!!!

Voila c’est tout, on reboot, et on se log en root ^^

Istace Emmanuel

Tips : Execution de code Javascript sur Subversion

Ce petit tips fonctionne sur un serveur subversion avec un webaccess (usvn, websvn).
Il permet d’exécuter du code Javascript si l’administrateur à mal gérer les permissions de user et les restriction de type mime.

Le fichier Javascript s’appel mypage.html
Il suffit de faire ceci :

$> svn add mypage.html
$> svn propset svn:executable ON ./mypage.html
$> svn propset svn:mime-type text/html ./mypage.html
$> svn commit

Ensuite, on se rend en webaccess sur la page et on l’ouvre ce qui nous donne un joli :

Explication :
1. On ajoute le fichier pour le versionning, jusque la, pas de mystère.
2. La seconde permet de faire un équivalent de chmod +x sur le fichier dans le serveur.
3. On change de mime/type du fichier. C’est le mime-type qui définit l’action a l’ouverture d’un fichier. Normalement, le mime-type des ficheir dans svn sont text/plain, ce qui fait en sorte que e fichier est affiché en brute. La on lui dit d’interpréter le fichier, de “l’exécuter”

Inform@tiquement
Manu404 – Istace Emmanuel