Chrooter apache
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Graver en ligne de commande
Astuces
Astuces en Bash
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Toutes les traductions
Toutes les traductions
Hackin9

Il y a actuellement 3 visiteurs connectés sur le site !

Google
Exploration de la configuration
Exploration de la configuration

 

Avant-propos
Points de detail
Mise en garde
Mon materiel
Le processeur
Les irqs
La ram et la swap
Les cartes PCI et AGP
Les disques durs
Les systemes de fichiers supportes
Les CDROMs, graveurs et DVDROMs
Usb
Mini-conclusion
Mon systeme gnu-linux
Le noyau linux
Les modules du noyau
Les services ou daemons
Les processus
Le serveur graphique, XFree86
Les bibliothèques (ou librairies)
Les logiciels en général
Déterminer quelques versions
Mini conclusion

 

Avant-propos:

Ce document va essayer de répondre le mieux possible à ces deux questions  :
Quelle est ma configuration matérielle  ?
Quelle est ma configuration système et logicielle  ?
Ce document peut être, d'une certaine façon, considéré comme une suite de Trucs & Astuces, car il vous fournit seulement une liste de commandes vous permettant de répondre aux deux questions ci-dessus. Par ailleurs, notez que la liste des commandes fournies n'est pas exhaustive.

Points de detail:

Bien sûr, vous êtes invités, voire il vous est vivement recommandé, de faire un man sur les commandes avant de les lancer ceci afin de connaître leurs fonctions et leurs options.
Absolument rien ne garantit que votre distribution fournisse et/ou installe toutes les commandes utilisées dans ce document.
Presque toutes les commandes vues ici sont des commandes en ligne, à exécuter en init 3 ou dans un terminal.
Il existe aussi de nombreux outils graghiques pour décortiquer le système  : je ne les arborderai pas.
Enfin, il s'avère qu'en fonction de votre distribution et de la configuration générale du système, les commandes suivantes peuvent être lancées avec un utilisateur normal, sinon utilisez le root. A vous de voir et de tester.

Mise en garde

Ce document abordant un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde.
Ce ne sont pas les commandes qui sont compliquées mais les informations données par ces dernières peuvent l'être.

Mon materiel

Le materiel installe

Avoir une vue générale du matériel installé  :
lsdev
Ce qui retourne quelque chose comme ça:
 Device  DMA  IRQ  I/O Ports
 ------------------------------------------------
 8139too           9800-98ff
 cascade   4    2
 Creative          a000-a007 a400-a41f
 dma               0080-008f
 dma1              0000-001f
 dma2              00c0-00df
 eth0          10
 fpu               00f0-00ff
 ide0          14  01f0-01f7 03f6-03f6 d800-d807
 ide1          15  0170-0177 0376-0376 d808-d80f
 keyboard       1  0060-006f
 Mouse         12
 parport0          0378-037a
 PCI               0cf8-0cff 9800-98ff
 pic1        0020-003f
 pic2              00a0-00bf
 rtc            8  0070-007f
 serial            02f8-02ff 03f8-03ff
 timer          0  0040-005f
 usb-uhci      11  d000-d01f d400-d41f
 vesafb            03c0-03df
 VIA               d000-d01f d400-d41f d800-d80f e400-e4ff e800-e80f
 

La commande lsdev n'étant pas sur toutes les distributions principales, voyez :
more /proc/devices
Et les autres commandes de cet article.

 

Le processeur

Afin de connaître les caractéristiques de votre processeur  :

more /proc/cpuinfo
Par exemple cela renvoie  :
 processor     : 0
 vendor_id     : AuthenticAMD
 cpu family    : 6
 model         : 4
 model name    : AMD Athlon(tm) Processor
 stepping      : 2
 cpu MHz       : 900.044
 cache size    : 256 KB
 fdiv_bug      : no
 hlt_bug       : no
 f00f_bug      : no
 coma_bug      : no
 fpu           : yes
 fpu_exception: yes
 cpuid level   : 1
 wp            : yes
 flags         : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
 bogomips      : 1795.68
Mais afin de savoir le pourcentage d'utilisation du processeur  :
top
Et enfin depuis combien de temps la machine n'a pas rebooté  :
uptime

 

Les irqs

Quels sont les IRQs utilisés  :

procinfo
Voici la partie du résultat qui nous intéresse ici  :
 [ ... ]
 irq 0: 387420 timer         irq 10:      0 eth0
 irq 1:   9396 keyboard      irq 11: 9366 usb-uhci, usb-uhci
 irq 2:      0 cascade [4]   irq 12: 113603 PS/2 Mouse
 irq 6:      2               irq 14:   6555 ide0
 irq 8:      1 rtc           irq 15:      2 ide1
