Nous avons exploré le cryptage et l'accès à distance sécurisé comme méthodes pour sécuriser et renforcer Linux. Le cryptage rend les données illisibles sans la clé de déchiffrement. Dans le cas où un adversaire aurait un accès physique complet à votre ordinateur portable, par exemple en le volant, nous voulons nous assurer qu'il ne lui sera d'aucune utilité. Un disque dur rempli de données cryptées devrait être aussi bon qu’un disque endommagé. Lorsque vous configurez votre système Linux avec SSH pour l'administration à distance, vous mettez également votre machine Linux à la disposition de toutes les parties intéressées. De nombreux pirates malveillants recherchent sur Internet des serveurs SSH d'écoute et commencent à deviner les informations de connexion ; généralement, ils essaient root avec les mots de passe les plus courants. Cela faisait partie de TryHackMe Linux Renforcement du système

Obtenez les notes de l'équipe bleue

Chiffrement

Le cryptage rend les données illisibles sans la clé de déchiffrement. Dans le cas où un adversaire aurait un accès physique complet à votre ordinateur portable, par exemple en le volant, nous voulons nous assurer qu'il ne lui sera d'aucune utilité. Un disque dur rempli de données cryptées devrait être aussi bon qu’un disque endommagé.

Il existe différents systèmes logiciels et outils qui permettent de chiffrer Linux systèmes. Étant donné que de nombreuses distributions Linux modernes sont livrées avec LUKS (Linux Unified Key Setup), couvrons-le plus en détail.

Nous avons les champs suivants :

  • LUKS phdr: Ça signifie LUKS En-tête de partitionLUKS phdr stocke des informations sur l'UUID (Universally Unique Identifier), le chiffrement utilisé, le mode de chiffrement, la longueur de la clé et la somme de contrôle de la clé principale.
  • KM: KM signifie Matériel clé, où nous avons KM1, KM2, …, KM8. Chaque section de matériau de clé est associée à un emplacement de clé, qui peut être indiqué comme actif dans le LUKS phdr. Lorsque l'emplacement de clé est actif, la section de matériel de clé associée contient une copie de la clé principale chiffrée avec le mot de passe d'un utilisateur. En d'autres termes, nous pourrions avoir la clé principale chiffrée avec le mot de passe du premier utilisateur et enregistrée dans KM1, chiffrée avec le mot de passe du deuxième utilisateur et enregistrée dans KM2, et ainsi de suite.
  • Données en masse: Il s'agit des données chiffrées par la clé principale. La clé principale est enregistrée et cryptée par le mot de passe de l'utilisateur dans une section de matériel de clé.

LUKS réutilise les implémentations de chiffrement par blocs existantes. Le pseudocode pour chiffrer les données utilise la syntaxe suivante :

enc_data = chiffrer (cipher_name, cipher_mode, clé, original, original_length)

Comme on peut le voir, LUKS fonctionne avec différents chiffrements et modes de chiffrement. Original fait référence aux données en clair de longueur, longueur_originale. Le mot de passe fourni par l'utilisateur est utilisé pour dériver la clé de cryptage ; la clé est dérivée à l'aide de la fonction 2 de déduction de clé basée sur un mot de passe (PBKDF2).

clé = PBKDF2 (mot de passe, sel, itération_count, dérivé_key_length)

Utilisant un sel avec une fonction de hachage répétant un nombre d'itérations garantit que la clé résultante est suffisamment sécurisée pour le cryptage. Pour plus d'informations, vous souhaiterez peut-être vous référer au Introduction à la cryptographie chambre.

De même, pour décrypter les données et restaurer le texte brut d'origine, LUKS utilise la syntaxe suivante :

original = décrypter (nom_cipher, mode_cipher, clé, données_enc, longueur_original)

