Sécurité De votre système Ubuntu

Ubuntu est un système relativement sûr1), mais cela ne doit pas vous empêcher d'être vigilant et de suivre quelques recommandations.
Voici comment protéger efficacement vos données personnelles.

Parce que vos informations personnelles sont enregistrées à l'​intérieur de votre système,​ et sans sécurisation il serait facile d'​accéder à toutes vos données à distance et encore plus facilement physiquement.

C'est pourquoi il est nécessaire de définir une méthode de sécurité fiable .

Pour les particuliers

Pour le particulier, l'enjeu est plutôt la tranquillité et la stabilité du système.

Cela signifie un système régulièrement mis à jour et l'installation de logiciels uniquement à partir des dépôts officiels. Éventuellement un disque dur chiffré, afin d'éviter le vol d'informations et de protéger les données personnelles en cas de vol de la machine.

Pour les entreprises

On ne le répétera jamais assez, surtout aux PME/PMI : la sécurité est un enjeu majeur d'une politique économique !

Nous sommes entrés dans l'ère d'un capitalisme sauvage, où tous les coups sont permis pour semer et/ou abattre la concurrence.
Avec le développement des moyens de communication numériques dans l'entreprise, un nombre colossal d'informations, y compris vitales, deviennent accessibles par le réseau.

Ainsi voit-on se développer les « Officines d'intelligence économique », c.-à-d. des boîtes d'espionnage, pour parler sans euphémismes, tenues par des anciens de la DGSE ou de la PJ et avec elles les intrusions dans les réseaux, les vols de matériel… « EDF, le pirate et les officines » ; site : Archives Le Point ; auteurs : Jean-Michel Décugis, Christope Labbé, Olivia Recasens ; date : 23 avril 2009.

À ce propos, la DCRI organise régulièrement des stages de sensibilisation à la sécurité informatique2), avec des difficultés certaines, étant donné l'ignorance totale des utilisateurs à l'égard de cette menace. - Lien mort ! Voir aussi : Formations de l'ANSSI sur la sécurité informatique.

La sécurité dans les entreprises passe donc :

  • par la limitation de l'accès au matériel (zones réservées, restrictions…) ;
  • par la sécurisation physique du matériel (antivols, armoires fortes…) ;
  • par la sécurisation virtuelle du matériel, des données et informations (lecteurs biométriques, disques chiffrés…) ;
  • par la sécurisation des réseaux et des communications (formats de transfert chiffré : SSH…) ;
  • par la formation du personnel aux risques.

Pour aller plus loin :

La sécurité en informatique est un terme très large. Voici quelques liens particulièrement intéressants :

Ces articles sont assez complets et permettent d'entrevoir les problématiques liées à la sécurité informatique.
Entre autres notions de base expliquées dans les liens ci-dessus, voici les points les plus importants :

  • la sécurité comporte un aspect psychologique et un aspect objectif ;
  • l'approche objective de la sécurité s'intéresse aux causes (anglais : causes) et aux effets (anglais : effects) ;
  • la notion de sécurité met en relation les milieux technique et humain : elle touche directement la formation des personnes ;
  • la sécurité augmente avec la connaissance et diminue avec l'ignorance : tout ce que je ne sais pas mais que les autres savent est un danger potentiel (paranoïa) ;
  • la sécurité d'un système d'informations est égale à celle de son maillon le plus faible ;
  • il convient d'adapter les mesures de protection aux risques encourus.

Quelques points si votre ordinateur est connecté à Internet ou à un réseau.

Mettre à jour ses routeurs

Les virus sont aussi sur vos routeurs et BOX ADSL :

Solutions à ce jour :

  1. rebooter le routeur pour remettre la configuration à zéro
  2. ou installer un firmware libre dont vous pourrez surveiller l'activité et que vous pourrez mettre à jour. C'est d'ailleurs le seul moyen, car vous n'avez pas la possibilité de voir l'activité avec les firmwares fournis par défaut (qui sont, comme beaucoup de choses propriétaires, non mis à jour pour la sécurité).

Mettre Ubuntu à jour régulièrement

Mettez votre système régulièrement à jour afin de profiter des derniers correctifs de sécurité. Par défaut, Ubuntu recherche les mises à jour tout seul, mais si vous souhaitez vérifier manuellement cliquez ici.

Utiliser un pare-feu (Firewall)

Voir la page concernant les Pare-feu.

Voici une liste non exhaustive des principaux outils pour filtrer les connexions réseaux :

  • ufw : est un utilitaire pour régler facilement le firewall
  • iptables - Iptables, le firewall en ligne de commande pour Linux;
  • Leopard Flower : un firewall applicatif;
  • shorewall : un outil pour configurer plus facilement Netfilter;
  • fail2ban : bloque les tentatives de connexions;
  • snort : détection d'intrusions par règles;
  • Hosts : Blocage d'adresse dangereuse;
  • PGLD : Blocage d'adresse dangereuse - chargement des listes peerguardian sur internet automatiquement;
  • denyhosts : bloque aussi les tentatives de connexions;
  • picviz - Analyseur des fichiers log sous forme de graphique.

