lalahop

Critique de jeux vidéo

Table des matières

J'ai eu l’occasion de jouer, plus au moins récemment, à certains jeux vidéo et je souhaite vous faire partager mes impressions sur ceux-ci.

Crysis 2

J'y ai joué en DirectX 9, en ayant mis tous les réglages sur "High" avec excellent logiciel Crysis 2 Advanced Graphics Options. Je n'ai pas testé le jeu en DirectX 10 et encore moins en DirectX 11 avec les textures HD publiées avec le patch 1.9. Je ne commenterai pas l'aspect graphique de ce jeu car je m'en tamponne et je ne suis pas le seul.

Bon déjà, point positif : on a un jeu qui est mieux codé et plus optimisé que ne l'ont été les autres Crysis. Comme quoi c'était possible. Par contre, il y a encore pas mal de bugs que les (trop nombreux) patchs ne corrigent pas. Il n'y a qu'à regarder les forums spécialisés pour s'en convaincre. Pour ma part, je citerai les missiles JAW qui disparaissent des planques de munitions lorsque l'on perd et que la dernière sauvegarde nous ramène avant ceux-ci. À noter par ailleurs une I.A. inégale et perfectible : tantôt trop agressive, tantôt pas assez (les ennemis restent à côté de vous sans bouger alors qu'ils pourraient vous tuer 10 fois avant que vous ne les repériez).

Le scénario est confus et moins intéressant que dans les précédents opus. Même si quand on joue à un FPS on ne doit pas s'attendre à un super scénario recherché, je pense qu'il y a néanmoins un minimum syndical.

Malgré tout, on obtient un jeu sur lequel on a plaisir à passer le temps et à dézinguer des aliens. Dommage que le jeu ait été vendu à la va-vite puis retaper après avec des patchs qui n'en finissent plus. Il faudrait que les éditeurs cessent ces mauvaises pratiques.

Note : Si vous rencontrez l'erreur "This application has failed to start because the application configuration is incorrect. reinstalling the application may fix this problem." lors du lancement de Crysis 2, installez Microsoft Visual C++ 2005 redistributable. Je sais que la version 2008 est installée en même temps que Crysis 2 mais cela ne semble pas suffire. Vu sur Torrentz.

Doom 3 : Resurrection of Evil

Ayant aimé Doom 3, il fallait que je me penche un jour sur cette extension. Une nouvelle histoire, moins prenante que celle de Doom 3, nous ramène sur Mars et nous oblige à nous concentrer sur l'action. Pour cela, nous sommes assistés par 2 nouvelles armes et un gadget : fusil à pompe à double canon (yes !), gravity gun (mouais) et un artefact de l'enfer qui permet de ralentir le temps. À mélanger sans modération pour obtenir l'effet souhaité et passer un bon moment.

Là encore, le scénario est moins bien ficelé que dans Doom 3. Néanmoins, je retiens une extension d'une durée de vie convenable qui nous offre le plaisir de dégommer des monstres de l'enfer à la chaîne.

Harry Potter et les Reliques de la Mort - Première Partie

Je ne vais pas avoir grand-chose à dire. L'adaptation vidéoludique associée aux livres et aux films concernant le célèbre sorcier est un échec (aussi bien en terme de jouabilité qu'en terme de scénario) depuis le 5e volet voir peut-être même le 4e. Et la première partie de ce septième volet ne rattrape pas le niveau. HP7PP est un jeu vidéo qui nous endort en nous proposant des missions ennuyeuses et répétitives et une jouabilité qui laisse vraiment à désirer. Bref, un titre à oublier de toute urgence.

Durée de vie des jeux vidéo

Je souhaite à présent pousser un coup de gueule (ça faisait longtemps) envers la durée de vie des jeux vidéo. Plutôt que de parler d'une seule durée de vie, je préfère distinguer la durée de vie technique de la durée de vie du scénario.

Durée de vie technique

D'un point de vue technique, la durée de vie des jeux vidéo est inégale. Entre les jeux vidéo qui fonctionnent 10 ans après sur une famille de systèmes d'exploitation qui a pas mal évolué entre-temps et les jeux vidéo qui ne fonctionnent même plus trois ans plus tard. En disant ça je pense au jeu vidéo Scarface : The world is yours qui tourne à peu près sous Vista en utilisant le logiciel Dxwmd et qui ne tourne plus du tout sous Windows 7. Dans la même rubrique, on peut citer les premiers jeux vidéo Harry Potter qui présentent de sérieux artefacts graphiques, sous XP, avec du matériel récent.