Ou pour tous les IRQs possibles  : procinfo -i | more
La commande procinfo peut servir pour la mémoire, l'occupation du processeur... Bref, faites man procinfo pour en savoir plus.
Comme pour lsdev, la commande procinfo peut être manquante, alors faites aussi :
more /proc/interrupts

 

La RAM et la SWAP

Pour afficher la RAM et la SWAP disponibles en Mo  :
free -mt
Ce qui donne  :
               total  used  free  shared  buffers  cached
Mem:           501     118   382       0         2      76
-/+ buffers/cache:    38   462
Swap:          509      0   509
Total:        1011    118   892
Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le Trucs & Astuces  : Aide mémoire sur la mémoire

 

Les cartes PCI et AGP

Avoir une première idée des cartes PCI et AGP installées  :

scanpci
Personnellement, je préfère  :
/sbin/lspci
Ce qui retourne  :
00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device 8305
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
00:09.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 11)
00:09.1 Multimedia controller: Brooktree Corporation Bt878 (rev 11)
00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10000 (rev 07)
00:0a.1 Input device controller: Creative Labs SB Live! (rev 07)
00:0b.0 Ethernet controller: Unknown device 0001:8139 (rev 10)
01:00.0 VGA compatible controller: nVidia Corporation NV11 (rev a1)

Malgré le nom de la commande, nous pouvons voir que la dernière ligne est ma carte vidéo AGP. Interrogation : est-ce dépendant de la carte mère et de sa façon de gérer les IRQ  ?
Pour avoir plus d'informations sur les cartes  :
/sbin/lspci -v
Encore plus d'informations sur les cartes  ?
/sbin/lspci -vv
Pour savoir quelles cartes sont Plug and Play  :
lspnp
NDR : Cette commande fait parti du package pcmcia-cs qui contient aussi d'autres commandes pour le matériel pcmcia. N'ayant pas de tel matériel, je ne les ai pas testées.

 

Les disques durs

La première chose, combien de partitions avez-vous sur chaque disque dur, de quel type sont-elles et comment s'appellent-t-elles  ?
/sbin/fdisk -l
Ce qui affiche, par exemple  :
Disque /dev/ide/host0/bus0/target1/lun0/disc : 255 têtes, 63 secteurs, 4865 cylindres
Unités = cylindres sur 16065 * 512 octets
                          Périphérique Amorce   Début Fin   Blocs  Id Système
/dev/ide/host0/bus0/target1/lun0/part1 *        1     62   497983+ 82 Echange Linux
/dev/ide/host0/bus0/target1/lun0/part2          63    548  3903795  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part3          549   1156  4883760  83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part4          1157  4865 29792542+  5 Etendue
/dev/ide/host0/bus0/target1/lun0/part5          1157  1764  4883728+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part6          1765  2250  3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part7          2251  2736  3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part8          2737  3222  3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part9          3223  4865 13197366  83 Linux natif

C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs.
La vieille norme de nommage est conservée par des liens symboliques, faites donc  :
ls -l /dev/hda* /dev/hdb* /dev/sda* /dev/sdb*
afin de voir la correspondance entre /dev/ide/host0/bus0/target1/lun0/part9 et /dev/hdb9, par exemple.
Pour vérifier si le DMA est activé pour votre disque dur  :
/usr/sbin/hdparm -d /dev/hda
Ce qui retourne  :
 /dev/hda:
  using_dma    =  1 (on)

Pour tester les performances de votre cache et de votre disque dur  :
/usr/sbin/hdparm -Tt /dev/hda
Ce qui retourne  :
/dev/hda:
 Timing buffer-cache reads:   128 MB in  0.74 seconds =172.97 MB/sec
 Timing buffered disk reads:  64 MB in  2.27 seconds = 28.19 MB/sec


Modifiez /dev/hda en fonction de votre disque dur.
NDR : Pour information, le fichier correspondant aux partitions est /proc/partitions.

 

Les systèmes de fichiers supportés

Pour connaître la liste des systèmes de fichiers supportés par votre noyau, faites  :

more /proc/filesystems
Ce qui renvoie  :
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   tmpfs
nodev   shm
nodev   pipefs
        ext2
        minix
        umsdos
        msdos
        vfat
        iso9660
nodev   devfs
nodev   nfs
nodev   autofs
        reiserfs
nodev   devpts
nodev   usbdevfs

NDR : Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon...  :-)

 

Les CDROMs, graveurs et DVDROMs

Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs.
Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel dev il faut mounter pour pouvoir utiliser ces lecteurs et graveurs.
Sous /proc/ide pour les IDE, sinon ce sera /proc/scsi , vous trouverez un ide1 et un ide2.
Sous ces répertoires vous retrouverez hda, hdb, hdc et/ou hdd. Et enfin, là, vous trouverez  :

un fichier media qui indique si c'est un cdrom, un disque dur ou autre
Résultat de la commande cat media  : cdrom
un fichier model qui donne le modèle du média installé
Résultat de la commande cat model  : SONY CD-RW CRX140E

