Debian - SSHd

Un article de Wiki.OmBreNoiRe.net.

Vous être en train de lire Comment installer un serveur sécurisé sur Debian.

Sommaire Install Aptitude Locales SSHd Shorewall 6wall DHCP3-server Bind9 VsFTPd Apache/MySQL Mail BackupManager

Sommaire

Introduction

Un serveur est rarement administrable en direct (avec écran/clavier), la plupart du temps c'est donc à distance que cela va se faire. Il faut donc une porte sur votre serveur qui va vous permettre d'y accéder depuis l'exterieur, cette porte doit donc être très sécurisée, au risque de laisser un intrus rentré !

Installation des paquets

Je pars du principe que vous partez d'une installation de base, nue, et vous avez suivie les étapes précédentes de ces pages. {{Banniere Note[Si vous avez déjà sshd sur votre serveur, vous pouvez vérifier sa bonne installation en comparant les paquets installés avec ceux énoncés plus bas, ou vous pouvez directement aller à la partie configuration.}

Depuis le terminal, en root, lancer les instructions suivantes :

root@monordi:~# aptitude update

root@monordi:~# aptitude install ssh-server ssh-client

C'est terminé pour l'installation, c'est bien Debian hein :) ?

Configuration

Principe générale

Le principe de la configuration que je propose est simple et assez répandue d'ailleurs :

  • Changer le port d'écoute de SSHd (22) par un port non standard (52 par exemple)
  • Autoriser de certains utilisateurs à ce connecter uniquement (et surtout pas root)
  • Que ces utilisateurs, n'est pas d'autres raisons d'exister que seulement se connecter en SSH (en gros une fois connecté, vous passez à un autre utilisateur)

Ajout d'un utilisateur dédié pour le SSH

Suivez le guide...

root@monordi:~# adduser userssh

Ajout de l'utilisateur « userssh »...
Ajout du nouveau groupe « userssh » (1001)...
Ajout du nouvel utilisateur « userssh » (1001) avec le groupe « userssh »...
Création du répertoire personnel « /home/userssh »...
Copie des fichiers depuis « /etc/skel »...
Enter new UNIX password:
Retype new UNIX password:
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur userssh
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
     Nom complet []:
     N° de bureau []:
     Téléphone professionnel []:
     Téléphone personnel []:
     Autre []:
Ces informations sont-elles correctes ? [o/N] o
root@monordi:~#

Donc on vient de créer l'utilisateur userssh, juste pour se connecter en SSH au serveur.

Nouveau fichier de configuration

Tout se passe dans le fichier de configuration /etc/ssh/sshd_config

root@monordi:~# cd /etc/ssh (on va dans le repertoire de ssh)

root@monordi:~# mv sshd_config sshd_config.orig (on renomme sshd_config)
root@monordi:~# emacs sshd_config (on commence un nouveau fichier de config avec emacs)

Fichier : /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd(8) manpage for details

####################
#SECTION A MODIFIER#
####################
# Port d'ecoute
Port 52
# Liste des utilisateurs qui peuvent se connecter
AllowUsers userssh

# Le protocol utilise
Protocol 2

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 60
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable tunnelled clear text passwords
PasswordAuthentication no

X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
KeepAlive yes
Subsystem       sftp    /usr/lib/sftp-server
UsePAM yes
  • Aller dans la SECTION A MODIFIER et changer le port d'écoute et le nom d'utilisateur par celui que vous avez choisi.
  • Redémarrer le service :
root@monordi:~# /etc/init.d/ssh restart

Restarting OpenBSD Secure Shell server: sshd.

Attention !
Ne fermez surtout pas la session en cours tant que vous n'êtes pas sûr que tout fonctionne. Par ailleurs si vous avez déjà installé un firewall sur votre serveur, n'oubliez pas d'ouvrir le nouveau port de communication !
  • Connectez vous en SSH sur votre nouveau port d'écoute (ici 52) avec votre nouvel utilisateur dédié (ici userssh).
  • Si ça marche c'est bon, vous pouvez fermez l'autre session sans aucun risque, sinon, veuillez bien relire le fichier de configuration.
  • Vous pouvez passer à l'étape suivante qui consistera à installer votre firewall.
Affichages
Boîte à outils