Le problème est double. D'un côté, le matériel évolue et ne réagit plus de la même façon pour les mêmes calculs demandés. Néanmoins, ces effets peuvent être atténués par les méthodes de développement et c'est là que le problème numéro 2 intervient : les jeux vidéo sont codés à la va-vite sans se soucier de leurs avenirs techniques dans un seul but de limiter le temps de développement et donc la marge à la vente quitte à réparer ensuite avec des patchs si le peuple gronde (ex. : Crysis 2). Ainsi de mauvais choix des bibliothèques partagées utilisées et de mauvais choix d'implémentation sont faits et nuisent à la durée de vie technique des titres. Pourtant quelques astuces permettent d'éviter une obsolescence technique trop rapide : connaissance des mécanismes sous-jacents acquise avec l’expérience, utilisation de bibliothèques partagées qui permettent le dialogue avec le système et de suivre l'évolution du système en mettant à jour la bibliothèque et sans changer le code du jeu, etc. . Je ne sors pas ces bonnes pratiques de mon chapeau mais de l'interview de Ryan C. Gordon, pointure du développement de jeux vidéo sous les plateformes GNU/Linux et Mac OSX, publiée dans le numéro 66 du magazine "Linux pratique".

Durée de vie du scénario

La durée d'un jeu vidéo est comparable à la durée de vie de n'importe quel produit électronique : elle a été calculée, décidée à l'avance par le fabricant. On peut citer ici le fait que le scénario est linéaire, rendant toute envie de rejouer difficile. On peut également citer le fait que la trame principale du jeu est mince et la durée de vie du titre est augmentée de manière artificielle avec des missions bonus (cherche tel ou tel objet, recommence le jeu avec tel ou tel niveau de difficulté, etc ...). On peut également reparler des éditeurs qui ferment les serveurs de jeux tout en ayant interdit les serveurs perso. De cette manière, le titre est inutilisable en mode multijoueur. Toutes ces techniques (et celles que j'ai oubliées de citer comme les systèmes d'activation) permettent de programmer l'obsolescence d'un titre.

Et encore, je ne parle pas des jeux vidéo développés pour un seul système d'exploitation ou bien encore du prix de ces jeux car ce n'est pas le sujet de ce billet.

Il faudrait que les éditeurs de jeux vidéo cessent de prendre les consommateurs pour des imbéciles qui doivent passer en caisse tous les 15 jours. Ils doivent proposer des titres de qualité (scénario, jouabilité, ...) maintenant qu'ils en ont les possibilités techniques. Ils doivent également proposer des durées de vie supérieures et tournants sur plusieurs systèmes d'exploitation. C'est le minimum syndical.

Belle utopie n'est-il pas ? 😛 Et encore, je ne parle pas de distribuer leur création sous une licence libre, on verra ça plus tard : il ne faut pas pousser, quand même.

ÉDIT 28/06/2011 20h40 : haha qu'est ce que je disais à propos de la durée de vie programmée. Désolant.

Voici le message d'erreur auquel j’ai eu le droit lors de la mise à jour manuelle de mon Piwik, de la version 1.4 vers la version 1.5, sur mon serveur de tests, il y a quelques jours. Je passe les autres erreurs qui sont provoquées par celle-ci. Évidemment, Google ne retourne aucun résultat, il va donc falloir se débrouiller tout seul une fois de plus.

Après recherche, il s'est avéré que je n'avais pas copié le nouveau fichier ./config/global.ini.php ou qu'il y a eu un bug lors du transfert de celui-ci. Ainsi, la partie suivante de ce fichier n'a pas été copiée et a provoquée l'erreur décrite ci-dessus :

[branding]
; custom logo
; if 1, custom logo is being displayed instead of piwik logo
use_custom_logo = 0

Néanmoins, je vais vous expliquer ma démarche pour réparer mon installation car cela peut servir dans le cas où vous seriez confronté à un problème différent.

En voyant le message d'erreur, et après avoir vérifié qu'aucune erreur de transfert n'a été reportée par mon logiciel FTP, j'ai pensé à un problème dû au fait que j'ai supprimé certains plugins de mon installation. (Souvenez-vous). Je transfère donc l'intégralité de la version 1.5 et je vide le dossier ./tmp appartenant à Piwik, sur le serveur. Sans succès.

