Table des matières

Sécuriser sa Debian

Dicton du jour

“Just because you're paranoid doesn't mean they're not after you!”

« Ça n'est pas parce que vous êtes paranoïaques qu'ils ne sont pas tous après vous ! »

Vos objectifs

Il n'existe pas de sécurité parfaite, mais une chose est sûre, c'est que plus on veut s'en rapprocher, et plus il faut y consacrer de temps, d'argent, d'efforts et de litres de sueur.
Si vous êtes responsable de la sécurisation d'une machine dans un cadre professionnel, il vous faut bien jauger le rapport temps à allouer / sécurité requise avant de vous lancer dans des opérations chronophages.
Si vous faites cela à titre personnel, qu'est-ce qui relève de la paranoïa et qu'est-ce qui constitue le strict minimum ?

Intégrité des données

Prenons quelques cas d'école et les solutions conseillées :

Sauvegarder, restaurer, archiver ses données

Confidentialité des données

Données présentes sur votre ordinateur

Pour des raisons de sécurité, il est recommandé de ne jamais utiliser deux fois le même mot de passe. En effet, si un des comptes se trouve compromis, alors tous les comptes utilisant ce mot de passe le sont.

Comme il est difficile de se souvenir de 100 mots de passe forts complètement différents, il existe des logiciels pour faire cela.

Firefox, Icedove / Thunderbird et d'autres logiciels proposent de mémoriser les mots de passe pour vous. Il est en règle général dangereux de confier la gestion des mots de passe à un logiciel chargé de faire autre chose. En particulier, des failles dans Firefox permettaient dans le passé de récupérer les mots de passe enregistrés.

Donc au lieu de cela, il est préférable d'utiliser un logiciel spécialisé, comme Keepassx

Attention, chiffrer votre disque dur et faire des sauvegardes en clair, c'est un peu idiot.

Données échangées

Le protocole SMTP et tel que les données sont en général envoyées en clair entre les différents serveurs. Cela fait d'ailleurs le bonheur de Google et des FAI et autres personnes mal intentionnées qui prennent beaucoup de soin à lire attentivement chacun de vos emails (via des scripts, pas avec des petits lutins sans papier exploités dans la cave) afin de faire des études statistiques anonymes sur vous, vos habitudes, vos produits achetés, la difficulté de vos mots de passe, etc.

Vous en aurez déduit que quand un site vous envoi votre mot de passe par mail, vous êtes bon pour le changé, un ou deux robots l'ont déjà lu.

Une autre des faiblesses de SMTP fait qu'il n'y a pas d'authentification (ou plutôt, peu, et pas toujours utilisée). Une des solutions pour palier à ces deux défauts est le chiffrement et la signature de son courrier via un outil tel GPG.

Authenticité, identité et confidentialité Pour vous protéger de tout cela, vous pouvez envoyer des messages chiffrés (personne à part votre destinataire ne peut les déchiffrer) ou/et signés (votre destinataire peut vérifier que vous seul avez pu l'envoyer et l'avez envoyé tel quel).

Un des systèmes permettant de réaliser ce chiffrement est GPG.

Il existe différentes interfaces entre GPG et différents clients de courriel.

  • Enigmail est une extension pour icedove / Thunderbird (existe aussi pour Windows)
  • mutt est configurable pour utiliser directement GPG

Attention,

dans ce cas vous faites les choses de travers et votre chiffrement était un peu inutile.

Communications entre différents ordinateurs reliés par internet

Lorsque plusieurs ordinateurs sont en réseau à l'intérieur d'une infrastructure, vous pouvez supposer que personne de l'extérieur ne pourra venir écouter ce qui se passe sur le réseau depuis l'intérieur, à moins qu'il trouve une brèche dans une des passerelles de ce réseau vers internet.

Si les ordinateurs en réseau ne sont pas tous dans un même local mais sont reliés uniquement via Internet, il est alors intéressant de créer des canaux de communication sécurisés que l'on appelle des réseaux privés virtuels.

