# [SSH] Serveur OpenSSH

## Introduction

La bonne configuration d'un **serveur SSH** est primordiale pour sécuriser votre serveur des attaques extérieures.

C'est pourquoi je vous recommande de consulter le guide de l'ANSSI qui décrit les bonnes pratiques à avoir.

Nous verrons dans ce tutoriel, uniquement des configurations classiques et non-exhaustives.

## Source

- [Guide de l'ANSSI OpenSSH](https://cyber.gouv.fr/publications/usage-securise-dopenssh)

## Installation

Installez le paquet **openssh-server** sur votre serveur (le nom peut varier selon les distributions) :

```bash
sudo apt install -y openssh-server
```

## Configuration

#### Fichier de configuration

Le fichier de configuration du serveur SSH est **/etc/ssh/sshd\_config** :

```bash
nano /etc/ssh/sshd_config
```

<p class="callout info">Vous pouvez activer ou désactiver des options en choisissant de les commenter ou non (caractère **\#**).</p>

#### Changer le port d'écoute

Option intéressante pour éviter d'être dans le viseur des bots qui brute force les serveurs SSH exposés sur Internet .

Par exemple, vous pouvez remplacer le port **22** définit par défaut par le port 2222 :

```
Port 2222
```

#### Changer l'interface d'écoute

Par sécurité, il peut être intéressant de définir l'interface d'écoute du serveur SSH. Par défaut, toutes les interfaces sont en écoute.

Prenons l'exemple d'un serveur appartenant à deux réseaux :

<table border="1" id="bkmrk-nom-du-r%C3%A9seau-adress" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td class="align-center">**Nom du réseau**  
</td><td class="align-center">**Adresse IP**  
</td></tr><tr><td class="align-center">LAN  
</td><td class="align-center">192.168.1.10  
</td></tr><tr><td class="align-center">DMZ  
</td><td class="align-center">10.0.0.10</td></tr></tbody></table>

Vous pouvez donc décider d'activer l'administration par SSH **seulement via le LAN** pour protéger votre serveur grâce à l'option suivante :

```
ListenAddress 192.168.1.10
```

#### Connexion root

Cette option n'est pas recommandée mais elle est importante à connaître.

Elle permet d'activer ou non la connexion en root et le type d'authentification autorisé.

- Si vous souhaitez **interdire la connexion root** :

```
PermitRootLogin no
```

- Si vous souhaitez **autoriser la connexion root par mot de passe et par clé** :

```
PermitRootLogin yes
```

- Si vous souhaitez **autoriser la connexion root uniquement par clé** :

```
PermitRootLogin prohibit-password
```