Je décide alors de recommencer toute l'installation. Je vide donc le FTP et j'upload complètement la version 1.5. Je lance l'installation ... et Piwik me dit que les tables existent déjà dans ma base de données et me propose de changer leur préfixe ou bien de supprimer les tables existantes. Mais où est donc passé l'option permettant de conserver les données ? Je pense alors à un problème lors de la mise à jour initiale vers la version 1.5 : les tables n'ont pas été mises à jour et sont donc "en version 1.4".

De là, je récupère la version 1.4 dans les archives de Piwik. Je l'upload et je tente l'installation. Même résultat : Piwik ne me propose pas de conserver mes données.

Je décide donc d’accepter le changement de préfixe en ayant comme idée de le changer par la suite dans le fichier de configuration et je mets "aaaaa_". L'installation se déroule bien et j'accède à l'interface. Je change donc la ligne "tables_prefix = "aaaaa_" " dans la section "[database]" du fichier ./config/config.ini.php en indiquant le préfixe de mes anciennes tables. Et là, comme par magie, les statistiques réapparaissent dans l'interface.

Je refais donc une mise à jour manuelle vers la version 1.5. Tout se passe bien cette fois-ci. Je cherche l'origine du problème et j'en arrive à la conclusion énoncée ci-dessus.

Comme le problème ne venait pas de mon installation personnalisée, je désactive les plugins suivants depuis l'interface et je les supprime grâce à FTP :

  • Anonymize IP
  • CustomVariables
  • DBStats
  • Example*
  • Feedback
  • Goals
  • MultiSites
  • PDFReports
  • PrivacyManager
  • SecurityInfo
  • UserCountryMap
  • VisitorGenerator
  • Widgetize

Cette liste dépend évidemment de mes besoins et de mes choix. Il faudra l'adapter à votre situation.

Dans un tout autre registre, on me signale dans l'oreillette que cela fait un an que je loue le domaine guiguishow.info. Dois-je souhaiter un joyeux anniversaire à mon propre blogcomme le font bon nombre de webmasters ? Je ne pense pas. D'une part, car je pense qu'un anniversaire se fête uniquement pour les humains. D'autre part, sur quoi se base-t-on pour souhaiter un anniversaire à une application web ? La date de début de location du nom de domaine ? La date de début de contrat avec l’hébergeur ? Le jour de la première publication ? Dans le cas de ce blog, ces dates sont toutes différentes. Je passe aussi sur le côté "mon blog existe depuis x années donc il est sérieux" qu'est le fait de souhaiter un bon anniversaire à son blog.

Astuces rapides

Table des matières

On remet le couvert pour un partage des connaissances 😛 . Rien de révolutionnaire une fois encore.

Différence entre SNAT, DNAT et masquerade

Commençons par étudier les définitions de chacun de ces termes :

SNAT :
Selon le man d'iptables :

It specifies that the source address of the packet should be modified (and all future packets in this connection will also be mangled), and rules should cease being examined.

En plus clair (source : Guide de configuration Shorewall) :

Avec la SNAT, un segment interne du réseau local est configuré en utilisant des adresses de la RFC 1918. Quant un hôte A sur ce segment interne initie une connexion vers un hôte B sur internet, le firewall/routeur réécrit les entêtes IP de la requête pour utiliser une de vos adresses publiques IP en tant qu'adresse source. Quant B répond et que la réponse est reçue par le firewall, le firewall change l'adresse destination par celle de la RFC 1918 de A et transfère la réponse à A.

Masquerade :
Selon le man d'iptables :

It should only be used with dynamically assigned IP (dialup) connections: if you have a static IP address, you should use the SNAT target. Masquerading is equivalent to specifying a mapping to the IP address of the interface the packet is going out, but also has the effect that connections are forgotten when the interface goes down. This is the correct behavior when the next dialup is unlikely to have the same interface address (and hence any established connections are lost anyway).

DNAT :
Selon le man d'iptables :

It specifies that the destination address of the packet should be modified (and all future packets in this connection will also be mangled), and rules should cease being examined.

En plus clair (source : pareil que précédemment) :

Quand la SNAT est utilisée, il est impossible pour les hôtes sur internet d'initialiser une connexion avec un des systèmes internes puisque ces systèmes n'ont pas d'adresses publiques IP. La DNAT fournit une méthode pour autoriser des connexions sélectionnées depuis internet.