La plupart des navigateurs Web intègrent un gestionnaire de mots de passe. Si vous ne le protégez pas avec un mot de passe maître (ou principal), les mots de passe enregistrés seront accessibles en clair, à certains programmes et à toute personne ayant accès à votre navigateur.

Pour Firefox, vous pouvez ajouter les modules:

UblockOrigin qui permet de bloquer notamment les publicités et certains cookies intrusifs.

NoScript Security Suite, moins facile d'usage, ne permet l'exécution de scripts JavaScript que sur les domaines de confiance de votre choix (p.ex. le site de votre banque).
Détecte et empêche le crossitescripting, et améliore la sécurité des greffons , java (attention ce sont des greffons propriétaires)…

Éviter la session super-utilisateur en mode graphique

Un programme n'est pas à l'abri de failles de sécurité.
Si une faille est présente et que le programme est lancé en tant qu'utilisateur normal, dans le pire des cas, ce seront vos données personnelles qui seront endommagées.
Par contre, si le programme est lancé en tant que super-utilisateur, une faille pourrait éventuellement permettre d'effectuer toutes les actions permises aux super-utilisateurs (suppressions de fichiers systèmes, installation de programmes…).

Un autre risque est celui d'une erreur humaine. Par exemple, si vous lancez Nautilus en super-utilisateur, vous pouvez supprimer des fichiers systèmes, modifier n'importe quel fichier…

Ainsi, il est recommandé d'éviter de lancer les programmes graphiques en tant que super-utilisateur, quand cela peut être évité. À plus large échelle, il est fortement recommandé de ne jamais démarrer un environnement de bureau (Gnome Shell, KDE…) en tant que super-utilisateur.

Désactiver le "Bureau à distance"

