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.
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).
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é
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
lsof
Permet de lister les fichiers ouverts par un processus, un utilisateurs. Comme tout est fichier sous Unix, vous pouvez donc trouver les fichiers ouverts, mais aussi les connexions, les pipes, librairies ouvertes...
Idéal pour trouver des fuites de mémoires dans vos programmes !
lsof -p numProcess[,autreNumProcess] ou numProcess et le numéro PID (exemple de récupération PID avec ps -ea | grep monProgramme)
lsof -u UID ou nomUtilisateur [,UID ou nomUtilisateur]
lsof -u toto -p 123 affichera les fichiers ouverts par toto et tous les fichiers ouverts par le processus 123
lsof -i pour afficher tous les processus ayant une connexion réseau (TCP, UDP, ...)
pour limiter à un processus: lsof -i -a -p numProcess (-a equivaut dans ce cas à un and, donc et logique, ce qui limitera la lecture à tous fichiers utilisaient pour une connexion réseau et appartenant au processus numProcess).
Utilitaires pour le 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
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.
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
Là 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.
Il 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 /etc/fail2ban/jail.conf propose déjà des configurations par défaut.
Ce fichier va inclure vos propres configurations que vous positionnerez sous /etc/fail2ban/jail.d
Les fichiers de configuration sont consitutés 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.
L'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.
Il 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
Peut 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
Des 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
Notes:
- 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 fichier de paramétrage de logrotate qui se trouve sous /etc/logrotate.conf et/ou le répertoire /etc/logrotate.d.
Dans le fichier, vous trouverez le paramétrage par défauts.
Dans le répertoire, un fichier de paramétrage log par application
Dans les { }, 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 me semble-t-il 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 mê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.