Pour résumer :

  • La DNAT permet de rediriger une connexion externe vers le réseau interne. Sur les *box, cela est appelé port forwarding, port mapping ou redirection de port lorsqu'il s'agit de rediriger un seul port ou DMZ lorsqu'il s'agit de transférer toutes les connections vers une machine interne.
  • La SNAT permet à plusieurs machines de partager la même adresse réseau de sortie.
  • Le Masquerade revient au même que SNAT à la différence que l'on considère que l'adresse réseau de sortie est dynamique.

Utiliser un proxy avec apt-get et wget

Il est parfois nécessaire d'utiliser un proxy HTTP pour sortir sur internet. Dans ce cas, comment mettre à jour vos logiciels ?

Pour une bonne partie des utilitaires en ligne de commande, il est possible de spécifier le proxy à utiliser via la variable d'environnement http_proxy. Voir : apt-get à travers un proxy HTTP.

Néanmoins cette méthode ne fonctionne que pour l'utilisateur ayant exporté la variable. Ce qui veut dire que la démarche suivante sera vaine :

$ export http_proxy=http://login:password@adresseduproxy:portduproxy
$ sudo apt-get update

Il faudra bien évidement faire :

$su -
# export http_proxy=http://login:password@adresseduproxy:portduproxy
# apt-get update

Note : La ligne peut changer selon si vous avez besoin d'un mot de passe pour utiliser le proxy ou selon le logiciel proxy utilisé. Voir : Linux : Mettre un Proxy pour les commandes Wget et Apt-get .

Pour appliquer la modification à chaque démarrage, il est possible de placer l'export dans le fichier ~/bashrc tout en se rappelant que les commandes lancées sous une autre identité seront vaines.

De plus, si l'utilisation du proxy concerne uniquement 2-3 logiciels, il est possible de spécifier un proxy uniquement pour ces logiciels. C'est ce que nous allons faire.

Pour apt-get

Il suffit de créer un fichier /etc/apt/apt.conf contenant quelque chose comme :

Acquire::http::Proxy "http://login:password@adresseduproxy:8080";

Pour wget

Pour que l'usage du proxy concerne tous les utilisateurs, il suffit d'éditer le fichier /etc/wgetrc et de décommenter la ligne "use_proxy = on". Ensuite, il faut modifier les lignes "http_proxy =" et "https_proxy =" selon vos besoins.

Imprimante HP : Adobe Reader n'imprime pas mes PDF !

Vous pouvez imprimer tous vos fichiers à l'exception des fichiers au format PDF. Sur certaines machines, une page d'erreur est imprimée à la place du fichier.

HP a publié un guide de dépannage. Voir : Impossibilité d'imprimer des fichiers PDF à partir d'Adobe Reader.

L'étape 1 de la solution 2 m'a permis de résoudre le problème sur une imprimante. Sur une autre imprimante, il m'a fallu modifier la mise à l’échelle pour la passer de "Ajuster à la zone d'impression" à "Aucun".

Installer les guest additions de VirtualBox dans une machine virtuelle Debian GNU/Linux Squeeze

Voir Installer Virtualbox Guest Additions sur une machine virtuelle Debian.

Installation de GNU/Linux Debian Squeeze : partman bloque à 50% sur l' « analyse des disques »

Durant l'installation de Debian, partman se bloque à 50% lors de la phase d' "Analyse des disques". Dans un premier temps, on accède à un shell. Pour cela, on redémarre l'ordinateur, on valide les paramètres linguistiques, on attend durant le chargement depuis le CD et durant le choix de la carte réseau, on appuie sur la touche "Echap" et on sélectionne "Exécuter un shell". De là, on liste les disques durs/partitions disponibles avec fdisk :

fdisk -l

On se rend compte que notre disque dur apparaît bien. Il ne s'agit donc pas d'un contrôleur de disques non supporté comme je l'ai vu dans le billet d'un forum que je ne retrouve plus.

La solution (qui ne semble avoir aucun lien avec le problème) : si vous utilisez une clé USB pour installer Debian, utilisez un CD. Je n'ai pas creusé plus loin pour déterminer l'origine exacte de ce bug.

ÉDIT du 29/09/2011 à 19h55 : D'après les retours (voir la discution dans les commentaires de ce billet), c'est les utilitaires du type Unetbootin, Universal USB Installer et autres qui provoquent ce bug.

