Avec le grand nombre de Raspberry Pis à l'état sauvage et le fait que de grands groupes d'entre eux sont configurés de manière identique (lorsqu'une carte SD nouvellement flashée est installée avec l'une des rares images disponibles), il est probable qu'ils seront une cible tentante pour logiciels malveillants, y compris les réseaux de zombies.
Que peut-on faire pour atténuer cela?
Il est raisonnablement bien connu que l’on devrait changer le mot de passe de l’utilisateur "pi" (Debian) et "root" (Arch.). Mais qu’en est-il des autres comptes système (par exemple, "tli", "pnd"?) des mots de passe universels qui sont vraisemblablement les mêmes pour toutes les unités?
Et existe-t-il des vulnérabilités connues dans d'autres packages installés dans les images SD disponibles pour le Pi (par exemple, en raison de limitations matérielles ou de versions réduites de ces packages?)
En particulier ssh
, mysql et tous les autres services pouvant s'exécuter sur une image nouvellement installée m'inquiètent.
la source
su
de les voir.vipw
; est-ce une mauvaise idée? Non ce n'est pas. +1 pour impliquer en utilisantvipw
.Il existe de nombreuses façons de remédier aux vulnérabilités, mais la première chose à savoir est que Linux n’est pas aussi vulnérable aux intrusions que les autres systèmes d’exploitation. Ceci est principalement dû au manque de malware qui cible * NIX. Néanmoins, vous voulez savoir comment accéder à votre système.
Mots de passe
Tout d'abord, vous devez modifier les mots de passe par défaut pour tous les utilisateurs pouvant se connecter. Pour Debian, ce n'est que l'utilisateur par défaut, Pi . Pour Arch Linux, il s'agit de la racine du super utilisateur . Les mots de passe sont modifiés lors de la connexion en tant qu'utilisateur en tapant
passwd
sur la ligne de commande.Une stratégie de mot de passe sécurisé est recommandée, car il serait assez simple de lancer des attaques par dictionnaire avec force brutale sur votre utilisateur par défaut. Choisissez un mot de passe décent, de longueur moyenne.
Obscurité
L'accès à distance est probablement le trou de sécurité le plus important. Ce que nous pouvons utiliser ici s'appelle sécurité par obscurité . Une méthode d'attaque courante consiste à analyser une plage d'adresses IP à la recherche de ports ouverts. L’une des contre-mesures les plus simples que nous puissions prendre est donc d’être un utilisateur qui n’utilise pas les ports par défaut .
Ici, il suffit de changer les ports par défaut pour les protocoles couramment utilisés. Par exemple, le port SSH par défaut est 22 et FTP en 21. Sur mon système, SSH utilise 222 et FTP 221, ce qui devrait masquer ces protocoles contre toute attaque automatisée.
Sécurité de la connexion
Premièrement, le problème de sécurité le plus important est que le compte root ne puisse pas se connecter via SSH. Vous pouvez désactiver la connexion root dans le
/etc/ssh/sshd_config
fichier en commentant ou en supprimant cette ligne:Il devrait être réglé sur no par défaut, mais il vaut mieux vous en assurer.
Si vous utilisez beaucoup SSH et que vous vous inquiétez des attaques de type homme de la moyenne, attaques du dictionnaire contre votre mot de passe, vous pouvez utiliser
SSH Keys
.L'authentification par clé présente plusieurs avantages par rapport à l'authentification par mot de passe. Par exemple, les valeurs de clé sont beaucoup plus difficiles à forcer que les mots de passe simples.
Pour configurer l'authentification par clé SSH, vous devez d'abord créer la paire de clés. Ceci s’effectue le plus facilement sur votre ordinateur client (l’ordinateur avec lequel vous voulez accéder au Pi).
Comme vous pouvez le constater, cela a créé deux fichiers, la clé privée
id_rsa
et la clé publiqueid_rsa.pub
.La clé privée n'est connue que de vous et doit être gardée en sécurité . En revanche, la clé publique peut être partagée librement avec tout serveur SSH auquel vous souhaitez vous connecter.
Nous aimerions donc copier la clé publique sur le Raspberry Pi. Nous pouvons le faire très facilement:
Où se
pi
trouve le nom d'utilisateur Raspberry Pi etaddress
l'adresse IP du Pi.Je répète, nous distribuons la clé publique . La clé privée est à vous. Tenez-le bien, relâcher cette clé casse la sécurité du système.
Le wiki Arch a une excellente description de la façon dont cela fonctionne:
Pour plus d'informations sur la sécurité de l'authentification par clé publique, Wikipedia dispose d'une explication détaillée .
Avec la sécurité SSH en place, vous pouvez effectuer une quantité énorme de transferts de données cryptés et sécurisés. Pratiquement toutes les autres connexions de port peuvent être routées via SSH si nécessaire. Vous pouvez même transférer la session X via SSH afin qu’elle apparaisse sur un autre ordinateur.
Comme exemple intéressant, hier, j'utilisais Eclipse sur mon bureau, je le visualisais sur mon Raspberry Pi et contrôlais la souris et le clavier à partir de mon Netbook. Tel est le pouvoir de SSH.
Les permissions
Les autorisations de fichiers sont le noeud du système de sécurité Linux. Ils affectent qui peut voir vos fichiers et vos dossiers et peuvent être très importants pour la protection de vos données. Par exemple, connectez-vous à Raspberry Pi en tant qu'utilisateur normal et exécutez:
Le
shadow
fichier contient des mots de passe cryptés pour les utilisateurs du système, nous ne voudrions donc pas que quiconque le regarde! Donc, vous devriez voir cette réponse:Nous pouvons voir pourquoi c'est en jetant un coup d'œil sur les permissions du fichier:
Cela nous indique que le fichier appartient à root et que seul le propriétaire dispose des autorisations de lecture / écriture. Décomposons cette sortie.
C'est l'état des permissions. Le premier bit nous indique le type de fichier (
-
fichier standard). Les trois bits suivants représentent les actions disponibles pour le propriétaire du fichier. Les trois autres bits représentent le groupe et les trois derniers sont destinés aux autres ou à tous les autres. Ainsi, un répertoire avec des autorisations complètes ressemblerait à ceci:Il s’agit des autorisations de lecture, d’écriture et d’exécution pour le propriétaire, le groupe et tous les autres.
La prochaine partie importante est les deux noms. Dans notre cas
root root
. Le premier utilisateur est le propriétaire du fichier. Le second est le groupe d'utilisateurs . Par exemple, il serait courant de voir:Cela permettrait un accès en lecture / écriture à l'utilisateur
pi
sur son répertoire personnel et un accès en lecture à tous les autres utilisateurs.Les autorisations sont le plus souvent référencées et contrôlées à l'aide de valeurs octales. Par exemple, si nous voulons définir rw uniquement pour le propriétaire, nous tapons:
Ceci est un aperçu de base. Pour plus de détails sur les autorisations de fichiers Linux, voici un bon article.
Cette compréhension est importante lors de la sécurisation de fichiers et de dossiers. Par exemple, supposons que nous venons de configurer des clés SSH. Nous ne voulons absolument pas que d'autres utilisateurs voient dans notre
~/.ssh
annuaire, sinon ils pourraient prendre notre clé privée. Ainsi, nous supprimons leurs privilèges de lecture:J'espère que cela clarifie certaines de vos préoccupations concernant la sécurisation de Linux. A partir de cela, vous devriez pouvoir voir que c'est un système assez sécurisé et si vous faites attention, vous ne devriez avoir aucun problème de sécurité.
la source
Pour empêcher les attaques brutales, vous pouvez installer et configurer
fail2ban
. Il analysera les fichiers journaux (tels que/var/log/auth.log
) et essaiera de détecter si plusieurs tentatives de connexion ont échoué. Ensuite, il interdira automatiquement les adresses IP source aveciptables
.Il y a un tas de howtos sur Internet.
la source