# Ubuntu Server - Paramétrer SSH

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/J4Rintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/J4Rintermediaire-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : SSH, ubuntu server, linux, sécurité.

</td></tr></tbody></table>

---

### **<span style="text-decoration: underline;">I. Introduction</span>**

Il est intéressant d'un point de vue sécurité de procéder à quelques modifications de la configuration par défaut de SSH.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Paramétrage</span>**</span>

#### <span style="color: rgb(35,111,161);">**2.1 Renforcer la sécurité**</span>

<p class="callout success">Cette étape est optionnelle mais vivement conseillée pour optimiser la sécurité du système.</p>

Stopper le service SSH.

```
sudo service ssh stop
```

Éditer le fichier de configuration "<span style="color: rgb(132,63,161);">***/etc/ssh/sshd\_config***</span>".

Il est intéressant de dé-commenter/modifier les directives suivantes :

<table id="bkmrk-port-%3Cnum%C3%A9ro-de-port" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 26.0494%;"></col><col style="width: 36.9136%;"></col><col style="width: 37.037%;"></col></colgroup><tbody><tr><td style="border-style: hidden; vertical-align: top;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/dZXimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/dZXimage-png.png)</td><td style="border-style: hidden; vertical-align: top;">- Port &lt;numéro de port&gt;
- AdressFamily &lt;any | inet | inet6&gt;
- Listen address &lt;ip d'écoute&gt;

</td><td style="border-style: hidden; vertical-align: top;">*- Ne pas utiliser le port par défaut.*

\- Limiter l'écoute à une famille d'adresse.

*- Limiter l'écoute à une interface.*

</td></tr><tr><td style="border-style: hidden; vertical-align: top;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/T81image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/T81image-png.png)

</td><td style="border-style: hidden; vertical-align: top;">- SyslogFacility AUTHPRIV
- LogLevel VERBOSE

</td><td style="border-style: hidden; vertical-align: top;">*- Permet de loguer de manière sécurisée.*

*- Permet de loguer les echecs de connexion.*

</td></tr></tbody></table>

<p class="callout warning">**Attention** : Sur ubuntu server, à partir de la version 23.04, le port d'écoute SSH n'est plus modifié dans le fichier de configuration. Suivre la procédure ci-dessous pour changer le port d'écoute.</p>

<details id="bkmrk-ubuntu-23.04%2B-change"><summary>Ubuntu 23.04+ changer le port d'écoute SSH.</summary>

Depuis la version 23.04, le serveur SSH n'est plus lancé en tant que service à proprement parler mais en tant que socket.

Il faut donc désormais le modifier dans le fichier "<span style="color: rgb(132,63,161);">***/lib/systemd/system/ssh.socket***</span>" et modifier la directive <span style="color: rgb(132,63,161);">***ListenStream***</span>.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Qqrimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Qqrimage-png.png)

Puis recharger les sockets avec :

```shell
systemctl daemon-reload
systemctl restart ssh
```

</details><p class="callout success">Les Échecs de connexion sont consultables avec la commande ci-dessous.</p>

```
grep "Failed password" /var/log/auth.log
```

<table id="bkmrk-logingracetime-30s-p" style="border-collapse: collapse; width: 100%; height: 104px;"><colgroup><col style="width: 33.9506%;"></col><col style="width: 29.0123%;"></col><col style="width: 37.037%;"></col></colgroup><tbody><tr style="height: 104px;"><td style="border-style: hidden; vertical-align: top; height: 104px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/OjPimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/OjPimage-png.png)

</td><td style="border-style: hidden; vertical-align: top; height: 104px;">- LoginGraceTime 30s
- PermitRootLogin no
- MaxAuthTries 3
- MaxSessions 10

</td><td style="border-style: hidden; vertical-align: top; height: 104px;">*-  Limite le temps pour la saisie des logins.*

*- Interdire la connexion en tant que 'root'.*

*- Nombres de tentatives avant le Log.*

*- Maximum de connexions par session TCP.*

</td></tr></tbody></table>

<table id="bkmrk-maxstartups-5%3A50%3A10-" style="border-collapse: collapse; width: 100%; height: 164.3px;"><colgroup><col style="width: 26.0494%;"></col><col style="width: 36.9136%;"></col><col style="width: 37.037%;"></col></colgroup><tbody><tr style="height: 101.6px;"><td style="border-style: hidden; vertical-align: middle; height: 101.6px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/MbQimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/MbQimage-png.png)

</td><td style="border-style: hidden; vertical-align: middle; height: 101.6px;">- MaxStartups 5:50:10