Comme remède, je vous propose ce qui suit. Les ISOs de Debian/Debian Live sont des ISOs hybrides depuis Squeeze. Ainsi, vous pouvez télécharger l'ISO pour CD/DVD et la copier sur votre clé USB avec un bon vieux dd. Voir, entre autres : DebianEeePC HowToInstallUsingStandardInstaller sur wiki.debian.org.

Si vous n'utilisez pas une clé USB pour l'installation ou si vous n'avez pas utilisé d'utilitaire comme Unetbootin, alors je n'ai pas de solution pour vous.Fin de l'édit

Quelques astuces en vrac

Table des matières

Après cette absence, je vous livre des solutions rapides à des problèmes techniques qui me sont arrivés ou qui sont arrivés à des personnes que je connais.

MS Removal Tool

Si vous avez le malheur d'avoir à gérer des machines Windows et qu'un utilisateur peu scrupuleux colle un rogue (définition) et notamment le rogue nommé "MS Removal Tool" sur l'une d'elle, pensez à utiliser le logiciel de désinfection Rogue Killer. Pensez à changer le nom de l’exécutable pour le nom d'un processus système (exemple : winlogon.exe) afin que l'outil ne soit pas détecté et supprimé par MS Removal Tool. Vu chez Malekal

Trouver le DN (Distinguished Name) d'un Active Directory

Quand vous voulez interfacer un Active Directory (bouuh mais pas le choix) avec un autre logiciel en utilisant le protocole LDAP, vous devez fournir le DN, c'est à dire la structure (= la hiérarchie) vers un enregistrement depuis le bas de l'arbre jusqu'en haut (et dans ce sens là !). Pour décrire cette hiérarchie, vous avez des attributs (CN, OU, DC, ...) à votre disposition (voir LDAP sur Wikipédia).Voir une comparaison pour mieux comprendre (en anglais).

Je sais pas pour vous mais moi je galère toujours un peu pour "voir" le DN d'un Active Directory. Cette fois-ci, j'ai pris des captures d'écran afin de pouvoir me servir de ce cas concret maitrisé lors d'un prochain interfaçage. Évidemment, j'ai changé les noms 😉 Maintenant, je vous laisse réfléchir : dans l'image ci-dessous, quel est le DN de l'utilisateur "bob leponge" ?

Active Directory

Réponse : CN=bob leponge,OU=foyer,OU=azerty,DC=TOTO,DC=LOCAL
N'oubliez pas de decomposer le DC en utilisant le "." comme délimiteur ;).

Maintenant, supposons que vous avez des utilisateurs à authentifier. Ceux-ci se trouvent tous dans l'OU "azerty". Néanmoins, tous ne se trouvent pas dans l'OU "foyer", certains se trouvent dans l'OU "titi". Or le logiciel qui va réaliser l'authentification de vos utilisateurs à partir de l'A.D. vous demande le DN de la base. Vous l'aurez peut-être compris : il faut indiquer uniquement la base commune. Dans notre exemple, nous nous arrêterons à l'OU "azerty". Le DN de la base sera donc : OU=azerty,DC=TOTO,DC=LOCAL.

Configurer Alcasar pour authentifier les utilisateurs à partir d'un Active Directory

Avec ce que nous venons de dire ci-dessous, la configuration d'Alcasar va être simple :

Nom : adresse IP ou nom DNS du serveur Active Directory
DN de la base : OU=azerty,DC=TOTO,DC=LOCAL (à adapter à votre cas, voir ci-dessus)
Identifiant LDAP : sAMAccountName (donné par Alcasar)
Filtre de l'utilisateur : (objectClass=radiusprofile) (donné par Alcasar)
Utilisateur LDAP DN : CN=bob leponge,OU=foyer,OU=azerty,DC=TOTO,DC=LOCAL (à adapter à votre cas, voir ci-dessus)
Mot de passe de l'utilisateur : je vous laisse deviner ce qu'il faut mettre ici

Pour l'utilisateur LDAP, je vous conseille de créer un utilisateur dans votre A.D. avec juste un droit de lecture sur les OU désirées afin d'accroître, un minimum, la sécurité.

Les utilisateurs ne devront pas s'identifier avec leur nom complet mais avec leur login de session Windows inscrit dans l'A.D. Par exemple, notre utilisateur bob leponge devra se connecter avec son login "bobleponge". Voir la capture ci-dessous :

Active Directory 2

Problème de DNS avec Alcasar

Symptômes : Alcasar n'intercepte pas vos requêtes, vous n'avez pas accès à la page d'authentification ni au web. Pourtant, vous avez configuré votre client avec une IP appartenant au réseau de consultation du serveur Alcasar, avec le même masque de réseau. Le serveur Alcasar est définit comme passerelle par défaut et comme résolveur DNS sur le client.

Quand vous tapez l'adresse IP du serveur dans un navigateur, vous pouvez y accéder. Quand vous tapez l'IP d'un site web au lieu de son nom de domaine, vous pouvez également y accéder. Quand vous effectuez un nslookup ou un dig, vous obtenez un message "Accès refusé".

La solution se trouve sur le forum d'aide aux utilisateur Alcasar : PB requêtes DNS (sur le forum adullact.net).

Monter rapidement une passerelle

Je vous en ai déjà parlé brièvement mais un rappel ne fait pas de mal.

Vous êtes sur une machine sur un certain réseau, disons 192.168.182.1/24 et vous voulez accéder à une machine d'un autre réseau, disons 192.168.0.1/24. Les machines n'étant pas sur le même réseau, vous devez installer une passerelle entre les deux réseau.

Pour cela, il vous faut :

  • Un ordinateur équipé de deux cartes réseau
  • Activer l'ip forwarding : Windows (pensez à redémarrer après le changement dans le registre) | GNU/Linux. Vous n'avez pas besoin d'activer le NAT.
  • Configurer les routes sur les deux machines qui doivent communiquer.

Note : ajout des routes :

Sous une machine GNU/Linux :

route add -net 192.168.182.1/24 gw 192.168.0.254

Sous une machine Windows :

route add 192.168.182.0 mask 255.255.255.0 192.168.0.254

Si vous préférez ajouter une route vers la machine uniquement et non plus vers tout le réseau (ce que je vous conseille) :
GNU/Linux :

route add -host 192.168.182.1 gw 192.168.0.254

Windows :

route add 192.168.182.1 mask 255.255.255.255 192.168.0.254

255.255.255.255 représente le masque de réseau pour une seule machine. Utilisé notamment dans les offres ADSL *box (et les accès internet en général, même sans *box).

Effacer un mot de passe de session Windows

Plutôt que de cracker le password avec pwdump/John the Ripper ou ophcrack, je préfère effacer le mot de passe. J'y vois deux avantages : rapidité et préservation de la confidentialité. Sachant qu'un utilisateur moyen (et même parfois les "power users") mettent le même mot de passe à peu près partout, je trouve cette méthode plus convenable.

Pour effacer le mot de passe ou en définir un nouveau, j'utilise un utilitaire qui n'est pas nouveau : Offline NT Password and Registry editor. En cadeau, je vous donne également un lien vers un très bon tutoriel (pdf).

MySQL : forcer le changement du mot de passe root

En cas d'oublie de votre mot de passe root : mysql - Documentation Ubuntu Francophone, paragraphe 3.4.

Alcasar : désactiver DHCP

Si vous ne voulez pas utiliser le protocole DHCP sur votre réseau de consultation, suivez ceci : désactiver le DHCP de chilli (sur le forum adullact.net).

Alcasar : retrouver la traçabilité

Par défaut, Squid, le logiciel proxy connu et reconnu utilisé dans cet ensemble logiciel est utilisé en mode transparent. Ce mode permet de ne pas avoir à configurer les options des navigateurs et autres applications sur les postes clients pour leur indiquer à quelle adresse et sur quel port interroger le proxy. Comment ça marche ? Le serveur Alcasar étant définit comme passerelle par défaut sur les clients, il reçoit donc les paquets. Une règle dans le pare-feu Netfilter redirige les paquets à destination du port 80 (et autres selon la configuration voulue) vers le port du proxy. Ainsi, vous perdez la traçabilité dans les logs : toutes les connexions semblent venir de l'adresse locale (127.0.0.1).

