Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Sécuriser un serveur SSH

Si vous gérez votre propre serveur, vous possédez forcement une connexion SSH pour y accéder à distance. SSH est indispensable car en plus de fournir un accès en ligne de commande à votre serveur, il permet de se passer complètement de serveur FTP et de déposer vos fichiers en SFTP (SSH File Transfer Protocol).

Je ne suis pas un grand guru de l’admin linux mais je me débrouille, donc si ça vous intéresse, voici un petit tuto ssh pour paramétrer convenablement votre serveur SSH et le sécuriser un minimum. Vous allez voir, ça peut aller assez vite et vous éviter bien des emmerdements. Tous mes tests ont été fait sur une Ubuntu.

Avant de faire toutes ces manips, ouvrez un accès SSH en plus qui vous permettra de corriger vos erreurs au cas où vous vous bloquiez tous les accès. Et au pire du pire, sachez que les serveurs (chez OVH ou Dedibox par exemple), ont un accès console de secours qui vous permettra d’arranger tout ça.

Config de base à changer dans le fichier /etc/ssh/sshd_config

#Changez le port par défaut. Cela évite pas mal d'attaques automatiques sur le port 22 (bots)
Port 1234
#C'est la seconde version du protocole ssh qui sera utilisée
Protocol 2
#Désactiver le login root. Ça c'est super important !!
PermitRootLogin no

Là déjà c’est pas mal… Relancez le serveur ssh :

/etc/init.d/ssh restart

Pour vous connecter sur ce nouveau port, vous devez utiliser le paramètre « p » avec ssh mac ou ssh linux. Pour Windows, utilisez Putty.

ssh -p1234 korben@monserveur.com

Vous continuez donc à vous logger en entrant votre login + mot de passe à chaque fois. C’est bien mais n’importe qui peut intercepter dans un mail, dans un snif (keylogger matériel ou qui balance ensuite par le réseau), ou autre, votre login et mot de passe… et ainsi avoir accès à votre serveur. Heureusement, on peut sécuriser tout ça encore un peu plus en interdisant l’authentification par mot de passe. Pour se connecter, on utilise alors des clés SSH (publique/privée). C’est de loin la technique la plus sûre même si pour vous connecter vous devrez être forcement sur un ordinateur qui dispose des bonnes clés…(pas évident donc depuis un cybercafé par exemple)

Voici donc comment faire… cette méthode fonctionne sous Linux / Mac OSX. Pour Windows, je sais que Putty-gen sait faire ça complètement via l’interface graphique.

=A faire sur votre ordinateur ET sur votre serveur=

#On crée un répertoire .ssh dans notre HOME
mkdir ~/.ssh
#Ensuite on lui change ses droits d'accès
chmod 0700 ~/.ssh

=A faire sur votre ordinateur uniquement=

#Puis on génère les clés. Vous pouvez choisir de mettre ou pas un mot de passe sur ces clés. Je vous recommande de le faire.
ssh-keygen -t dsa -f ~/.ssh/id_server

On se retrouve alors avec 2 fichiers dans .ssh :
id_server => clé privée qui ira sur vos machines clients
id_server.pub => clé publique qui ira sur votre serveur

#On transfère alors cette clé via scp vers votre serveur...
scp -P 1234 ~/.ssh/id_server.pub korben@monserveur.com:~/.ssh/authorized_keys
#Et on supprime cette clé publique parce qu'on n'en a plus besoin
rm -f ~/.ssh/id_server.pub

=A faire sur votre ordinateur ET sur votre serveur=