La plupart des distributions vous permettent de chiffrer un lecteur à l'aide d'une interface graphique. Cependant, si vous souhaitez configurer LUKS à partir de la ligne de commande, les étapes sont les suivantes :

  • Installer cryptsetup-luks. (Vous pouvez émettre apt installer cryptsetupmiam, installez cryptsetup-luks ou dnf installe cryptsetup-luks pour Ubuntu/Debian, RHEL/Cent Système d'exploitation, et Fedora, respectivement.)
  • Confirmez le nom de la partition en utilisant fdisk -llsblk ou enfant noir. (Créez une partition en utilisant fdisque si nécessaire.)
  • Configurez la partition pour LUKS chiffrement: cryptsetup -y -v luksFormat /dev/sdb1. (Remplacer /dev/sdb1 avec le nom de la partition que vous souhaitez chiffrer.)
  • Créez un mappage pour accéder à la partition : cryptsetup luksOpen /dev/sdb1 EDCdrive.
  • Confirmez les détails du mappage : ls -l /dev/mapper/EDCdrive et cryptsetup -v statut EDCdrive.
  • Remplacer les données existantes par zéro : dd si=/dev/zéro de=/dev/mapper/EDCdrive.
  • Formatez la partition : mkfs.ext4 /dev/mapper/EDCdrive -L "Strategos USB".
  • Montez-le et commencez à l'utiliser comme une partition habituelle : monter /dev/mapper/EDCdrive /media/secure-USB.

Si vous souhaitez vérifier le LUKS paramètre, vous pouvez émettre la commande cryptsetup luksDump /dev/sdb1. Dans la sortie du terminal ci-dessous, nous pouvons voir le UUID du disque chiffré. On peut également voir que le chiffre utilisé est aes-xts-plain64. Quant à la clé, PBKDF2 a utilisé SHA256 avec le sel fourni pour 194 180 itérations.

Accès à distance sécurisé

Fournir un accès à distance à un système est un moyen très pratique d'accéder à votre système et à vos fichiers lorsque vous n'êtes pas physiquement présent au clavier du système cible. Cependant, cela signifie également que vous fournissez volontairement un service que les attaquants cibleront. Les attaques courantes incluent :

  1. Reniflage de mot de passe
  2. Devinette de mot de passe et force brute
  3. Exploiter le service d'écoute

Protection contre le reniflage de mots de passe

L'accès à distance peut être obtenu via de nombreux protocoles et services différents. Bien que tous les systèmes modernes utilisent des protocoles cryptés, tels que SSH protocole, pour l'accès à distance, les systèmes plus anciens peuvent encore utiliser des protocoles en texte clair, tels que le protocole Telnet.

Dans la figure suivante, bien que l'utilisateur ait sélectionné un mot de passe fort, celui-ci est envoyé en texte clair, lisible par toute personne disposant d'un outil de capture de paquets sur le chemin réseau.

Il est essentiel de vous assurer que vous sélectionnez un protocole qui crypte le trafic. Le SSH Le protocole existe depuis plus de deux décennies. Il a résisté à l'épreuve du temps. Il a de nombreuses utilisations allant de l’accès à distance sécurisé aux transferts de fichiers sécurisés.

Protection contre la tentative de deviner un mot de passe

Lorsque vous configurez votre Linux système avec SSH pour l'administration à distance, vous mettez également votre box Linux à disposition de toutes les parties intéressées. De nombreux pirates malveillants recherchent sur Internet des serveurs SSH d'écoute et commencent à deviner les informations de connexion ; généralement, ils essaient racine avec les mots de passe les plus courants.

La figure ci-dessous montre que le système utilise le SSH protocole pour garantir des communications cryptées ; cependant, l'authentification repose sur les informations de connexion. De nombreux utilisateurs sont tentés d’utiliser des mots de passe faibles ou de réutiliser le même mot de passe avec d’autres services. Bien que qwerty1234 ne figure pas dans un dictionnaire anglais, on le trouve généralement parmi les 10 ou 20 mots de passe les plus courants, ce qui le rend facile à deviner.

Parce que ton SSH Le serveur sera configuré pour écouter les connexions entrantes 24 heures sur 24, 365 jours par an, les utilisateurs malveillants auront tout le temps du monde pour essayer un mot de passe après l'autre. Il existe quelques directives que vous pouvez utiliser :

  1. Désactivez la connexion à distance en tant que racine; forcer la connexion en tant qu'utilisateurs non root.
  2. Désactivez l'authentification par mot de passe ; forcez plutôt l’authentification par clé publique.

Le raisonnement derrière les directives ci-dessus est que vous ne voulez pas que l'adversaire puisse attaquer le racine compte directement. De plus, même s'il s'agit d'un compte non root, vous ne voulez pas que l'attaquant y accède s'il y a une faiblesse dans le mot de passe.

La configuration du serveur OpenSSH peut être contrôlée via le sshd_config fichier, généralement situé à /etc/ssh/sshd_config. Vous pouvez désactiver la connexion root en ajoutant la ligne suivante :

PermitRootLogin non

Bien qu'un mot de passe tel que 9bNfX2gmDZ4o est difficile à deviner, la plupart des utilisateurs trouvent sa mémorisation peu pratique. Imaginez si le compte appartient au sudoers (sudo groupe), et l'utilisateur doit saisir ce mot de passe chaque fois qu'il doit émettre une commande avec sudo. Vous devrez peut-être faire preuve de discipline pour le faire, mais vous ne pouvez pas vous attendre à ce que cela fonctionne pour tout le monde.

De nombreux utilisateurs sont tentés de sélectionner un mot de passe convivial ou de partager le même mot de passe sur plusieurs comptes. L’une ou l’autre approche permettrait à l’attaquant de deviner plus facilement le mot de passe.

Il serait préférable de s'appuyer sur l'authentification par clé publique avec SSH pour contribuer à améliorer la sécurité du système de connexion à distance et à le rendre aussi infaillible que possible.

Si vous n'avez pas créé de SSH paire de clés, vous devez émettre la commande ssh-keygen -t rsa. Il générera une clé privée enregistrée dans id_rsa et une clé publique enregistrée dans id_rsa.pub.

Pour le SSH serveur pour vous authentifier en utilisant votre clé publique au lieu de vos mots de passe, votre clé publique doit être copiée sur le serveur SSH cible. Un moyen simple de le faire serait d'émettre la commande ssh-copy-id nom d'utilisateur@serveur où nom d'utilisateur est votre nom d'utilisateur, et serveur est le nom d'hôte ou l'adresse IP du SSH serveur.

Il est préférable de vous assurer que vous avez accès au terminal physique avant de désactiver l'authentification par mot de passe pour éviter de vous enfermer. Vous devrez peut-être vous assurer d'avoir les deux lignes suivantes dans votre sshd_config déposer.

  • PubkeyAuthentification oui pour activer l'authentification par clé publique
  • Mot de passeAuthentification non pour désactiver l'authentification par mot de passe

Réponses de la salle

Quelle commande pouvez-vous utiliser pour créer un mot de passe pour le chargeur de démarrage GRUB ?

Que signifie PBKDF2 ?

Que signifie LUKS ?

Nous ne pouvons pas attacher de stockage externe au Machine virtuelle, nous avons donc créé un /home/tryhackme/secretvault.img fichier à la place. Il est crypté avec le mot de passe 2N9EdZYNkszEE3Ad. Pour y accéder, vous devez l'ouvrir en utilisant configuration de cryptage puis montez-le dans un répertoire vide, tel que mon coffre-fort. Quel est le drapeau dans le coffre-fort secret ?

Un pare-feu est en cours d'exécution sur la machine virtuelle Linux. Il autorise le port 22 TCP car nous pouvons nous connecter à la machine. Il autorise un autre port TCP ; qu'est-ce que c'est?

Quel est le permis UDP port?

Quel drapeau est caché dans le sshd_config déposer?
Une façon de désactiver un compte consiste à modifier le mot de passe et modifiez le shell du compte. Quelle est la valeur suggérée à utiliser pour le shell ?

Quel est le nom du groupe sudoers des systèmes RedHat et Fedora ?

Quel est le nom du groupe sudoers sur les systèmes Debian et Ubuntu ?

Autre que essayez-moi et Ubuntu, quel est le nom d'utilisateur qui appartient au groupe sudoers ?

Outre FTPS, quel autre remplacement sécurisé pour TFTP et FTP ?
Quelle commande utiliseriez-vous pour mettre à jour un ancien système Red Hat ?

Quelle commande utiliseriez-vous pour mettre à jour un système Fedora moderne ?

Quelles sont les deux commandes requises pour mettre à jour un système Debian ? (Connectez les deux commandes avec &&.)

Qu'est-ce que Miam représenter?

Qu'est-ce que dnf représenter?

Quel drapeau est caché dans le sources.list déposer?

Quelle commande pouvez-vous utiliser pour afficher les 15 dernières lignes de kern.log?

Quelle commande pouvez-vous utiliser pour afficher les lignes contenant le mot refusé dans le fichier sécurisé?

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles