SSH sur la dedibox

SSH

lien vers la documentation utilisée

Dans le cas d'un serveur dédié, ssh est le seul point d'entrée dans la configuration initiale. Autant le paramétrer dès le début car si on se rate, on perd définitivement la main sur le serveur et il faudra relancer l'installation automatique du système de base(qui prend 10 min) mais ça peut être râgeant si on a déja passé plusieurs heures à le configurer.

installation

il est installé par défaut sur un serveur dédié. Sinon pour l'installer:

apt-get install openssh-serveur

Configuration

Le fichier de configuration est /etc/ssh/sshd_conf.
Sérieusement, je ne donne pas un mois à votre serveur avant d'être corrompu si certains principes de sécurité ne sont pas appliqués. Pour que le risque de se faire corrompre le serveur par ce biais se rapproche de 0, on va le configurer de la façon suivante:

  • Interdire la connection de l'utilisateur de root. L'élévation des privilèges est possible en ssh par la suite avec la commande "su". Avec un peu de recul on s'aperçoit que les attaques en force brute (quotidiennes) se font la pluspart du temps par tentatives avec des identifiants bateau, root, par exemple, administrator, admin, webmaster... Interdire la connection à ces identifiants est déja une bonne protection.
  • Pas d'authentification par mot de passe mais par clé ssh. C'est ce point qui ramène le risque à quasiement 0. Je ne pense pas qu'il soit possible de casser une clé ssh. Par contre de la voler sur l'ordinateur client oui (quoiqu'elle est stockée cryptée)...
  • Changer le port d'écoute par défaut... Personnellement je ne l'ai pas fait, mais je pense" que c'est aussi une prévention supplémentaire intéressante.

Créer le couple de clés sur le PC client

Sur le PC client, si vous n'avez pas déja un couple de clés, pour en créer un, avec votre compte utilisateur normal (pas en root):

ssh-keygen -t dsa

L'utilisation d'une passphrase est conseillée.

Les clés sont placés généralement dans un dossier caché: « /.ssh/id_dsa » pour la clé privé.

Pour le moment on peut s'identifier par mot de passe au serveur, utilisons ce biais pour placer la clé publique.

ssh-copy-id -i ~/.ssh/id_dsa.pub <username>@<ipaddress>

puis pour autoriser la clé:

ssh login@serveur "echo $(cat ~/.ssh/id_dsa.pub) >> .ssh/authorized_keys"

Appliquer la nouvelle méthode d'authentification:

Sur le serveur, on modifie le fichier /etc/ssh/sshd_conf de la manière suivante:

On change:

PermitRootLogin no
PasswordAuthentication no
UsePAM no

Eventuellement on définit les utilisateurs ayant accès à ssh (utile si pour certaines fonctions du serveur vous aurez besoin de créer des comptes unix qui n'ont pas lieu de faire du ssh) On avoute la ligne suivante (remplacez par vos identifiants):

AllowUsers user1 user2

redémarrage du serveur ssh

/etc/init.d/ssh restart

On se connecte comme ça:

ssh user@FDQNouIPduServeur
Page top