</td><td style="border-style: hidden; vertical-align: top; height: 101.6px;">*- à partir de **5** tentatives, **50**% de chance que la connexion soit dropée. Augmente linéairement jusqu’à **10** connexions où le taux atteints 100%.*

</td></tr><tr style="height: 62.7px;"><td style="border-style: hidden; vertical-align: middle; height: 62.7px;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ix8image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ix8image-png.png)

</td><td style="border-style: hidden; vertical-align: middle; height: 62.7px;">- Banner /etc/ssh/banner.txt

</td><td style="border-style: hidden; vertical-align: top; height: 62.7px;">*- chemin vers la bannière de connexion ssh.*

</td></tr></tbody></table>

<p class="callout success">**Conseil** : Pour des exemples de banner, voir [BANNER - Exemple](https://docs.labs404.fr/books/ressources-pedagogiques/page/banner-exemple "BANNER - Exemple")</p>


#### <span style="color: rgb(35,111,161);">**2.2 Limiter l'accès à SSH**</span>

Il peut être inintéressant de limiter l'accès au SSH uniquement à certains utilisateurs.

Cela peut se faire à travers la mise en place d'un groupe comme suit :

```
groupadd sshusers
```

Puis ajouter le(s) utilisateur(s) au groupe

```
usermod -a -G sshusers <username>
```

Ajouter ensuite en fin de fichier "<span style="color: rgb(132,63,161);">***/etc/ssh/sshd\_config***</span>" la directive suivante :

<table id="bkmrk---nom-des-groupes-au" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0781%;"></col><col style="width: 49.9219%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0xKimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/0xKimage-png.png)

</td><td style="border-style: hidden;">- *nom des groupes autorisés à se connecter en SSH*</td></tr></tbody></table>

#### <span style="color: rgb(35,111,161);">**2.3 paramétrer le SFTP &amp; chroot**</span>

Dans le cadre de l'utilisation du service pour faire du SFTP, il peut également être intéressant de brider les utilisateurs SFTP dans leur répertoire utilisateur afin que ceux-ci n'est pas accès aux dossiers du système.

Pour cela il faut créer un groupe d'utilisateurs du SFTP auxquels la stratégie va s'appliquer :

```
addgroup sftpusers
```

Puis créer un répertoire qui servira de racine. Par exemple :

```
mkdir /sftp
```

Puis éditer les directives du fichier "<span style="color: rgb(132,63,161);">***/etc/ssh/sshd\_config***</span>" le bloc d'instructions qui activera le subsystem SFTP et permettra le chroot.

Commenter la ligne :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/6KJimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/6KJimage-png.png)

Et la remplacer par :

```
Subsystem sftp internal-sftp
Match Group sftpusers
	ChrootDirectory /sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
```

<table id="bkmrk-%C2%A0-utilise-le-subsyst" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 47.4667%;"></col><col style="width: 52.5313%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/UFqimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/UFqimage-png.png)

</td><td style="vertical-align: top; border-style: hidden;">- Utilise le subsystem interne au lieu de celui par défaut
- Pour les utilisateurs dans les groupes énumérés 
    - Chroot sur /sftp/&lt;NomUtilisateur&gt;
    - forcer la commande sftp et interdire ssh cli
    - interdire le forwarding
    - interdire le X11

</td></tr></tbody></table>

Redémarrer SSH.

```
service ssh restart
```

Créer enfin les utilisateurs avec leur répertoire et les intégrer au groupe sftpusers, utiliser les commandes :

```
useradd -m -g sftpusers -s /usr/sbin/nologin -d /sftp/<nomUtilisateur>/<NomRepertoireHome> <NomUtilisateur>
passwd <NomUtilisateur>
```

<p class="callout warning">**Attention** : si utilisé conjointement avec la directive '<span style="color: rgb(132,63,161);">***AllowGroups***</span>', penser à ajouter le groupe sftpusers à cette ligne.</p>

<table id="bkmrk-sans-chroot-avec-chr" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/LX5image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/LX5image-png.png)

</td><td style="border-style: hidden;">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/WxDimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/WxDimage-png.png)

</td></tr><tr><td class="align-center" style="border-style: hidden;">*sans chroot*  
</td><td class="align-center" style="border-style: hidden;">*avec chroot*</td></tr></tbody></table>

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**III. Redémarrer le service**</span>

Relancer le service.

```
sudo service ssh start
```

Pour vérifier le status du service :

```
sudo service ssh status
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ppoimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ppoimage-png.png)