Pour retrouver un semblant de traçabilité (rappelons qu'une IP peut être changée par un utilisateur et ne permet donc pas toujours de faire le lien avec un utilisateur), il suffit donc de supprimer la règle de redirection dans iptables (table nat), chaine prerouting, de vérifier que Squid écoute bien sur d'autres interfaces réseau que l'interface de bouclage et configurer les applications des postes clients pour passer via le proxy avec l'IP et le port associés.

Amon NG : Authentification des utilisateurs avec un Active Directory

Amon NG est un module du projet Eole NG.

L'authentification des utilisateurs peut-être activée dans l'outil de configuration gen_config : il faut mettre à "Oui" l'option "Activation de l'authentification Web (proxy)" dans l'onglet "Services" puis de "Valider le groupe". Un nouvel onglet "Authentification" apparaît alors afin de vous permettre de saisir les paramètres. Vous n'avez plus qu'à choisir "LDAP (Active Directory)" dans la liste des types d'authentification et à entrer vos paramètres, les mêmes que pour Alcasar (voir ci-dessus).

Néanmoins, les paramètres ne sont pas correctement écrit dans le fichier de configuration de Squid (/etc/squid/squid.conf". Il convient donc de chercher la chaîne "auth_param basic program" et d'éditer la ligne qui n'est pas commentée.

Il faut changer le paramètre "-b" qui doit représenter le DN de la base et le paramètre "-D" qui doit correspondre au DN de l'utilisateur autorisé à consulter l'Active Directory.

Dans notre exemple précédent, cette ligne ressemblerait à :

auth_param basic program /usr/lib/squid/ldap_auth -R -b "OU=azerty,DC=TOTO,DC=LOCAL" -D "CN=bob leponge,OU=foyer,OU=azerty,DC=TOTO,DC=LOCAL" -w motdepasse -f sAMAccountName=%s -h IP de l'A.D.

Je reviendrai sur Alcasar et Eole NG dans un prochain billet.

Copier un DVD du commerce (protégé)

Avant de traiter le sujet principal de ce billet, je voudrais vous dire que les articles suivants ont été mis à jour plus ou moins récemment :

Pourquoi mettre à jour des vieux billets plutôt que d'en poster un tout nouveau ? Il est plus facile, lorsque je veux retrouver une commande GNU/Linux ou un paramètre de SSH, de savoir dans quel billet chercher plutôt que de chercher dans tous les billets de mon blog.

Ceci étant dit, venons-en au sujet principale, qui commencera par un coup de gueule.

Table des matières

Film, où puis-je te trouver ?

Un ami m'a présenté un film. Ayant bien aimé ce film, j'ai décidé de me le procurer dans une meilleure qualité (vive les rips pourris circulant sur le net). Je cherche donc sur les principaux sites de VOD (Canalplay, Tf1vision, vod.fnac.com, totalvod.com, ...). Rien. Ça commence déjà à m'énerver (et j'expliquerai pourquoi ci-dessous).

Bon, je me résigne à acheter le DVD . Je vais sur le site de la Fnac, sur Cultura, rien. Sur Amazon.fr je trouve enfin ce que je cherche ! Le seul problème est qu'il s'agit d'un import anglais. Rien n'est précisé concernant les langues et les sous-titres disponibles sur le DVD. Dans un tel flou, vous comprenez bien que je n'allais pas effectuer l'achat.

Je finis par trouver un DVD en occasion.

Moralité ?
D'une part, elle confirme que l'offre légale française est bien trop pauvre. Avant de sanctionner le téléchargement illégal, il faudrait peut-être proposer une alternative légale. Quand je vois la pauvreté des plates formes de VOD, et pas seulement à travers cet exemple, je me dis que les majors n'ont pas compris, comme si je ne m'en doutais pas auparavant, les nouvelles volontés de consommation : non je ne veux pas commander un support physique, fragile qui plus est, que je vais devoir attendre (cas d'une livraison postale) ou que je vais devoir aller chercher en magasin. Je ne veux pas attendre, je veux consommer maintenant.

D'autre part, elle montre que, sans parler de téléchargement illégal, de l'argent échappe aujourd'hui aux mains des majors à cause de leur refus de s'adapter. Mon achat d'occasion n'a rien rapporté aux majors. Ça encore, cela ne me pèsera pas sur la conscience. Par contre, savoir que les personnes qui ont exercées une forme d'art à travers ce film, à savoir les vrais acteurs de la création (acteurs, scénaristes, etc.), ne seront pas rémunérées, cela me dérange un peu plus. Le pire, c'est que la faute incombe à leurs distributeurs adorés (sauf exceptions), pourtant censés les aider.

Le moment de la lecture

Évidemment, le DVD que j'ai acquis est protégé par la technologie CSS. Sa lecture est donc impossible, par défaut, sous Ubuntu.

Mais sommes-nous en droit de contourner la protection CSS ? Pour avoir une réponse claire et nette, lisez : rappels législatifs - Documentation Ubuntu Francophone.

Nous sommes typiquement dans le cas de l'interopérabilité. Vous pouvez donc ajouter le sous dépot non-free du dépot Medibuntu. Pour cela, voir : médibuntu - Documentation Ubuntu Francophone.

Vous pouvez ensuite installer la libdvdcss2, qui permet de déchiffrer la protection CSS des DVD avec n'importe quel lecteur :

sudo apt-get update && sudo apt-get install libdvdcss2

Vous pouvez maintenant lire votre DVD avec VLC, Kafféine, etc ...

Et si je veux conserver une copie ?

Vu la fragilité des DVD et les aléas de la vie vous voulez faire une copie de votre DVD sur votre disque dur ? Vous allez rire si vous ne le savez pas : vous n'en avez pas le droit. Voir le lien concernant les rappels juridiques donné plus haut. Vous êtes typiquement dans le cas d'une copie à usage privé pour laquelle vous avez rémunéré les majors (je refuse de dire que la taxe copie privée rémunère la création, les vrais créateurs et l'art) mais pour laquelle vous devez contourner une protection.

Néanmoins, je tiens à affirmer que j'ai acheté une œuvre de l'esprit, pas un bête support, pas un bête DVD. Je tiens donc à affirmer mon droit à garder cette œuvre, pour un usage privé, via une copie.

Attention : je considère ici que vous avez déjà installé la libdvdcss2. Si ce n'est pas le cas, lisez, ci-dessus, le bloc traitant de la lecture d'un DVD sous Ubuntu.

J'ai voulu utiliser la classique commande dd. Sans la libdvdcss2, il copie presque 1 mo et s'arrête. Avec la libdvdcss2, dd copie bien le DVD mais la protection CSS demeure sur l'image ISO, ce qui est logique. Cette solution n'est donc pas satisfaisante.

On se doute alors qu'il existe sous GNU/Linux un équivalent aux logiciels DVD Shrink, DVD Fab et autres de WIndows. Personnellement, j'ai utilisé k9copy et je n'ai rien a lui reprocher.

Dans un premier temps : il faut ajouter le dépôt multiverse : dépots - Documentation Ubuntu Francophone.

Installer k9copy :

sudo apt-get install k9copy vamps dvdauthor

Vous n'avez plus qu'a utiliser k9copy. Je ne vous en expliquerai pas le fonctionnement : il est intuitif. Néanmoins, pour une copie complète et identique de votre DVD, cochez toutes les pistes vidéos, audio, sous-titres que k9copy n'a pas coché pour vous (les pistes étrangères notamment). Vérifiez que le facteur est de 1.0 et lancez la copie dans une image ISO, un DVD ou un dossier sur votre disque dur.

Astuce : si vous comptez réutiliser k9copy pour d'autres DVDs et que vous ne voulez pas cocher à la main les pistes étrangères à chaque fois, allez dans le menu "Configuration", puis dans "Configurer k9copy". Dans la partie "DVD" (à gauche), remarquez la partie "Langues préférées". Pour l'audio et les sous-titres, choisissez "Non spécifié". Sauvegardez les paramètres. Re-ouvrez votre DVD : k9copy a coché toutes les pistes (mêmes étrangères) automatiquement.

A l'insu de la copie, vous récupèrerez un contenu sans protection.

L'heure de faire le ménage

Si vous ne supportez pas de voir tous ces paquets non libres installés sur votre ordinateur et si vous avez finis de copier vos DVDs :

Désinstallez la libdvdcss2 :

sudo apt-get autoremove --purge libdvdcss2

Désinstallez k9copy et ses dépendances :

sudo apt-get autoremove --purge k9copy dvdauthor vamps

Supprimez le dépôt multiverse : il vous suffit d'enlever les lignes que vous avez rajoutées à votre fichier /etc/apt/sources.list.

Supprimez le dépôt medibuntu :

sudo rm /etc/apt/sources.list.d/medibuntu.list /etc/apt/sources.list.d/medibuntu.list.save
sudo apt-get autoremove --purge medibuntu-keyring