Le "Bureau à distance" est une fonctionnalité permettant de contrôler graphiquement votre ordinateur de l'extérieur.
Avoir cette fonctionnalité activée peut être dangereux, surtout si le mot de passe utilisé n'est pas suffisamment efficace.
Un utilisateur malicieux pourrait alors prendre le contrôle de votre ordinateur (avec les droits d'utilisateur normaux) et accéder à vos fichiers…
Ainsi, il est conseillé de le désactiver lorsqu'il ne vous est pas utile.

Voir la page Bureau à distance.

Pour le désactiver, entrez la commande suivante dans un terminal :

gsettings set org.gnome.Vino enabled false

Vous pouvez mettre cette commande dans les programmes au démarrage, afin d'automatiser la dévalidation à la connexion.

Sécuriser sa connexion internet sans fil (wifi)

Voir la page wifi.

Antivirus (pour éviter d'infecter des postes Windows)

Logiciels

  • SSH : SSH permet de connecter une console distante sécurisée sur une autre machine;
  • Openvpn : Installation du client OpenVPN (tunneling sécurisé sur IP), tutoriel complet sur les possibilités de OpenVPN;
  • vpnc- Installation du client VPNC (compatible Cisco System);
  • Protocole PPTP : Installation de pptp dans le NetworkManager;
  • openvas : Logiciel pour scanner les réseaux et les failles des terminaux présents sur le réseaux, clone libre du scanner réseau Nessus;
  • netdiscover : Outil actif/passif de découverte d'adresses réseaux utilisant des requètes ARP. Installez le paquet netdiscover.

Voir aussi la page Réseau.

Sécuriser son serveur

  • Ce logiciel nikto contient des scripts déjà écrits et prêts à l'emploi (ce qui fait gagner un temps précieux), ainsi vous pourrez tester les failles de sécurité de votre site web.

Voir le portail Serveur.

Isoler votre ordinateur via un réseau local ou une box ADSL

Explication :
Dans cette méthode, votre ordinateur a une adresse IP qui est directement accessible depuis internet ce qui facilite amplement les attaques et vous rend vulnérable à celles les plus élaborées (notamment sous linux).

Cette méthode est simple et consiste à créer un réseau privé qui isole en partie (via des ports) vos ordinateurs par rapport à internet et pour l'appliquer, il s'appuie sur les box ADSL. En effet ces dernières comportent un mode routeur qui sépare en quelque sorte internet de votre propre réseau en vous attribuant des IP privées (192.168.0.0/16, 172.16.0.0/12 ou 10.0.0.0/8).
Toutes les requêtes provenant d'internet sont interceptées par votre box ADSL qui agit comme un tampon entre internet et vos ordinateurs.
Il suffit ensuite d'autoriser la redirection (forward) de ports pour certains logiciels (p2p, bittorent, …) tel que aMule, bitTorrent ou Transmission.

  • Freebox ADSL

Voir freebox pour savoir ouvrir des ports de connexions.

  • SFR ADSL

Limiter les droits d'accès aux fichiers

Cette rubrique concerne les droits d'accès à vos données ou aux données de tiers.

Définitions :

Quelques outils :

  • Sudo : Qu'est-ce que sudo ? Comment avoir des privilèges sans être root ?
  • apparmor : un outil qui permet de verrouiller les applications en limitant strictement leur accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement. Installation facile sur ubuntu, et mis à jour par canonical.
  • SELinux : qui permet de définir une politique de contrôle d'accès obligatoire aux éléments d'un système basé sur Linux.

Chiffrer ses données

Le chiffrement (la cryptographie) est une façon efficace de conserver et d'échanger des données sans que quiconque ne puisse les interpréter.

Chiffrer un disque

Chiffrer des dossiers

  • encfs : Chiffrer des répertoires avec EncFS.
  • Créer un dossier privé et chiffré dans le /home avec Ecryptfs.
  • Créer une archive Zip : sélectionner le dossier à chiffrer avec un clic-gauche, faire un clic-droit ⇒ Compresser, sélectionner le format .zip ⇒ cliquer sur la flèche à côté d'Autres options, écrire le mot de passe souhaité (à conserver précieusement ;-)) puis cliquer sur créer.
  • Veracrypt un outil de grande qualité, multi-plateforme, et qui a été développé sur base de Truecrypt et permet de créer un "conteneur" de fichiers chiffré très sûr et portable.
  • Cryptomator3) logiciel libre multi-plateformes de chiffrement à la volée.

Chiffrer des communications

  • GnuPG : logiciel de chiffrement très utilisé pour les communications sécurisées
  • Enigmail : logiciel de chiffrement et signature numérique de courriel pour Thunderbird (plus nécessaire ?)

Chiffrement portable : chiffrer ses données n'importe où (compatibilité multi-os, sans privilèges administrateur)

  • Peazip Ideal pour chiffrer ses dossiers professionel. Peazip est un outil de compression des données, mais qui permet de chiffrer les archives avec une clé AES-256 bit. Les versions portable (linux (i386, arm…), windows et Mac) sont téléchargeable sur le site officiel.
  • Gpg4usb: logiciel de chiffrement basé sur GnuPG. Mais en version portable. Il est compatible avec Windows, Mac, et Linux, et ne pèse que quelque Mo. Un incontournable.
  • Veracrypt Veracrypt est aussi disponible en mode portable pour windows et Linux/Mac (necessite possiblement les droit root à l'utilisation).
  • Les applications Android : C'est du bricolage, mais les applications Android peuvent tourner dans Chromium ou google-chrome. L'astuce ici consiste à télécharger Chrome/Chromium en mode portable (sur Linux, le format portable est appimage), ainsi que l'extension ARC-Welder (par exemple). Vous n'avez plus qu'à utiliser l'application de chiffrement Android de votre choix, n'importe où.
Néanmoins, cette dernière méthode (celle utilisant une application Android) n'est pas recommandée car elle dépend de la sûreté de l'application Android sélectionné, et de la confidentialité de ARC-Welder. À utiliser à vos risques et périls.

Effacer / Détruire définitivement un fichier

Outil Action Dans la distribution
shred Détruire un fichier pour qu'il ne soit pas récupérable. Oui , installer coreutils
wipe Pour détruire un dossier, utiliser. Oui, installer wipe
nwipe Pour effacer un disque dur sans qu'il ne soit récupérable. Oui, installer nwipe
secure-delete Contient plusieurs outils :
sdmem
sfill
srm
sswap
Oui, installer secure-delete
dcfldd Peut effacer un disque en utilisant un pattern Oui, installer dcfldd
bleachbit Effacer des fichiers ,rendre l'espace libre irrécupérable. Oui, installer bleachbit


Il existe des extensions pour nautilus telle que apt://nautilus-wipe qui ajoute les entrées « Effacer en toute sécurité » et « Remplir l'espace vide de manière sécurisée » au menu accessible par le clic-droit.

tutoriel court et didactique sur la série d'outils Secure-Delete, dont un des outils (sfill) permet notamment d'effacer réellement (en réécrivant par-dessus des données aléatoires en multiples passes) tout l'espace inutilisé du disque dur (c'est-à-dire notamment tous les fichiers et répertoires que l'utilisateur a déjà effacés "classiquement").

La sécurité de vos données passe aussi par leur sauvegarde, car vous n'êtes pas à l'abri de divers problèmes (suppression par erreur, mise à zéro,…)

Pour plus d'informations, consulter le portail sauvegarde.

Logiciels de gestion de mots de passe

  • keepassx : génération, gestion et stockage sécurisé de mots de passe et autres données personnelles.
  • Seahorse est le logiciel de gestion de mots de passe par défaut d'Ubuntu.
  • keepass2 Un gestionnaire de mots de passe qui tourne avec mono.
  • KeepassXC Fork communautaire de keepassX
  • pwgen : générer des mots de passe pour vos sessions
  • revelation : Un gestionnaire de mots de passe.
  • pasaffe : Un gestionnaire de mots de passe.
  • Bitwarden : Un gestionnaire de mot de passe open source (peut également sauvegarder dans le cloud si vous préférez).

Choisir de bons mots de passe

Ce tutoriel est valable pour tous les mots de passe que vous pouvez avoir : au démarrage d'Ubuntu mais aussi votre messagerie mail, certains logiciels et certains sites internet.

Ressources

Méthode de choix de mots de passe plus particulièrement appliqué à la connexion de site internet.

Ci-dessous des éléments de méthodes de choix et d'organisation de ses mots de passe en prenant en compte les lieux de connexion en ligne et les matériels.

Principe

  • Un bon mot de passe contient au moins 8 caractères alphanumériques. Il est le plus aléatoire possible, c'est-à-dire qu'il contient des majuscules, des minuscules, des symboles, des chiffres et des caractères spéciaux. Le mot de passe ne doit pas pouvoir être trouvé dans un dictionnaire.
    • → Déconseillé : Alice (nom) - Voiture (mot) - 12345 (combinaison "basique") - 12091990 (date de naissance)
    • → Déjà mieux : gHnvKKpm (variation majuscules/minuscules, mais il manque les chiffres et les symboles)
    • → Conseillé : ?acE5Ght67! (variation majuscules/minuscules/lettres/chiffres/symboles)
  • Il est recommandé de changer de mot de passe régulièrement.
  • De ne pas l'écrire autre part que dans son cerveau.
  • De ne pas utiliser le même mot de passe pour s'authentifier en des lieux différents.

Astuce

  • Pour se souvenir d'un mot de passe complexe on peut utiliser les premières lettres de chaque mot d'une poésie, d'un texte…
    • → « Lsldvdl'a. » : « Les sanglots longs des violons de l'automne. »
    • → « L,jmscdbh. » : « Longtemps, je me suis couché de bonne heure. »
    • → « Tlm,jmlà8h. » : « Tous les matins, je me lève à 8 heures. »
  • Pour créer un mot de passe complexe facilement ( Pour le forum Ubuntu par exemple )
  1. Liste numérotéePrenez votre prénom : Frédéric
  2. Supprimer les e : Frdric
  3. Ajouter des chiffres ( "c" est la 3ème lettre dans l'alphabet, puis 4 pour suivre ) : Frdri34
  4. Ajouter un caractère spécial ( le fµ pour forum Ubuntu ) : Frdri34fµ

Résultat : quelques années pour craquer ce mot de passe facile à mémoriser.

L'astuce dite de la méthode des « bases »

Pour mieux diversifier ses mots de passe et s'en souvenir facilement, on peut avoir recours à la technique des « bases ».
Par principe, chacune de ces bases sera utilisée selon le contexte d'identification :

  1. Liste numérotée une pour votre OS
  2. Une pour verrouiller le matériel (BIOS)
  3. Une autre pour le web et comptes messageries instantanées ou non
  4. Un dernier pour allonger le tout ou l'utiliser en dépannage.

L'objectif et l'avantage est de pouvoir ensuite cumuler les bases pour obtenir une super passe-phrase, donc plus de sécurité si nécessaire.
La mémorisation de petites sections est d'autant plus facile qu'on les utilise indépendamment et couramment.

Pour être encore plus sûr, tout en étant facilement mémorisable, on ajoute des variables et des séparateurs : un séparateur sera inséré entre chaque base et sa variable s'il y en a.
Ainsi vous avez des repères logiques et des contextes où appliquer ces mots de passe, fluctuants, mais bien structurés pour vous.

Par exemple :

Base 1 [moi] : 8-12 caractères. C'est votre mot de passe courant pour votre OS. Par exemple une citation ou un acronyme comme expliqué plus haut.

+ séparateur(s) (dièse, arobase, astérisque, virgule, parenthèse, point d'interrogation, etc.)

Base 2 [mon matos] : 4-6 caractères. C'est le mot de passe bref pour, par exemple, votre BIOS.
Choisissez-le bien : on y va rarement tous les jours, à moins de verrouiller le poste.
Dans ce cas, ce ne doit pas être le même…

+ séparateur

Base 3 [les tiers] : 6-8 caractères.
Votre mot de passe web (plus variantes : voir plus bas).

+ séparateur

Base 4 [pré carré] : 6-10 caractères ou plus. Un mot de passe numérique, facile à retenir, mais avec l'insertion de séparateurs (exemple : date de naissance « 13:06:1924:8h », date historique « Marignan:1515 »).
Cette base est uniquement destinée à allonger les trois autres en passe-phrases, mais ne doit jamais être utilisée seule sans variables.

Cas de la base 3 Méfiez vous des sites web qui, à la souscription, vous confirment par mail l'ouverture de votre compte et y indique votre mot de passe en clair.
Il vaut mieux éviter d'utiliser toujours le même… Ou mieux, d'en donner un simple genre 12345678 puis de changer cela ensuite.

Il est recommandé d'ajouter une sécurité supplémentaire à cette base 3 : par exemple des caractères extraits du nom de domaine du site (invariant).
Un mot de passe sur un compte du forum.ubuntu-fr.org peut devenir monpasseweb%FURO. Ainsi les mots de passe sont faciles à mémoriser et toujours différents…

Pour le changement de mot de passe, on peut choisir de lire à l'envers monpasseweb%ORUF ou n'utiliser que les consonnes, etc.

En résumé

  • Vous pouvez utiliser couramment base1.
  • Vous pouvez utiliser base1 + séparateur+ base2 comme super mot de passe (compte administrateur).
  • Vous pouvez utiliser Base3 et une variable comme mot de passe avec les tiers.
  • Vous pouvez utiliser la Base4 et une variable comme mot de passe confié ponctuellement à une connaissance.
  • Vous pouvez utiliser l'ensemble des bases avec leur séparateur pour une passe-phrase de plus de 40 caractères.

Évitez de changer plus d'une base à la fois ainsi que de modifier les séparateurs, ils sont structurants.
Si vous avez un doute sur la confidentialité d'une base, ajoutez seulement le séparateur suivant et si vous voulez, la base suivante !

Bien entendu il faut personnaliser tout cela et que cela corresponde à votre logique. Gardez seulement le principe des bases, des séparateurs et des variantes.
Le tout bien structuré et chaque partie mémorisée et contextualisée empêchera tout voyeur de faire comme dans les films : craquer votre login en vingt secondes avec le nom du chien.

Éviter les utilisateurs sans mot de passe

Risque: il est possible de supprimer tout mot de passe sur un compte utilisateur, en

  • cochant l'option "connexion automatique" dans le cas d'un utilisateur unique
  • ou dans le cas d'utilisateurs multiples en éditant le fichier /etc/passwd et supprimer le deuxième champ dans les lignes pour les utilisateurs concernés, afin que les lignes commencent par l'identifiant, puis :: (sans rien entre les 2 deux points).

Pour se connecter il suffira d'appuyer sur entrée à la demande du mot de passe (mot de passe vide).
Ceci peut être pratique par exemple dans le cas d'un système multi-utilisateur lorsque ceux ci ne veulent pas se connecter avec un mot de passe.

Solution : ne pas supprimer le mot de passe sur un compte utilisateur.

Solution alternative : si vous avez un compte utilisateur sans mot de passe, attention à supprimer tout accès à distance à la machine pour limiter les risques d'intrusions, et empêcher tout intrus d'avoir un accès physique à la machine.

Ces mesures sont bien sûr à adapter à votre besoin.

Limiter l'accès physique à l'ordinateur

Pour empêcher un intrus de vider la mémoire du BIOS (et donc la protection par mot de passe) en ouvrant l'unité centrale, puis booter sur un live-CD ou live-USB (ce qui lui confère un équivalent des droits root sur la machine), il faut :

  • Premièrement, rendre difficile l'accès physique à la machine (salle fermée et surveillée par exemple pour une entreprise)
  • Deuxièmement, rendre difficile à un intrus d'ouvrir la machine (cadenas sur l'unité centrale par exemple)

Sécuriser le démarrage de l'ordinateur (BIOS)

Pour empêcher un intrus de changer l'ordre de boot pour démarrer sur un live-CD ou live-USB par exemple (ce qui lui confère un équivalent des droits root sur la machine), il suffit de mettre un mot de passe au BIOS.
Pour cela, il faut trouver "Administrator password" ou "password" dans le menu du BIOS (l'interface change suivant les cartes-mères) et définir un mot de passe.

Remarque : Il faudra aussi empêcher les intrus d'ouvrir la machine car la majorité des cartes-mères sont équipées d'un petit cavalier, en général à coté de la pile du BIOS, qui permet de « remettre à zéro » tout ce qui a été paramétré au niveau du BIOS, y compris le mot de passe.
Parfois, le simple fait de retirer la pile du BIOS pendant plusieurs secondes aboutit au même résultat.

Sécuriser le démarrage d'Ubuntu (GRUB)

1ère méthode

Risque :

Par défaut, le logiciel chargeur de système Grub inclut dans la liste des choix de système Ubuntu en Recovery mode.
Sur un ordinateur isolé (= sur lequel la gestion d'accès est gérée localement et non pas par un serveur) il suffit de choisir cette option pour profiter des droits root sur la machine, sans avoir à montrer patte blanche (pas de nécessité de mot de passe pour accéder aux droits administrateurs) !

Solution : empêcher un intrus de démarrer votre ordinateur en mode recovery.

Attention, la solution dépend de la version de grub ( ie grub vs grub2 qui est maintenant déployé par défaut )

Pour GRUB 1 ( <= 0.97 )

Pour cela, éditer le fichier « /boot/grub/menu.lst », au choix :

Mettre un mot de passe à GRUB pour les opérations de modification d'une entrée :

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
password --md5 "hash md5 de votre mot ou phrase de passe"

ou

password "votre mot de passe"

Pour obtenir le hash md5 d'un mot de passe utilisez la commande :

grub-md5-crypt

Enlever la création automatique d'une entrée recovery

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery mode) single
# altoptions=

ou

Faire que ces entrées soient protégées par mot de passe.

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=true

Puis, mettre à jour GRUB :

sudo update-grub

Pour Grub 2 ( version >= 1.98 )

L'idée est d'empêcher un utilisateur ayant la possibilité de redémarrer votre machine et d’accéder à grub puisse réinitialiser votre mot de passe et accéder à vos données sans même avoir à démonter le disque de votre machine, la procédure est tellement courante qu'elle fait l'objet d'un tutoriel : https://doc.ubuntu-fr.org/tutoriel/comment_changer_son_mot_de_passe_principal

Grub2 ( version > 1.98 ) est vraiment plus configurable que Grub1 ( version ⇐ 0.97 )
Mais cela va aussi avec deux niveaux de générations de scripts (bash, sh) utilisant le contenu de /etc/grub.d/ et /etc/default/grub pour générer un /boot/grub/grub.cfg avec la commande sudo update-grub.
Donc toutes les modifications faites à la main dans grub.cfg seront perdues à chaque mise à jour, c'est pourquoi il faut ajouter les modifications dans des sources utilisée pour la génération.

Il est possible avec grub2 d'entrer en mode commande ou d"éditer les entrées, ainsi tout devient possible et il est très facile de devenir root, même sans utiliser le recovery-mode.
Ce que je propose ici est de mettre un mot de passe pour l'utilisation des modes editions 'e' et commande 'c' de grub.

L'idéal serait de disposer d'un script… ce que je vous propose plus bas.

En attendant en se basant sur https://www.justegeek.fr/proteger-ledition-du-grub-avec-mot-de-passe/ en français ( et des commentaires de ce post ) on peut avancer.

Personnellement j'ai décidé de créer un fichier /etc/grub.d/00_security_header

Qui contient :

#! /bin/sh
cat <<EOF
# Password
set superusers="ubuntufr"
password_pbkdf2 ubuntuffr grub.pbkdf2.sha512.10000.92491FF0E518FFB426EEEFFD33A9506CE8F8F70DAFA4669EDB58C13DC8BEC65EB95BD306F62CD360E8C7B20D5EB0B61B1A45D60A5779168584D7A60134C29079.671C3CFA286229CAF7C561232EFC70549BFFE4F20B34E376830769CCB647569F9504CAA3948F11C96DBBA574EC47B8DA42972E41E7A6F1501188BFE84A45455E
set menuentry_id_option="--unrestricted \$menuentry_id_option"
EOF

Puis on donne les droits en exécution dessus :

 sudo chmod +x /etc/grub.d/00_security_header

Nous exécutons update-grub :

 sudo update-grub

Pour une raison non déterminée, les droits du fichier généré /boot/grub/grub.cfg ne sont pas bons.
Il faut donc faire ceci :

 chmod 444 /boot/grub/grub.cfg

Le contenu grub.pbkdf2 correspond ici au mot de passe 'test' et a été généré à l'aide du programme grub-mkpasswd-pbkdf2

Voici un script qui doit faire le boulot, j'en suis l'auteur donc vous pouvez en faire ce que bon vous semble mais sans garantie aucune autre que le fait que je l'ai utilisé sur ma machine et que cela a marché ( Ubuntu 16.04.1 LTS 64 bits avec grub 2.02~beta2-36ubuntu3.2 ).

#!/bin/bash

usage()
{
    echo "Creating a grub password to protect grub menu from edition at boot"
    echo "Basé sur https://www.justegeek.fr/proteger-ledition-du-grub-avec-mot-de-passe/ (french)"
    echo "With help from https://help.ubuntu.com/community/Grub2/Passwords"
}

create_private_dir()
{
    if [[ -d ~/.grubedit ]]
    then
	echo "~/.grubedit already exists"
    else
	mkdir ~/.grubedit
    fi
}

create_stamp_if_not_set()
{
    if [[ -z $stamp ]]
    then
	stamp=$(date +%d%m%Y%H%M%S)
	# guess why
	sleep 1
    fi
}

private_grub_backup()
{
    cp /boot/grub/grub.cfg ~/.grubedit/grub.cfg.$stamp.backup
    cp /etc/grub.d/00_security_header  ~/.grubedit/00_security_header.$stamp.backup
}

update_header_with_password()
{
    LANG=C grub-mkpasswd-pbkdf2 | {
	echo "Entrez le mot de passe deux fois"
    while read LINE
    do
	if [[ $LINE =~ (grub\.pbkdf2\..*) ]]
	then
	    PDKDF2=${BASH_REMATCH[1]}
	    echo "see $OUTFILE"
	    cat <<EOFE >$OUTFILE
#! /bin/sh
cat <<EOF
# Password
set superusers="$USER"
password_pbkdf2 $USER $PDKDF2
set menuentry_id_option="--unrestricted \\\$menuentry_id_option"
EOF
EOFE

	fi
    done
    }
    if [[ -f $OUTFILE ]]
    then
	sudo cp $OUTFILE $OUTSYSFILE
	sudo chmod a+x $OUTSYSFILE
	sudo update-grub
	# looks weird, but when addding a script this had an impact on generated permissions
	sudo chmod 444 /boot/grub/grub.cfg
    else
	echo "[ERROR] no security password grub file generated ( $OUTFILE does nor exists )" >&2
    fi
}

remove_security_password()
{
    if [[ -n $OUTSYSFILE ]]
    then
	echo "Suppression de $OUTSYSFILE"
	sudo rm $OUTSYSFILE
    fi
}

create_private_dir
create_stamp_if_not_set
OUTFILE=~/.grubedit/00_security_header.$stamp.new
OUTSYSFILE=/etc/grub.d/00_security_header

while [[ $# > 0 ]]
do
    case $1 in
	remove)
	    remove=1
	    break
	    ;;
	create)
	    create=1
	    break
	    ;;
	help)
	    usage
	    exit 0
	    break
	    ;;
	*)
	    echo "[ERROR] unrecognized option $0" >&2
	    exit 1
	    ;;
    esac
    shift
done

private_grub_backup
    
if [[ $remove == 1 ]]
then
    remove_security_password
    sudo update-grub
else
    update_header_with_password
fi

echo "Fait"

Sauvez-le dans un fichier createagrubpasswd.sh

Pour le lancer il faut d'abord le rendre exécutable pour tous :

 chown u+x  ./createagrubpasswd.sh
 

Puis nous exécutons le script :

 ./createagrubpasswd.sh
 

Entrez le mot de passe en validant avec entrée, et refaites le une seconde fois pour vous assurer de ne pas avoir fait une faute de frappe.

Au prochain redémarrage, si vous désirez édtier le menu de grub ( 'e' ) ou entrer en ligne de commande ( 'c' ) l'utilisateur, votre utilisateur courant vous sera demandé et le mot de passe que vous avez choisi.

Pour supprimer ce que vous venez de mettre en place relancez le script avec l'option remove

  ./createagrubpasswd.sh remove
 

Remarque pour protéger toutes les entrées toujours avec le même mot passe, il suffit de commenter la ligne contenant –unrestricted dans le script.

2ème méthode

La deuxième méthode consiste à mettre un mot de passe au compte superutilisateur, veuillez pour cela vous référer à la section 2 de la page root.

Chiffrer un disque dur ou une partition

Sécuriser son Bluetooth

Voir la page Bluetooth.

Logiciel antivol

Si vous utilisez la connexion automatique et que vous craignez de vous faire voler votre ordinateur, il peut être intéressant d'utiliser le logiciel Pombo qui vous aidera à récupérer votre ordinateur en cas de vol.

Voir aussi le logiciel Prey qui propose la même chose sans avoir a installer de serveur

Vidéo-surveillance / détecteur de mouvements

Voir Vidéo-surveillance.

Restreindre les horaires de connexion

Voir la page dédiée à l'anonymat.

Afin de boucler la boucle (feedback/système) vous pouvez tester la sécurité en place, ou que vous désirez mettre en place, et décider en conséquence.

Pour cela vous pouvez utiliser ces outils :

Page
Agent ACGVision
Aide: Advanced Intrusion Detection Environment
Ajouter TLS SSL
Amanda
Annexe à la page "Sudo : effectuez des tâches administratives"
Anonymat, confidentialité et vie privée
APF Firewall - Pare feu
AppArmor : gestion des droits d'accès sur les applications
Augmenter la sécurité de connexion avec pam_cracklib
Backup-manager : Un utilitaire simple et accessible de gestion de sauvegarde
Bannir des IP avec fail2ban - v2020
BlueProximity
Borg Backup : un outil de sauvegarde extrêmement simple mais puissant (et gérant la déduplication)
Bureau à distance / accès à distance
Cacti : un serveur de supervision
Cartes à puce sous Ubuntu
Certificat Opalexe
Chiffrement de fichiers et de partitions avec VeraCrypt
Chiffrer et signer ses courriels avec Evolution
Chiffrer son courriel avec Mozilla Thunderbird et Enigmail
Chiffrer votre système manuellement avec le swap aléatoire
Chiffrez aisément vos répertoires avec EncFS
Chillispot : portail captif
Chroot : changement d'environnement
ClamAV
Client OpenVPN
Cluster SSH
CmosPwd - Mettre à zéro le mot de passe du BIOS
Comment créer un certificat SSL ?
Comment installer Ubuntu sur un RAID-1 logiciel ?
Comment installer un relais mail sécurisé ?
Comment réinitialiser votre mot de passe Windows ?
Comment s'authentifier sur Ubuntu à partir d'une clé USB ou d'un téléphone
Comment se protéger des Fork Bomb ?
Configuration avancée de l'utilitaire sudo
Contrôle parental
Contrôle parental avec DansGuardian
CoovaChilli
DenyHosts
DNSCrypt
Domotiga - Domotique libre
Domotique - Contrôler l'habitat du futur
Dr.Web antivirus pour Linux
DRBD : Synchronisation de données via le réseau
Droits d'accès sous Linux : gérer les accès aux fichiers
Droits de super utilisateur
Désactiver les mots de passe
Ecryptfs : Chiffrer son /home ou créer un dossier privé chiffré
Effectuer des tâches administratives
Effectuez des tâches administratives
EncFS_exemples
Fixer les ports pour un partage NFS
Fonctionnalités avancées de SSH
Fonctionnalités avancées de SSH
FWSnort - Système de Prévention d'intrusion
gnome-encfs-manager ou comment chiffrer facilement vos données
GNU Privacy Guard
GreenSQL : Pare-feu applicatif SQL
Gufw : interface graphique du pare-feu UFW
Gérer la sécurité d'une installation ubuntu avec une clé usb
Gérer les droits d'accès (propriétés et permissions) des fichiers et répertoires
Haute disponibilité
Heartbeat
HLBR : Système de prévention d'intrusion
Icinga
Installation d'un centre multimédia de salon sécurisé
Installer des partitions chiffrées.
Installer et configurer un UPS APC avec Ubuntu
Installer Ubuntu avec LVM sur une partition chiffrée via dm-crypt
IPS : Système de prévention d'intrusion
Iptables
KeePass
KeePassXC
Kgpg : Interface graphique à GnuPG
L'antivirus BitDefender
L'identification électronique : utiliser une carte d'identité électronique belge
La commande sudo
Lacie Safe Mobile Drive sous Ubuntu Dapper
Le gestionnaire de mises à jour
Lecteur d'empreintes Validity™ & Swipe™ chipset VFS 0050
Leopard Flower
Les antivirus sous GNU/Linux
Les fichiers Hosts et hostname
Les restrictions horaires sous Linux
LinSSID
LinuxMCE : Media center et contrôle de votre habitat
Logiciels portables et virtualisation d'applications sous Ubuntu Linux
Logwatch
Maintenance étendue des mises à jour de sécurité (ESM)
Motion
Mots de passe et clés de chiffrement
Nagios : moniteur de supervision
Nikto, Scanner de Sécurité pour Server Web
NOD32™ Antivirus pour Linux
NuFW - Pare-feu identifiant
Off-the-Record (OTR) Messaging
OpenVAS : scanner de vulnérabilité
OpenVPN
Pare-feu informatique
Pare-feu informatique ou Firewall
Partition chiffrée avec Cryptsetup
Pasaffe
Perdition : création d'une passerelle pour l'IMAP et le POP3 (sécurisée ou pas)
PGLD
Picviz
PolKit : Gestion des droits des utilisateurs
Port Knocking : sécuriser l'accès à un port
Portail captif
Prelude - Système de détection d'intrusion
Prey - Localisation en cas de vol
Privoxy
Préambule : FTP et "FTP-Like" sécurisés
PSAD
PuTTY
pwgen : Générateur de mots de passe
Qmotion
QRcode/Code_QR
Qu'est-ce qu'un compte d'utilisateur ?
Que faire en cas de soupçons d'un serveur compromis ?
RAID
RAID logiciel avec mdadm
rdiff-backup : Solution de sauvegarde incrémentielle
Re-configuration de Suexec
Reconnaissance du lecteur d'empreinte et enregistrement de vos empreintes
RetroShare
Revelation : gestionnaire de mot de passe
reverse SSH
Rkhunter
Sauvegarde
Sauvegarde avec Disk Archive (DAR)
Sauvegardes sur bandes magnétiques avec Dump
schroot
Se faire un espace de sauvegarde sécurité sur son serveur en ligne
secure-delete : différents outils de sécurité
SecureW2
Serveur ACGVision
Serveur de sauvegarde automatique : BackupPC
Serveur de synchronisation avec rsync
Serveur mandataire
Serveur SFTP : MySecureShell
Shorewall
Shred : détruire efficacement un fichier
SNORT - Système de détection d'intrusion
Snort Inline : Système de prévention d'intrusion
SpiderOak
Squid : serveur mandataire (proxy)
SSH
SSH Filesystem
SSH
SSL-Explorer Community Edition
Sudo : effectuez des tâches administratives
Suricata : Système de détection et de prévention d'intrusion
Système de fichiers chiffrés
Sécuriser Grub2 de manière avancée
timekpr : restreindre les heures d'utilisation
timekpr-next : restreindre les heures d'utilisation
Tinyproxy
Tor : Réseau Anonyme
Tunneliser une connexion VNC via SSH
Tutoriels : l'élévation des privilèges (avancé)
ubuproxy : Proxy TCP/IP Générique
Umit
Uncomplicated Firewall
useradd : programme pour la création d'un compte utilisateur (de façon non-interactive)
Utiliser du RAID semi-matériel
Utiliser OpenPGP et PGP/MIME avec KMail
Vidéo-surveillance
VPNC ou « libérer » sa connexion VPN Cisco Systems®
Webstrict : logiciel simple et graphique permettant de configurer un filtre web.
Wipe
X11vnc : contrôler un ordinateur à distance
Zentyal
ZeroNet
ZoneMinder: vidéo-surveillance
Élévation des privilèges
ƒprint : logiciel de lecture d'empreintes digitales

Contributeurs : Reneca et Judibet.


1)
notamment par rapport à Windows
2)
« Espionnage industriel : Un capitaine de la DST prévient les chefs d’entreprises » ; source : [Spyworld Actu] ; auteur : Reynald Clouet, Lavoixeco.com ; 29 janvier 2008.
  • securite.txt
  • Dernière modification: Le 11/10/2023, 08:30
  • par krodelabestiole