/proc/ide/-+-ide1/-+-hda/
           |       |
           |       `-hdb/
           |
           `-ide2/-+-hdc/-+-media
                   |      `-model
                   `-hdd/

Pour voir en une seule fois vos périphériques IDE, faires :
find /proc/ide -type d -print
Ce qui renvoie :
/proc/ide
/proc/ide/ide1
/proc/ide/ide1/hdd
/proc/ide/ide1/hdc
/proc/ide/ide0
/proc/ide/ide0/hdb
/proc/ide/ide0/hda

Ou
find /proc/ide -iname "media" -type f -print
Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en root)  : cdrecord -scanbus
NDR : Pensez à l'émulation SCSI pour un graveur IDE.

 

L'usb

A part aller voir dans le répertoire /proc/bus/usb , je n'ai trouvé que l'outil graphique suivant pour savoir ce qu'il y a sur les ports USB  :
usbview

 

Mini-conclusion

Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.
Comme vous l'avez sûrement remarqué, le répertoire /proc est très utile  !
Sachez que, généralement, les outils s'appuient sur ce répertoire pour vous retourner les informations.
Vous ne risquez rien à le parcourir et à faire des more des fichiers que vous y rencontrerez.
En plus, c'est la seule méthode qui marchera sur toutes les distributions.

 

Mon systeme gnu-linux

La distribution

Afin de connaître la version, voire le nom, de votre distribution, sachez qu'il existe souvent un fichier  :
/etc/nom-distribution
Il suffit donc de faire un cat de ce fichier.
Par exemple, pour la Mandrake c'est /etc/mandrake-release et pour la Slackware, /etc/slackware-version.

 

Le noyau linux

La version de votre noyau actuel est obtenue ainsi  :

uname -r
Pour connaître la configuration actuelle du noyau  :
Soit vous savez où récupérer le .config de votre noyau
Soit utilisez le Trucs & Astuces  : Récupérer le fichier .config par Anne
Maintenant, vous avez deux solutions pour lire la configuration de votre noyau  :
Avec l'éditeur de votre choix.
Sous X avec  : make xconfig
ou alors avec  : make menuconfig, le tout en étant sous /usr/src/linux. Attention à ne pas sauver  !

 

Les modules du noyau

Tout d'abord, tous les modules se trouvent sous  :

/lib/modules/version-du-noyau
Pour avoir une idée des modules à charger, vous pouvez utiliser les commandes sur les périphériques expliquées dans ce document. Sinon allez dans le répertoire  :
/usr/src/linux/Documentation
et cherchez sans oubliez les sous-répertoires. En particulier, lisez le fichier modules.txt.
Pour avoir de plus amples informations sur un module particulier, et donc sur un driver, faites  :
modinfo nom-module
Pour savoir quels sont les modules chargés en mémoire  :
/sbin/lsmod
Exemple concret, pour savoir si le module d'émulation SCSI du graveur est chargé :
/sbin/lsmod | grep ide-scsi
Pour savoir si vous avez besoin de recompiler les modules du noyau afin d'avoir l'émulation :
find /lib/modules/`uname -r` -iname "ide-scsi*" -print

 

Les services (ou daemons)

Il existe de nombreux outils pour gérer les services sur un système GNU/Linux.
Mais ces outils dépendent beaucoup de la distribution, si elle est SysV ou BSD-like et si elle utilise inetd ou xinetd.
Aujourd'hui les principales distributions sont SysV et utilisent xinetd sauf la Slackware. Mais pour savoir rapidement si votre distribution utilise xinetd, faites simplement :

ps -ef | grep -i inetd
Cela vous sortira soit :
root        87     1  0 22:13 ?        00:00:00 /usr/sbin/inetd
Soit :
root        88     1  0 22:22 ?        00:00:00 /usr/sbin/xinetd
Et vous saurez si c'est inetd ou xinetd qui est utilisé.
De plus pour savoir si le système d'initialisation (aussi dit d'init) est SysV (dit Système 5), vérifier dans le répertoire /etc/rc.d qu'il existe les répertoires : init.d, rc1.d, rc2.d,... , rc6.d. Sinon, c'est soit un système BSD, soit un autre système d'init comme celui de la Slackware.

 

Les processus

Pour savoir simplement quel processus est le processus père de quel(s) autre(s)  :