À noter : le protocole ssh permet des échanges sécurisés, en particulier le partage de fichiers avec sshfs.

Attention, plus un réseau à de points d'entrée et plus il est exposé à un attaquant.

Détection d'intrusion

Comment savoir si votre machine subit des attaques, a été piraté ou même s'il y a encore une backdoor dessus ?

IDS : Systèmes de détection d'intrusion

Pour surveiller les attaques.

Recherche heuristique de rootkits

Détecter une intrusion après coup par les traces qu'elle laisse.

Se protéger contre les attaques

Quelques moyens

L'aspect humain

Avoir un mot de passe solide, c'est bien. Mais si c'est pour le donner au premier site de phishing venu, ça n'est pas la peine.

C'est pourquoi il est très important d'éduquer tous les utilisateurs d'un serveur sur les risques de phishing et autres arnaques.

L'idée est la suivante, et c'est un cas d'école puisque c'est ce qui est arrivé à TheOnion :

  1. Je veux pénétrer un réseau, plutôt que de bruteforcer tous les mots de passes possibles, je vais simplement les demander aux utilisateurs.
  2. Je crée une page qui ressemble trait pour trait à la page de changement de mot de passe du service
  3. J'envoie un mail aux utilisateurs (mais pas au staff) leur demandant de changer leur mot de passe. Pour qu'ils ne se doutent de rien en voyant l'url, je la camoufle en html [url=http://url2/]http://url1[/url] où url2 est une adresse sur terrain apparemment neutre (google) redirigeant vers url3 où se trouve la fausse page de changement de mot de passe.
  4. Sur les x utilisateurs, il y en a un qui tombe dans le panneau et donne son mot de passe.
  5. Je crée ensuite une page qui ressemble à une page de connexion au compte
  6. J'envoie un lien au staff depuis le compte compromis indiquant « euh, faudrait revoir cet article » avec un lien pointant vers la fausse page de connexion au compte (protégé par la même astuce que tout à l'heure).
  7. Un des membres du staff croit que cette demande d'identifiants est légitime pour accéder à l'article cité.
  8. En fait non et je récupère les identifiants du membre du staff.

Autre astuce :

  1. Je fais une page de fishing pour un site à la noix où je sais que l'utilisateur à un compte
  2. Je teste le mot de passe donné sur ce site sur son compte mail principal
  3. Ça marche, j'ai son compte mail et donc virtuellement quasiment tous ses mots de passe… (coucou paypal, ebay et autres numéros de cartes pré-enregistrés)

Attention, ces astuces ne sont pas là pour vous transformer en pirates du dimanche, mais pour vous montrer combien c'est facile et ça marche… Donc soyez prudents !

Gestion des services

Un utilisateur système sans mot de passe (au sens « pas de mot de passe valide », pas au sens « avec un mot de passe vide »), n'est pas une surface d'attaque.

La surface d'attaque, c'est le service qui tourne, et en particulier le service qui écoute sur un port.

Tu peux lister les processus en train d'écouter sur un port via

ss -pltn

Pour chacun d'eux, tu peux consulter la page man si elle existe, pour avoir une idée du rôle du programme.

Exemple :

man rpcbind

savoir d'où il provient avec dpkg :

dpkg -S rpcbind

Et une fois que tu as repéré le paquet, avoir plus d'info sur la fonction générale du paquet avec show :

apt show rpcbind

Si tu ne comprends pas à quoi sert le paquet, ou que tu n'es pas sûr d'en avoir besoin, tu peux faire semblant de l'enlever en ajoutant dans la commande de suppression remove l'option -s ainsi :

apt -s remove rpcbind

Et là, tu regardes les paquets qu'il veut t'enlever.

  1. Si ce sont des paquets dont tu n'as pas besoin, alors tu peux y aller sans trop de risque en enlevant tout ça.
  2. À l'inverse, si c'est un paquet vital qui s'en va, ça veut dire que le service en question est important pour celui-ci et donc pour ton utilisation.

Lien vers le Forum

https://debian-facile.org/viewtopic.php?pid=313960#p313960

Liens divers

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !