====== Packages linux utiles sur un serveur ======
Voyez avant tout les outils
* de [[doc:formations:hebergement:serveur:proteger|protection]]
* et d'[[doc:formations:hebergement:serveur:observer|observation]]
Ensuite, il y a de nombreux petits outils utiles dès le début.
* L'éditeur de texte ''nano'' existe souvent par défaut mais il est limité. Je conseille deux directions: dans le long terme, investir dans ''vim'' (omniprésent, léger et très puissant), ou bien ''ne'' [[http://ne.di.unimi.it/|The Nice Editor]] qui est à l'opposé: beaucoup plus interactif et ergonomique, mais qui doit etre installé (menu accessible avec ''Esc'' deux fois).
* ''tree'' permet de lister des fichiers et dossier hiérarchiquement dans la console
* ''apt-show-versions'' (montre les paquets installés, à utiliser avec un ''grep'')
Si vous êtes sur un poste interactif (poste client), il y a pléthore d'outils qui sortent du cadre de cette formation. Pour n'en citer que quelques uns
* ''meld'' (comparateur de fichiers)
* ''filezilla'' un outil de tranfert de fichier à distance
* ''freeplane'' un mindmap pour prendre des notes ou organiser quelque chose
* ''geany'' un bon éditeur de texte qui m arche partout
* ''gparted'' un outil d'administration de gestion des disques durs et clés USB
* ''inkscape'' pour du dessin vectoriel
* ''ksnip'' ou ''simplescreenrecorder'' (enregistrer des vidéos de son écran)...
===== etckeeper =====
Sans meme trop savoir utiliser ''git'', je conseille fortement un [[https://wiki.archlinux.org/index.php/Etckeeper|etckeeper]] (''apt install etckeeper''). Cet outil va //versionner// tout votre dossier ''/etc'', ce qui est très une très bonne idée! Ainsi vous conserverez l'historique de vos modifications et pourrez faire marche arrière en cas d'erreur.
Il fait un ''commit'' journalier, mais il est plus utile de les faire explicitement à la main, pou y mettre des commentaires adéquats!
git status # liste les changements
git add fichier1 ficher2...
git commit -m 'votre commentaire...'
git push origin
Exemple de ''git log'':
commit c03ec0aea987854734777340d471f95643cc5f68 (HEAD -> master)
Author: root
Date: Fri Feb 21 17:43:19 2020 +0100
Added & configured rkhunter
commit cc58310624d6bcd30b4fe651385429d220c56de7
Author: root
Date: Fri Feb 21 15:57:17 2020 +0100
committing changes in /etc made by "apt install rkhunter"
Package changes:
+fonts-lato 2.0-2 all
+rkhunter 1.4.6-5 all
+ruby 1:2.5.1 amd64
...
+unhide.rb 22-4 all
+zip 3.0-11+b1 amd64
(...)
===== rootkit hunter =====
apt install rkhunter
[[https://sourceforge.net/p/rkhunter/rkh_code/ci/master/tree/files/FAQ|FAQ en anglais]] et [[https://kifarunix.com/how-to-install-rkhunter-rootkit-hunter-on-ubuntu-18-04/|bonne description en français]].
C'est un outil qui signe et qui vérifie les signatures des exécutables sur votre serveur. Cela permet de détecter les "rootkits", des ensembles logiciels que certains pirates tentent d'installer dès le moment où ils sont parvenus à "rentrer" sur votre serveur. Ce sont des boites à outils qui leur permettent de profiter de votre serveur à votre insu mais aussi de cacher la trace de leur activité afin de passer inaperçu.
Cet outil fonctionne
* en signant numériquement tous les fichiers sensibles et en vérifiant qu'ils n'ont pas été modifiés depuis la dernière vérification,
* en testant explicitement la présence de rootkits connus (76 à ce jour, tout de même!),
* en effectuant nombre d'autres tests, par exemple sur la configuration du réseau
=== Lancement à la main ===
Si vous modifiez votre système, vous aurez besoin de dire à rkhunter de mettre à jour sa base de donnée:
rkhunter --propupd
La commande ''rkhunter %%--%%update'' met à jour la liste des rootkits testé, etc, pas votre base de donnée!
On peut lancer un scan manuellement avec
rkhunter --check --sk
Le fichier ''/var/log/rkhunter.log'' donne davantage de détail, si par exemple il fait un warning sur la présence de fichiers cachés. En effet, si l'on a installé ''etckeeper'', il vous avertira sur:
[09:22:03] Checking for hidden files and directories [ Warning ]
[09:22:03] Warning: Hidden directory found: /etc/.git
[09:22:03] Warning: Hidden file found: /etc/.etckeeper: ASCII text
[09:22:03] Warning: Hidden file found: /etc/.gitignore: ASCII text
Dé-commenter les entrées respectives de ''ALLOWHIDDENDIR'' et ''ALLOWHIDDENFILE'' dans ''/etc/rkhunter.conf'' pour ne plus mentionner ces faux-problèmes.
=== Automatisation ===
Il tourne par défaut régulièrement (via ''/etc/cron.daily/rkhunter'') ainsi qu'a chaque mise à jour du système.
Pour permette une mise à jour automatique de la base rkhunter, dans ''/etc/default/rkhunter'' on peut mettre ''APT_AUTOGEN="true"''. Cela permet d'utiliser ''apt'' de façon transparente (ce n'est pas forcément recommandable, surtout en production).