pstree -ph
Ce qui affiche cet arbre  :
init(1)-+-agetty(96)
             |-devfsd(14)
             |-eth0(73)
             |-gvim(319)
             |-inetd(85)
             |-kapmd(3)
             |-kdm(97)-+-X(99)
             |          `-kdm(100)--icewm(111)-+-rxvt.bin(125)--bash(127)--pstree(349)
             |                                 `-sylpheed(205)
             |-keventd(2)
             |-khubd(52)
             |-klogd(83)
             |-mdrecoveryd(9)
             |-modem_run(158)
             |-pppd(160)---pppoa2(162)---pppoa2(165)
             `-syslogd(80)

Nous avons donc sous les yeux tous les processus du système avec leur PID (Process Identifier) sous une forme nous permettant de comprendre qui est dépendant de qui. En conséquence, cela permet aussi de mieux comprendre le système et de voir ce qui tourne.

 

Le serveur graphique, Xfree 86

La version de votre serveur X, XFree86  :

XFree86 -version
Afin de mieux connaître votre configuration graphique, éditez en lecture le fichier  :
/etc/X11/XF86Config-4
Si vous ne possédez pas ce fichier, ou pour une version de XFree86 antérieure aux versions 4  :
/etc/X11/XF86Config
Et pour affiner la configuration de XFree  :
xvidtune

 

Les bibliothèques (ou librairies)

Pour avoir la liste des bibliothèques installées figurant dans les répertoires  :

/usr/lib
/lib
Et les répertoires contenus dans le fichier /etc/ld.so.conf
Faites  :
ldconfig -p
Mais pour savoir si la bibliothèque library est installée, faites plutôt  :
ldconfig -p | grep -i library
Ce qui a pour résultat, avec library égale à libc.so par exemple  :
libc.so.6 (libc6, OS ABI: Linux 2.0.0) => /lib/libc.so.6
Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...
Voici quelques méthodes que je connais  :
Faire  : cd / && find . -iname "*config*" -type f -print | grep -i bin , vous retournera une liste d'exécutables de configuration pour diverses choses. Il ne reste plus qu'à trouver celui qui semble correspondre, faire un man et à essayer  : exécutable --version
Avec de la chance la version figure dans le nom du .so (cherchez le véritable .so, pas le lien symbolique).
Essayer d'exécuter la bibliothèque comme un exécutable.
Cherchez dans le gestionnaire de package de votre distribution.
Voir la release-note de la version de votre distribution, si elle existe.
Allez sur le site DistroWatch et consultez la page de votre distribution.
La commande  : ldd -v nom-exécutable ou nom-bibliothèque donne des informations de version mais je ne suis pas sûre de les comprendre...

NDR : Le terme library est souvent abusivement traduit par "librairie" au lieu de "bibliothèque". Je lui préfére ce dernier, sachez simplement qu'il s'agit de la même chose.

 

Les logiciels en general

Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de packages utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus.
Donc les solutions universelles sont  :

cd / && find . -iname "*nom-du-logiciel*" -type f -print
Ou
locate nom-du-logiciel
En général, pour connaître la version d'un logiciel, il suffit de faire  :
exécutable-du-logiciel --version
Ou
exécutable-du-logiciel -v
Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin  :
ldd exécutable
Par exemple  : ldd `which sylpheed
` Retourne  :
libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x40017000)
libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x4001a000)
libdl.so.2 => /lib/libdl.so.2 (0x40046000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4004a000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40058000)
libm.so.6 => /lib/libm.so.6 (0x40131000)
libgdk_pixbuf.so.2 => /opt/gnome/lib/libgdk_pixbuf.so.2 (0x40154000)
libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40168000)
libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x4028d000)
libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x402bf000)
libssl.so.0 => /usr/lib/libssl.so.0 (0x402d5000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4038b000)
libc.so.6 => /lib/libc.so.6 (0x4044b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

NDR : J'ai utilisé la commande ldd `which sylpheed` car ldd n'utilise pas le PATH, donc il faut lui donner le chemin d'accès de l'exécutable. Ce que fait which sylpheed pour l'exemple.

 

Quelques versions

Le composant La commande
Le noyau Linux uname -r
GCC, le compilateur gcc --version
XFree86, le serveur X XFree86 -version
KDE (qt, kde, kde-config) kde-config --version
Gnome et ses bibliothèques gnome-config --version
glib-config --version
gtk-config --version
gtkmm-config --version
WindowMaker wmaker --version
Enlightenment enlightenment --version
La bibliothèque Glibc /lib/libc.so.6
OpenSSL openssl version
GnuPG (Gnu Privacy Guard) gpg --version
La bibliothèque GPGme (GnuPG Made Easy) gpgme-config --version
L'éditeur Vi (ou Vim) vi --version

 

Mini-conclusion

Comme pour le matériel, ce qui précède peut vous aider...
Mais pour les logiciels la tâche est plus compliquée car beaucoup d'éléments entrent en considération comme : la distribution, le système de package, la hiérarchie du système de fichiers...

Sources de l'article


 

Forum d'entraide
Les news du site
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
Azureus pas-a-pas
Lire les news de Linux-pour-lesnuls.com au format RSS
Gestion des paquets debian
101 commandes debian
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Ensemble
Divers