#On rechange les droits sur le répertoire qui contient les clés
chmod 0600 ~/.ssh/*

=A faire sur le serveur=
Et ensuite pour améliorer encore plus la sécurité, on va simplement créer un groupe avec uniquement votre / vos users dedans

#On crée le groupe sshusers
groupadd sshusers
#Et on ajouter l'utilisateur à ce groupe
usermod -a -G sshusers korben

Maintenant on retourne jeter un oeil dans le /etc/ssh/sshd_config afin de tout blinder et permettre l’utilisation de la clé que vous avez crée

#Décommentez ou ajouter la ligne suivante. Cela permet que le serveur donne son empreinte DSA en cas de connexion ssh.
HostKey /etc/ssh/ssh_host_dsa_key
#Mettez ensuite le paramètre suivant à 20s (par exemple). C'est la durée pendant laquelle une connexion sans être loggée sera ouverte.
#Si on avait gardé la bonne vieille technique du mot de passe, laisser 2 ou 3 minutes pour le taper, ce n'est pas de trop.
#Mais vu que là, on utilise la clé, on sera loggé immédiatement. Donc on peut vachement réduire le truc et mettre ça a 20 secondes par exemple.
LoginGraceTime 20s
#ça c'est le nombre maximum d'essais avant de se faire jeter par le serveur...
#Vu qu'avec la clé, pas d'erreur possible, vous pouvez le mettre à 1 essai possible.
MaxAuthTries 1
#Ensuite, on va indiquer au serveur SSH où se trouvent les clés et lui dire qu'on va les utiliser comme méthode d'authentification
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#Et bien sûr, on va désactiver toutes les autres méthodes d'authentification
RSAAuthentication no
UsePAM no
KerberosAuthentication no
GSSAPIAuthentication no
PasswordAuthentication no

Note: Attention avec ce dernier paramètre (PasswordAuthentication) car il désactive l’authentification par mot de passe. Donc si vous vous êtes viandé avec les clés, vous n’aurez plus d’autre moyen de vous connecter. Finissez tout le tuto avant de mettre PasswordAuthentication à « no » et testez la connexion avec votre clé en faisant un simple « ssh -p1234 korben@monserveur.com ». Dès que c’est bon, passez le paramètre à no et relancez ssh

#Ensuite, on va lui dire qu'on autorise uniquement les utilisateurs du groupe sshusers (pour plus de sécurité)
AllowGroups sshusers
#Le paramètre MaxStartups indique le nombre de connexions ssh non authentifiées que vous pouvez lancer en même temps.
#2 c'est largement suffisant sachant qu'avec les clés, c'est instantané.
MaxStartups 2

Maintenant que tout est paramétré, on va redémarrer le serveur ssh

sudo /etc/init.d/ssh restart

Faisons ensuite une connexion ssh pour tester

ssh -p1234 korben@monserveur.com

Normalement, ça devrait se connecter directement. Bravo, votre clé fonctionne ! (Si vous ne l’avez pas encore fait, vous pouvez alors mettre le paramètre PasswordAuthentication à « no »)

On va maintenant hasher le fichier known_hosts qui contient en clair les infos de connexions déjà établies afin que justement, cela ne soit plus en clair.

ssh-keygen -H -f ~/.ssh/known_hosts

Supprimez ensuite le fichier known_hosts.old

rm ~/.ssh/known_hosts.old

Et voilà, je pense que là on est bon. Si vous souhaitez changer le mot de passe sur votre clé, voici la commande :

ssh-keygen -p -f ~/.ssh/id_server

Là, vous avez donc la clé « id_server » qui vous permet de vous connecter dans le répertoire .ssh. Vous pouvez la copier dans tous les .ssh de vos profils linux ou mac sur vos ordis (enfin, là où vous en avez besoin).

Un cas de figure un peu particulier se présente si vous utilisez Putty. En effet, celui-ci utilise des clés particulières .ppk. Il faudra donc importer votre clé avec un outil qui s’appelle Putty-gen. Sous Windows, c’est simple, c’est une interface graphique.

Sous linux par contre, il faut utiliser la ligne de commande pour convertir votre clé SSH en clé PPK

puttygen id_server -o macleputty.ppk

Dès que c’est ok, il suffit de configurer Putty pour lui indiquer sa clé ppk :

Et voilà ! Un SSH iPhone ou un SSH Android doit pouvoir se configurer sensiblement de la même manière mais je n’ai pas fait de tests encore.

Bon, maintenant, si vous voulez sécuriser un peu plus, je vous recommande de mettre en place fail2ban qui permettra de bloquer les ip un peu trop insistantes.

Si vous avez des suggestions / améliorations / corrections à apporter à ce modeste tuto, n’hésitez pas !!!



PC Intel NUC Mini-PC Intel Core i3 i3-8109U 4 Go 256 Go

Barebone PC avec 8 % de réduction

Les mini PC Intel NUC sont entièrement équipés et prêts à l’emploi. Optimisé et configuré par Intel, ce système dispose d’une garantie de 3 ans et l’assistance clientèle de classe mondiale d’Intel pour une grande tranquillité d’esprit.

Au choix vous trouverez des configurations avec ou sans windows, vous laissant la liberté d’installer votre distribution Linux préférée.

En Savoir + sur ses caractéristiques



Comment découper une carte SIM sans la bousiller

vec certains téléphone, ça devient une vraie galère au niveau des cartes SIM. Entre la SIM classique (MiniSIM), la MicroSIM et la NanoSIM, difficile de s’y retrouver et surtout de passer d’une plus grande à une plus petite sans devoir attendre que les opérateurs veuillent bien se donner la peine de vous l’envoyer…

Lire la suite


6 outils pour cloner un disque dur sous Windows et Linux

Cloner c’est facile… Bon, ok, cloner un bébé, c’est déjà plus complexe mais un disque dur, c’est l’enfance de l’art… Alors bien sûr le logiciel le plus connu pour ça, est Ghost de Symantec mais au prix de 999,99 euros HT (j’déconne, je ne connais pas le prix en vrai), c’est déjà plus rentable de se mettre à cloner son petit frère artisanalement dans le garage…

Lire la suite