Outils sous UNIX

 

 

RAR

RAR et UNRAR : Compresser/décompresser des fichiers RAR. Je n'ai pas bien compris s'il s'agissait de freeware ou de shareware. Ils indiquent sur le site license trial, mais le produit indique freeware...

Le site : rarlab.com

Pour installer le produit:

Téléchargez le produit sur le site. Puis recopiez l'archive sous /tmp par exemple

Sous une console (en root surtout pour copier les fichiers sous /bin),

#cd /tmp

# tar -zxvf rarlinux*.tar.gz
# cd rar
# cp rar unrar /bin

Vérifiez que les fichiers soient bien exécutables et c'est terminé ! Sinon chmod 755 sur rar et unrar

Pour compresser, vous pourrez passer par le gestionnaire de fichiers, clique droit sur le fichier/répertoire et choisir l'option Compresser/Comme une archive "rar" ou Compresser/Compresser vers et choisir le format rar. Pour décompresser, toujours depuis le gestionnaire de fichiers, un double clique sur l'archive ouvrira une interface permettant d'effectuer vos opérations...

Vous pourrez aussi utiliser les commandes depuis un shell, ...

 

VirtualBox

- VirtualBox: Permet de virtualiser des machines (donc d'installer sous Linux une machine sous Microsoft Windows par exemple). Sous Mandriva, et sous d'autres distributions de Linux, il suffit d'installer le paquet.

Image non trouvée !A noter qu'il y a des additions clients, cad des drivers installables sur votre nouveau système d'exploitation, qui permettrons à celui-ci de mieux s'intégrer à votre système actuelle (partage d'espace disque, capture et libération automatique de la souris, meilleur prise en compte de l'écran).

Image non trouvée !Il peut être nécessaire de charger des paquets d'installations supplémentaires (extra) que vous trouverez dans la section téléchargement avec la dernière version de virtuelBox.

Sous Mandriva: Outils/outils système/configurer votre ordinateur, installer/désinstaller des logiciels et rechercher virtualbox dans toutes les catégories.

 

Répertoire d'échange entre le système hôte et le système invité

Image non trouvée !Il peut être intéressant de monter un répertoire d'échange entre votre système hôte et le système invité

 

Si le système invité est un Linux:

Pour commencer, il faut lancer votre système invité. Puis dans le menu périphérique/dossiers partagés, définir un chemin se trouvant sur le système hôte qui sera le chemin partagé ainsi que le nom de partage. Deux types de définittions: permanent (donc existera toujours) ou temporaire (le temps de la session de la machine). Plus des options comme lecture seule, ...

Linux invité:

Il faut créer un répertoire qui recevra le partage. Généralement, les montages se font sous /mnt. Créez alors votre répertoire dedans.

Il faut ensuite monter le dossier de partage en tapant pour une connexion temporaire (il faut être administrateur): mount -t vboxsf nom_dossier_partage nom_repertoire_linux

Pour une connexion permanente: dans le fichier /etc/fstab, ajoutez la ligne suivante:

nom_partage /nomrepertoire_linux vboxsf defaults 0 0

Où le nom de partage est celui que vous avez donné dans virtualBox sous Périphériques\Réglages des dossiers partagés.

/nomrepertoire_linux le chemin complet de montage sous Linux (soit /mnt/le_nom_que_vous_avez_donné)

D'autres solutions pour les droits d'accès ici mis à defaults peuvent être positionnées: rw, suid, exec, auto, users, ...

Cependant, certains systèmes comme Mageia peuvent ne pas avoir chargés le module vboxsf au démarrage du système lors du traitement du fichier fstab. Cela se traduit par une demande du mot de passe root vous permettant de vous connecter sur une console d'administration pour corriger le bug. La correction à faire est la suivante: dans le fichier /etc/modules, il faut ajouter le nom du module soit ici ajoutez vboxsf. Cela indiquera au système qu'il doit charger ce module dans le kernel avant de faire quoique ce soit.

# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a `#', and everything on the line after them are ignore
#
vboxsf

Rebootez votre machine virtuelle, cela devrait mieux fonctionner !

Problème UUID déjà existant

mon_disque_virtuel with UUID nnnnnnnn because a hard disk [...] with UUID nnnnnnnn already exists ...

Ceci se produit lorsque vous changez vous copiez une image disque sur vers un autre répertoire...

La solution, changer le UUID du nouveau disque...

Lancez un interpréteur de commandes (shell)

vboxmanage internalcommands sethduuid nom_disque.vdi

Pour les plus vieilles versions de virtualbox, la commande pourra être setvdiuuid.

 

diff

Permet de voir les différences entre deux fichiers.

Exemple diff toto titi

 

Utilitaires système

Donc seul le root pourra les utiliser.

blkid

Cet utilitaire fait parti d'un paquet (util-linux ou util-linux-ng. Exemple: apt-get install util-linux) et n'est disponible qu'à l'administrateur (root). Il permet de lister les unités de type block (disque dur, clef usb, ... pour faire simple) et d'afficher leurs attributs:

  • Le nom du périphérique /dev utilisé
  • Le type (vfat, ext4, ...)
  • Le UUID (identifiant du périphérique)
  • Eventuellement des informations complémentaires

En utilisation simplifiée:

blkid liste tous les attributs de tous les périphériques de type block

blkid -g permet de rafraichir la liste (suite à un démontage de disque par exemple)

Intéressant en complément de df, mount, ou encore pour vous aider dans le fichier /etc/fstab afin de faire des montages permanents sur un périphérique type clef usb, disque externe, ...

 

free

Cette commande permet de connaitre la quantité de mémoire disponible.

Exemple free -h

 

chroot

CHange ROOT permet d'indiquer un sous répertoire comme répertoire racine, cela peut permettre d'éviter des accidents...

 

chroot [OPTION] repertoire [commande [ARG]...]

/ sera positionné à "répertoire" pour la commande à exécuter.

--userspec=USER:GROUP pour indiquer l'utilisateur et le groupe à utiliser
--groups=G_LIST liste de groupe supplémentaire
--help pour afficher l'aide
--version version...

commande à exécuter avec ses paramètres ARG

Si vous lancer chroot seul:

'${SHELL} -i

chattr

Sous Linux: change file attributes.

chattr [ -RVf ] [ -v version ] [ mode ] files...

Pour moi, le plus intéressant:

-R pour traitement recursif dons les fichiers et sous répertoires

mode +/- i avec + qui permet de protéger un fichier contre l'effacement/ modification, liens, ... y compris avec l'utilisateur root ou - pour déprotéger.

 

 

 

Gestionnaire de logiciels

apt-get ou aptitude sont des gestionnaires de paquets ou de logiciels sous Linux Debian ou dérivés (Ubuntu, RaspBian, ...) fonctionnant en ligne de commandes. Ils permettent l'installation/maj et désinstallation de paquets provenant d'un dépot nommé APT.

Vu les opérations qui peuvent être effectuées, il faut avoir des privilèges élevés pour pouvoir lancer ces commandes. D'où l'utilisation de la commande su (si vous avez plusieurs manipulations à faire en tant qu'administrateur) ou la commande sudo (pour une opération) qui permet de devenir temporairement administrateur dans le monde Unix.

Plus d'informations sur ces gestionnaires sur https://doc.ubuntu-fr.org/apt-get ou https://doc.ubuntu-fr.org/aptitude en français (c'est pour unbuntu, mais c'est pareil sur raspbian)

Autres commandes apt éventuellement utiles:

  • apt-spy permet de déterminer le mirroir le plus performant suivant votre localisation.
  • apt-cdrom add pour ajouter à sources.list le cdrom comme source disponible. Il suffit d'ajouter votre cdrom dans le lecteur...

 

D'autres gestionnaires existent sur d'autres systèmes Linux comme urpmi <paquet> (User RPM Installer) développé par la société Mandriva et donc par fork dans Mageia poue installation de paquet

urpme <paquet> pour désinstaller, urpmq <paquet> pour interroger la base, ... (voir https://fr.wikipedia.org/wiki/Urpmi) pour plus de détails.

 

Pour ceux qui sont allergiques aux commandes en ligne, il existe des interfaces graphiques dans votre système préféré permettant de visualiser, modifier, supprimer et installer des paquets.

Exemple sous RaspBerry Pi.

 

Utilitaires réseaux

ifconfig

ifconfig est un utilitaire permettant de configurer vos connexions au réseau.

Lancez le dans un terminal (mode caractère) pour consulter ou modifier vos connexions.

 

Informations générales

ifconfig -a

va afficher les informations sur toutes vos cartes réseaux disponibles sur la machine .

Sous Linux:

eth0 : Information sur la carte réseau éthernet n°0. vous pouvez donc trouver des eth1, eth2 si votre machine possède d'autres cartes réseau de ce type.

wlan0 : information sur la première carte wifi présente. Là aussi vous pourrez trouver wlan1, wlan2 si d'autres cartes existent.

lo : loopback, il s'agit de l'interface particulière que le système va utiliser pour communiquer avec lui même (D'adresse IP 127.0.0.1)

D'autres noms peuvent apparaître suivant le système d'exploitation utilisé.

em0 sous BSD, en0 sous AIX, ...

 

Pour chacune des cartes, vous pourrez avoir les informations suivantes:

Link encap à Ethernet ou Local Loopback

inet addr: Adresse IP V4 affectée à la carte réseau, inet6 pour une adresse IP V6

Bcast: Adresse IP pour le Broadcast, indique l'adresse IP de diffusion à laquelle la carte réseau devra réagir lorsqu'une diffusion d'informations envoyé à cet IP broadcast concerne en fait plusieurs destinataires IP dont la plage dépendra du masque qui suit.

Mask: Masque de sous-réseau

Ces informations sont suivies de statistiques lié à la carte:

RX Pour données reçues

TX Pour données transmises

Là aussi, ces informations pourront légèrement changer de nom et d'ordre suivant le système d'exploitation utilisé, voire être complétées.

 

Informations sur une carte précise

Pour avoir des informations sur une carte, il suffira d'indiquer son nom en paramètre de la commande

Exemple:

ifconfig eth0

 

Activer ou désactiver une carte

  • up en paramètre permet d'activer une carte
  • down permet de la désactiver

Exemple pour désactiver eth0, tapez:

ifconfig eth0 down

noteIl faudra être administrateur pour pouvoir effectuer cette opération. Soit via la commande su ou si elle existe, la commande sudo suivie en paramètre de la commande ifconfig et de ses paramètres.

 

Autres paramétrages

Il sera possible de préciser l'adresse IP fixe, le broadcast, le masque pour une carte réseau en passant en paramètre

ifconfig <nom> [ip fixe] [netmask le_masque] [broadcast le_broadcast]

Exemple:

ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255

noteLà aussi, il faudra être administrateur pour pouvoir effectuer cette opération. Soit via la commande su ou si elle existe, la commande sudo suivie en paramètre de la commande ifconfig et de ses paramètres.

 

Et plus ...

Il y a encore d'autres options disponibles, il s'agit là pour moi des principales dans la vie de tous les jours dans le monde Unix, et encore, j'en ai déjà trop mis !

 

telnet

Protocole permettant de communiquer avec un serveur distant (TErminal NETwork ou TELecommunication NETwork, ou encore TELetype NETwork).

Il existe donc une partie serveur (le démon telnetd) et une autre cliente (commande telnet).

Concernant la commande, il suffit de taper telnet ip ou telnet url pour se connecter au serveur. Vous pouvez préciser le port si celui-ci n'est pas le port 23 exemple telnet mon_site 10023.

Plus de détails sur telnet client ou serveur...

 

FTP

File Transfert Protocole. Il s'agit d'une commande sous Unix qui se nomme ftp fonctionnant en mode caractères, qui peut se lancer sous un interpréteur de commandes.

 

nmap

Il s'agit d'un utilitaire créé pour vérifier la sécurité de votre réseau. Evidemment, les hackers l'utilisent aussi pour "tester" le votre ...

Pour l'installer, recherchez le paquet nmap

 

Pour tester votre réseau vous tapez (avec les droits root)

 

nmap -A -T4 88.999.777.666 pour tester une ip

nmap -A -T4 example.com pour tester un domaine

nmap -A -T4 -p 22 example.com Ou pour tester sur un port précis d'un domaine

-A pour Active la détection du système d'exploitation et des versions

-Tn Temporaisation, plus le nombre est élevé, plus l'opération sera faite rapidement (de 0 à 5)

D'autres options sont disponibles

-v pour détailler les informations.
-sU pour scanner les ports UDP
-sT pour scanner les ports TCP
-sV pour tester tous les ports et déterminer le service + version
-I pour avoir plus d'info sur le port ouvert
-O pour détectecter l'OS, existe aussi --osscan-limit pour rechercher les cibles prométeuses ou --osscan-guess pour deviner l'os
-P0 pour scanner des machines refusant les requêtes ICMP
-r scan séquentiel des ports (résultat donc trié).
-6 pour les cans sur IP v6
-h pour de l'aide

Et il y a encore d'autres options plus vicieuses !

 

Fail2ban

Il s'agit d'un utilitaire qui va bannir les adresses ip douteuses. Le principe est le suivant: Il scanne les logs des différents serveurs à la recherche de ces ips pour lesquels il y a nombreuses tentatives de connexions infructueuses ou autres tentaives étranges. Pour ces ips détectées, ajout d'une règle au parefeu pour les bannirs pendant une certaines périodes.

fail2ban utilise python. Il passe par iptables, shorewall ou TCP Wrapper pour les blocages.

Dans son utilisation basique, fail2ban propose des filtres à déclencher sur des serveurs.

noteIl faut être root pour installer et configurer fali2ban (su/sudo)

Installer fail2ban

Le paquet se nomme tout simplement fail2ban. Utilisez l'utilitaire d'installation de paquets de votre distribution.

Recopiez /etc/fail2ban/jail.conf en /etc/fail2ban/jail.local

Puis vous pourrez modifier le contenu de jail.local pour activer les filtres fail2ban sur le ou les serveurs que vous voulez configurer (apache, ssh, ...):

Le fichier est consituté de la façon suivante:

[nom_du_serveur1]

attribut1 = valeur

attribut2 = valeur

 

[nom_du_serveur2]

attribut1 = valeur

attribut2 = valeur

La section [DEFAULT] permettant de définir les valeurs par défauts de certains attributs.

Les attributs les plus intéressants étant:

ignoreip permet de définir une liste blanche.

AttentionL'erreur est humaine, pensez à positionner les adresses ip qu' il ne faut jamais bannir au moins dans la section [DEFAULT] !

Utilisez pour cela l'attribut ignoreip = ip1 ip2 ... ipn. Il doit déjà exister par défaut avec des adresses. Le séparateur entre les ips étant l'espace. Vous pouvez aussi y indiquer un CIDR (Ex. 192.168.0.0/16), DNS host.

enables = true ou false pour activer ou non le filtre sur le serveur correspondant.

filter = le nom du démon (cf. la liste des serveurs sous /etc/services). Exemple sshd, apache2

port = le/les ports à écouter (séparateur étant la virgule) exemple ssh, 22000 (si vous avez changer le port standard en 22000). cf. la liste des serveurs sous /etc/services

maxretry = nombre, nombre maximum de fois qu'une ip peut être trouvée dans les logs avant le blocage de celle-ci, correspond ainsi au nombre maximum de tentatives. Cet attribut est à associer à findtime qui va permettre d'indiquer la période sur laquelle analyser ces tentatives.

findtime = nombre de secondes qui correspond à la période sur laquelle doit être analyser le nombre de tentatives maxretry: la période étant entre "findtime" secondes plus tôt et maintenant.

bantime = nombre de secondes qui correspond à la durée du bannissement. Une valeur négative va bannir de façon permanente une ip.

logpath = chemin/fichier.log : Fichier log à scanner. Exemple /var/log/auth.log. Vérifiez bien l'existence du fichier.

 

noteIl est possible de créer vos propres filtres, règles, ...

Vous pouvez lancer, arrêter relancer fail2ban en utilisant les commandes similaires d'un service

 

fail2ban-client status permet de connaître les prisons mis en place et le status de jail2ban

Vous pouvez ensuite demander le status d'une prison, par exemple:

fail2ban-client status ssh donnera le status pour la prison ssh

 

Le site http://www.fail2ban.org/wiki/index.php/Main_Page

Le manuel http://www.fail2ban.org/wiki/index.php/Manual

Clavier AZERTY ou QWERTY

Avec un serveur X Window:

setxkbmap fr pour passer en clavier azerty
setxkbmap us pour utiliser un clavier qwerty

Sans serveur X Window

loadkeys fr
loadkeys us

NotePeut ne pas fonctionner pour l'un ou pour l'autre si le fichier de mapping du clavier correspondant n'est pas installé.

Cf. Les raccourcies Windows pour faire de même avec Windows.

 

Ramdisk

Les ramdisks permettent de créer un disque en mémoire vive, ce qui signifie: grande rapidité d'accès en lecture / écriture.

Utile pour la création de fichiers éphémères (Bin oui, lorsque vous arrêter votre machine, le contenu du disque sera perdu !).

Permet aussi d'augmenter la longévité des disques et je pense surtout à un Raspberry Pi avec sa carte SD en guise de disque dur !

Il existe 2 principaux ramdisk sous Linux:

ramfs et plus récent, tmpfs

Utilisez la commande free afin de déterminer une taille correcte du ramdisk.

mkdir /mnt/ramdisk

Puis utilisez la commande mount si vous voulez monter ce disque temporairement:

mount -t [TYPE:tmpfs ou ramfs] -o size=[SIZE:la taille que vous aurez déterminé préalablement] [FSTYPE:tmpfs, ramfs, ext4, ...] /mnt/ramdisk

 

Ou, pour un montage permanent (A chaque reboot, le disque est remonté), ajoutez la ligne suivante dans le fichier fstab. Par exemple:

tmpfs /mnt/ramdisk tmpfs nodev,nosuid,noexec,size=512M 0 0

Pour prendre en compte les modifications du fichier fstab, rebootez ou tapez plus simplement mount -a

 

NotesDes commandes utiles:

  • Pour connaître la liste des répertoires montés, utilisez df -h

Tous les répertoires qui auront comme filesystem tmpfs seront en fait en ramdisk. Vous pouvez constater que certains répertoires sont automatiquement mis en ramdisk !

Mais vous pouvez en ajouter d'autres comme:

/tmp, /var/tmp ou pourquoi pas /var/spool (mais attention à ce dernier, le cron utilise aussi ce répertoire. Donc si vous utilisez le cron, ne pas mettre ce répertoire en ramdisk)

  • Pour le répertoire /var/log, préférez log2ram !
  • Une commande intéressante si vous voulez déplacer des répertoires vers votre ramdisk: Connaître la taille de ce répertoire !

Utilisez pour cela la commande du -sh /chemin_vers_votre répertoire/répertoire

 

log2ram

Il s'agit d'un utilitaire bien appréciable permettant l'enregistrement en différé des fichiers de log ou journal. Les fichiers sont d'abord stockés en mémoire, puis synchronisés régulièrement sur le disque (par défaut, 1 fois par heure). Cela diminuera les risques d'usures prématurées de vos disques ou carte SD (pour le Raspberry).

Ce programme est disponible sous git: https://github.com/azlux/log2ram

Pour l'installer:

git clone https://github.com/azlux/log2ram.git

Puis modifier les droits du programme d'installation en exécutable:

cd log2ram

chmod +x install.sh

Enfin lancer l'installation en root:

./install.sh

Le fichier de configuration se trouve sous /etc/log2ram.conf

L'information la plus importante étant SIZE qui permet de définir la taille de votre "cache différé". Pour avoir une idée de la taille nécessaire, utilisez la commande du -sh /var/spool

Par défaut, log2ram vide son cache toutes les heures. Il est possible de le faire 1 fois par jour en déplaçant le fichier suivant:

mv /etc/cron.hourly/log2ram /etc/cron.daily/log2ram

NotesNotes:

  • Il peut être intéressant de faire un peu de ménage dans ce répertoire /var/spool qui peut vite gonfler et surtout de revoir le paramétrage de l'utilitaire logrotate (Utilitaire le plus souvent utilisé pour la gestion/archivage des logs) qui permet de faire un backup des logs un peu trop important à mon goût ! Il faut faire ce ménage avant que log2ram ne soit lancé, sinon, vous ne ferez le ménage que dans le cache de log2ram, pas sur le disque !
  • Sur Raspberry, videz aussi le fichier servicelog qui gongle, gonfle ! (Exemple: echo "" > /var/log/servicelog) et ajouter une rotation avec logrotate pour ce fichier !
  • Vérifiez que log2ram soit bien pris en compte en tapant df -h. /var/log devrait être sur le filesystem log2ram. Si ce n'est pas le cas, il y a fort à parier qu'il y a eu un problème de place, taille du cache. Tapez log2ram start pour voir l'erreur s'afficher à l'écran.
  • Jetez un oeil de temps en temps pour voir si vos modifications/paramétrages tiennent la route !
  • Il est possible de désinstaller log2ram en utilisant la commande uninstall.sh (chmod +x uninstall.sh) dans le répertoire de téléchargement log2ram utilisé.

 

logrotate

Il s'agit d'un utilitaire fréquement utilisé dans les différentes versions de Linux (Mageia, Debian, Ubuntu, Raspbian, ...).

Le but est de limiter la taille des fichiers journaux (ou log) présents dans /var/log et de découper et d'archiver les logs en utilisant un principe de rotation par numérotation des archives (d'où son nom), le fichier d'archivage le plus ancien étant supprimé. pour faire de la place.

La commande est logrotate.

Le plus intéressant étant le répertoire de paramétrage de logrotate qui se trouve sous /etc/logrotate.conf (Débain, Raspbian, Ubuntu ou /etc/logrotate.d (Mageia).

Dans ce répertoire, vous trouverez un fichier de paramétrage par log d'application.

Dans ce fichier, le répertoire du fichier log et entre { } le paramétrage comme la fréquence du découpage, le nombre maximum de découpage (ou rotation), s'il faut compresser ou non les archives, ...

L'information la plus utile selon mois sera rotate pour diminuer sa valeur ! Souvent trop importante selon moi.

Une autre sera size 100M pour limiter la taille d'une log à 100M. Que la fréquence soit atteinte ou pas, dès que la taille est atteinte, le fichier sera découpé et une rotation aura lieu (voire la fréquence n'est me plus prise en compte si ce paramètre est positionné, non vérifié).

 

Les ports usb

Sous Linux:

usb-devices programme bash permettant d'avoir des informations détaillés sur les périphériques USB.

lsusb Permet d'afficher des informations sur les bus USB ainsi que les périphériques qui sont connectés.

 

 

Les ports PCI

Sous Linux:

lspci permet de lister les périphériques PCI.