Politique de sécurité sur RaspBerry
L'utilisateur pi
La première chose à faire est de modifier le mot de passe de l'utilisateur pi.
Celui-ci est par défaut raspberry, donc connu de tous !
Connectez vous avec l'utilisateur pi
puis tapez passwd pour changer son mot de passe.
(Vous pouvez aussi utiliser raspi-config, cela revient au même au final)
L'utilisateur root
Sous Raspbian (pas testé les autres systèmes), vous n'avez initialement pas le droit de vous connecter avec l'identifiant root.
L'utilisateur n'est pas actif et ce n'est peut-être pas plus mal ainsi.
Cependant, si vous en avez besoin, vous pouvez l'activer via l'utilisateur pi très simplement:
sudo passwd root va vous permettre de saisir un mot de passe pour votre compte root et ainsi l'activer (dans ce cas, il est urgent de lire le chapitre consacré à la sécurité pour Unix...
Remplacer inetd par xinetd
cf. inetd et xinetd, des démons Internet Super Server.
Passez par l'utilitaire d'installation de paquet et rechercher xinet.
Installer le paquet indiquant "xinetd remplaçant inetd"
Ou en installant depuis une console en root:
sudo apt-get install xinetd
Il vous reste à renommer le fichier inetd.conf par exemple inetd.conf.old (pour le cas où vous voudriez revenir dessus pour une récupération de votre configuration, ...)
Puis créer les fichiers xinetd dans le répertoire xinetd.d pour chacun des serveurs déclarés dans inetd.conf et de compléter si nécessaire le fichier /etc/xinetd.conf.
(cf. inetd et xinetd).
Ajouter des contrôles sur ssh
ssh est compilé pour fonctionner avec le démon tcpd (tcp wrapper), ce qui vous permettra de limiter les accès à certaines IP pour le ssh.
Vous pouvez aller plus loin en l'intégrant dans xinetd.
en créant un fichier ssh sous xinetd.d comme par exemple
service ssh
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
access_times = 08:00-23:59
}
(L'accès à ssh ne sera possible ici qu'entre 8h00 et 23h59)
Puis, il faudra désactiver le lancement automatique de service ssh via raspi-config.
qui va ainsi ajouter la possibilité de désactiver le service lorsque vous dormez !
Tapez ensuite service xinetd restart.
Si vous utilisez putty pour faire ce paramètrage, ne fermez pas cette session tant que vous n'avez pas vérifié sur une autre session putty que vos modifications fonctionnent. En effet, cette session ouverte avant modification ne sera pas impactée par les modifications lorsque vous basculerez la gestion de ssh sur xinetd.
Si vous avez perdu la connexion ssh à distance, rassurez vous, la connexion locale fonctionnera toujours, et vous pourrez donc corriger votre problème en branchant un clavier sur un port USB du PI !
Vous pouvez maintenant tester via une console à distance (putty par exemple) que vous pouvez vous connecter dans la plage horaire que vous aurez indiqué.
Si la connexion ne marche pas, il est probable que cela soit dû à l'absence du répertoire /var/run/sshd
Comme le répertoire est créé dans un disque virtuel (en ram), vous ne pouvez pas vous ontenter de le créer directement (cela permettra juste de valider que le problème vient bien de là) car au prochain reboot, le répertoire n'existera de nouveau plus.
Vous que cela fonctionne en permanence, vous pouvez ajouter dans /etc/rc.local les lignes suivantes:
Ce code va simplement créer le répertoire et attribuer les droits s'il n'existe pas.
Bien mettre ces lignes avant la commande exit !!! Sinon, elles ne seront jamais exécutées !
Désactiver sftp
Si vous n'utilisez pas SFTP, ou utilisez un autre serveur FTP, vous pouvez le désactiver comme ceci:
Par défaut, sftp positionne les utilisateurs sur la racine, pas terrible !
Dans le fichier /etc/ssh/sshd_config, mettez un # devant la ligne suivante:
Subsystem sftp /usr/lib/openssh/sftp-server
Ajoutez la ligne suivante:
Subsystem sftp /bin/false
Sauvez et relancez le service sshd:
Sur raspberry (debian, ...): service sshd restart
Sur d'autres systèmes Linux: /etc/init.d/sshd restart
Et le reste ?
Et oui, il y a encore d'autres choses à faire surtout si l'appareil est connecté en réseau, et d'autant plus si en DMZ !
Le raspberry étant un système de type Unix, je vous invite à regarder le chapitre consacré à la sécurité pour Unix.