# Sécuriser un VPS debian buster

**URL:** <https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881>\
**Category:** Support Debian\
**Tags:** nextcloud, fail2ban\
**Created:** [Juin 29, 2021, 7:46 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881 "2021-06-29T07:46:40Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juin 29, 2021, 7:46 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/1 "2021-06-29T07:46:40Z")

</div>

Bonjour tous,

Nous sommes une association et proposons pour d’autres assos, petites mairies, clubs séniors, etc. des clouds privés, avec sauvegardes auromatiques.

Nous débarquons parce que nos VPS sont sous CentOS 8 (et qu’il n’est plus libre fin 21) avec Nextcloud d’installer.  
Nous avons décidé de remplacer par Debian (nous espérons avoir pris la bonne décision) 😉  
Je m’en occupe et normalement, je passe par SSH mais des fois, je passe par Filezilla en SFTP.  
Attention, c’est tout nouveau et nous sommes loin d’être des pros.

Notre nouveau VPS (chez Hosteur) à un Debian 10 Buster simple.  
C’est un VPS de test, donc pas d’inquiétude si ça plante.  
Ce que j’ai déjà fait :

- Mettre a jour debian OK
- Création d’un nouvel utilisateur OK
- Vérifier que iptable est installé OK
- Changer le port d’écoute ssh OK
- Garder les sessions SSH ouvertes plus longtemps OK
- Installer fail2ban OK

Déjà, comment vérifier si fail2ban est correctement installé et comment le configurer proprement ?  
Ensuite, avant d’installer Nextcloud, comment finir de sécuriser (s’il le faut) le VPS.

Pas de Yunohost de prévu et désiré.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Juin 29, 2021, 11:48 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/2 "2021-06-29T11:48:09Z")

</div>

Titre trop vague à mon avis.

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juin 29, 2021, 12:31 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/3 "2021-06-29T12:31:56Z")

</div>

Bonjour **PascalHambourg** ,

Que proposes-tu comme titre ?  
Bien installer Debian sur un VPS.  
.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Juin 29, 2021, 4:43 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/4 "2021-06-29T16:43:30Z")

</div>

Non, toujours aussi vague. Si tu cherches de l’aide sur la sécurisation de fail2ban ou nextcloud, mets-le dans le titre.

---

<div class="post-metadata">

**Author:** ![jcsm33](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jcsm33/32/3832_2.png) [@jcsm33](https://www.debian-fr.org/u/jcsm33)\
**Post date:** [Juin 29, 2021, 6:38 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/5 "2021-06-29T18:38:00Z")

</div>

et debian ne propose pas de paquet nextcloud.

[https://wiki.debian.org/Nextcloud](https://wiki.debian.org/Nextcloud)

> The Nextcloud server is currently not officially packaged for Debian

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juin 30, 2021, 5:34 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/6 "2021-06-30T05:34:24Z")

</div>

RE

Voir prochaine réponse.

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juin 30, 2021, 5:37 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/7 "2021-06-30T05:37:21Z")

</div>

Bonjour **jcsm33**

Je suis d’accord, nextcloud serveur sera installé ensuite, d’abord sécuriser.  
Merci pour le lien.

Merci pour le changement de titre, j’espère que **PascalHambourg** sera content 😉

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Juillet 26, 2021, 3:07 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/8 "2021-07-26T15:07:15Z")

</div>

> [@griggione](#):
>
> Déjà, comment vérifier si fail2ban est correctement installé et comment le configurer proprement ?  
> Ensuite, avant d’installer Nextcloud, comment finir de sécuriser (s’il le faut) le VPS.

J’espère que je je n’arrive pas trop longtemps après la bataille, mais pour fail2ban, ça dépend de ce que tu veux protéger avec. Généralement je me contente de protéger ssh, avec les paramètres standards. Si tu as changé le port ssh, il faut adapter le fichier `/etc/fail2ban/jail.conf` en conséquence:

```auto
[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh # changer ici par le numéro de port désiré
logpath = %(sshd_log)s
backend = %(sshd_backend)s

```

Puis `systemctl restart fail2ban`. Pour surveiller que ça marche bien, tu peux faire

```auto
root@serveur:~# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

```

et

```auto
root@serveur:~# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 9878
| `- File list: /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 798
   `- Banned IP list: 35.242.136.58

```

Pour le reste, restreindre l’authentification des connexions ssh au compte root à la seule méthode ‹&nbsp;clé publique&nbsp;› est aussi une bonne idée.  
Ensuite, ça dépendra des autres logiciels choisis pour Nextcloud: le serveur web (apache ou nginx), et le SGBD (mysql ou postgresql) (et aussi php). Leur sécurisation est assez largement documentée, il me semble.

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juillet 27, 2021, 12:32 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/9 "2021-07-27T12:32:46Z")

</div>

Bonjour **Sputnik93** ,

J’ai bien modifier `/etc/fail2ban/jail.conf`.  
J’ai relancé fail2ban : `systemctl restart fail2ban`  
Mais pour `root@serveur:~# fail2ban-client status`

```nohighlight
root@cloud-ciuvr1n7:~# fail2ban-client status
Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

```

Je n’ai pas fail2ban.sock  
Le problème ???

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Juillet 27, 2021, 12:56 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/10 "2021-07-27T12:56:16Z")

</div>

Alors soit le service est crashé au démarrage (ça peut être une erreur de syntaxe par exemple), vérifie avec `systemctl status fail2ban` et `journalctl -u fail2ban`.

Sinon il y a un couac dans la conf du fichier socket. Tu peux afficher le retour de `systemctl cat fail2ban` ?  
Tu devrais avoir une ligne comme ça, dedans:

```auto
PIDFile=/var/run/fail2ban/fail2ban.pid

```

Il faut s’assurer que la valeur est la même que dans le fichier `/etc/fail2ban/fail2ban.conf`:

```auto
pidfile = /var/run/fail2ban/fail2ban.pid

```

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Juillet 27, 2021, 1:01 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/11 "2021-07-27T13:01:16Z")

</div>

> [@Sputnik93](#):
>
> Sinon il y a un couac dans la conf du fichier socket. Tu peux afficher le retour de `systemctl cat fail2ban` ?

Ou un simple problème de droit pour accéder au dossier qui stockera le fichier .pid (je commencerai même par là).

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juillet 27, 2021, 1:23 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/12 "2021-07-27T13:23:39Z")

</div>

RE

> [@Sputnik93](#):
>
> Tu devrais avoir une ligne comme ça, dedans:
> 
> ```plaintext
> PIDFile=/var/run/fail2ban/fail2ban.pid
> 
> ```

Ce que j’ai fait :

```plaintext
ExecStop=/usr/bin/fail2ban-client stop
ExecReload=/usr/bin/fail2ban-client reload
PIDFile=/var/run/fail2ban/fail2ban.pid
Restart=on-failure
RestartPreventExitStatus=0 255

```

Et dans  
Il faut s’assurer que la valeur est la même que dans le fichier `/etc/fail2ban/fail2ban.conf` :

```plaintext
pidfile = /var/run/fail2ban/fail2ban.pid

```

Sinon, je continue :

```plaintext
root@cloud-ciuvr1n7:~# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2021-07-27 14:29:22 CEST; 51min ago
     Docs: man:fail2ban(1)
  Process: 57247 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS)
  Process: 57248 ExecStart=/usr/bin/fail2ban-server -xf start (code=exited, status=255/EXCEPTION)
 Main PID: 57248 (code=exited, status=255/EXCEPTION)

juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: Failed during configuration: File contains no section headers.
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: file: '/etc/fail2ban/jail.d/1nf02m4c0253845714.conf', line: 2
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: '<VirtualHost *:80>\n'
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: Async configuration of server failed
juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Failed with result 'exit-code'.

```

Et :

```plaintext
root@cloud-ciuvr1n7:~# journalctl -u fail2ban
-- Logs begin at Mon 2021-06-28 11:43:08 CEST, end at Tue 2021-07-27 15:17:01 CEST. --
juin 28 15:01:05 cloud-ciuvr1n7 systemd[1]: /lib/systemd/system/fail2ban.service:12: PIDFile= references path below legacy directory /var/ru
juin 28 15:01:05 cloud-ciuvr1n7 systemd[1]: /lib/systemd/system/fail2ban.service:12: PIDFile= references path below legacy directory /var/ru
juin 28 15:01:05 cloud-ciuvr1n7 systemd[1]: /lib/systemd/system/fail2ban.service:12: PIDFile= references path below legacy directory /var/ru
juin 28 15:01:05 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juin 28 15:01:05 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juin 28 15:01:06 cloud-ciuvr1n7 fail2ban-server[38767]: Server ready
juin 28 15:01:06 cloud-ciuvr1n7 systemd[1]: /lib/systemd/system/fail2ban.service:12: PIDFile= references path below legacy directory /var/ru
juil. 27 14:22:25 cloud-ciuvr1n7 systemd[1]: Stopping Fail2Ban Service...
juil. 27 14:22:26 cloud-ciuvr1n7 fail2ban-client[57191]: Shutdown successful
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Main process exited, code=killed, status=15/TERM
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Succeeded.
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: Stopped Fail2Ban Service.
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juil. 27 14:22:26 cloud-ciuvr1n7 fail2ban-server[57199]: Failed during configuration: File contains no section headers.
juil. 27 14:22:26 cloud-ciuvr1n7 fail2ban-server[57199]: file: '/etc/fail2ban/jail.d/1nf02m4c0253845714.conf', line: 2
juil. 27 14:22:26 cloud-ciuvr1n7 fail2ban-server[57199]: '<VirtualHost *:80>\n'
juil. 27 14:22:26 cloud-ciuvr1n7 fail2ban-server[57199]: Async configuration of server failed
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
juil. 27 14:22:26 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Failed with result 'exit-code'.
juil. 27 14:23:12 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juil. 27 14:23:12 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juil. 27 14:23:12 cloud-ciuvr1n7 fail2ban-server[57205]: Failed during configuration: File contains no section headers.
juil. 27 14:23:12 cloud-ciuvr1n7 fail2ban-server[57205]: file: '/etc/fail2ban/jail.d/1nf02m4c0253845714.conf', line: 2
juil. 27 14:23:12 cloud-ciuvr1n7 fail2ban-server[57205]: '<VirtualHost *:80>\n'
juil. 27 14:23:12 cloud-ciuvr1n7 fail2ban-server[57205]: Async configuration of server failed
juil. 27 14:23:12 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
juil. 27 14:23:12 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Failed with result 'exit-code'.
juil. 27 14:24:08 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juil. 27 14:24:08 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juil. 27 14:24:08 cloud-ciuvr1n7 fail2ban-server[57213]: Failed during configuration: File contains no section headers.
juil. 27 14:24:08 cloud-ciuvr1n7 fail2ban-server[57213]: file: '/etc/fail2ban/jail.d/1nf02m4c0253845714.conf', line: 2
juil. 27 14:24:08 cloud-ciuvr1n7 fail2ban-server[57213]: '<VirtualHost *:80>\n'
juil. 27 14:24:08 cloud-ciuvr1n7 fail2ban-server[57213]: Async configuration of server failed
juil. 27 14:24:08 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
juil. 27 14:24:08 cloud-ciuvr1n7 systemd[1]: fail2ban.service: Failed with result 'exit-code'.
juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: Starting Fail2Ban Service...
juil. 27 14:29:22 cloud-ciuvr1n7 systemd[1]: Started Fail2Ban Service.
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: Failed during configuration: File contains no section headers.
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: file: '/etc/fail2ban/jail.d/1nf02m4c0253845714.conf', line: 2
juil. 27 14:29:22 cloud-ciuvr1n7 fail2ban-server[57248]: '<VirtualHost *:80>\n'
lines 1-42

```

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Juillet 27, 2021, 2:17 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/13 "2021-07-27T14:17:55Z")

</div>

C’est donc la 1ère hypothèse. Apparemment la syntaxe de ton fichier `/etc/fail2ban/jail.d/1nf02m4c0253845714.conf` ne lui plaît pas («&nbsp;file contains no section headers&nbsp;»)

On dirait d’ailleurs le début d’un fichier de conf d’un site apache (" \<VirtualHost \*:80\>"), une erreur de copier/coller ?

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juillet 27, 2021, 3:02 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/14 "2021-07-27T15:02:53Z")

</div>

RE

> [@Sputnik93](#):
>
> Apparemment la syntaxe de ton fichier `/etc/fail2ban/jail.d/1nf02m4c0253845714.conf` ne lui plaît pas (« file contains no section headers »)

Je suis allé vérifier, exact pour le fichier d’un site apache.  
J’ai viré puis :

```plaintext
root@cloud-ciuvr1n7:~# systemctl restart fail2ban
root@cloud-ciuvr1n7:~# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

root@cloud-ciuvr1n7:~# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned: 0
   `- Banned IP list:

```

Merci pour la soluce.  
Tu as dit aussi :

> [@Sputnik93](#):
>
> Pour le reste, restreindre l’authentification des connexions ssh au compte root à la seule méthode ‹ clé publique › est aussi une bonne idée.

Je cherche un petit tuto car je n’ai jamais fait.

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Juillet 27, 2021, 3:24 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/15 "2021-07-27T15:24:26Z")

</div>

> [@griggione](#):
>
> Je cherche un petit tuto car je n’ai jamais fait.

Le principe est d’utiliser le chiffrement asymétrique, avec une clé privée et une clé publique, c’est assez simple à mettre en oeuvre .

Tu peux suivre [ce tuto](https://www.codeflow.site/fr/article/how-to-set-up-ssh-keys-on-debian-10) par exemple, il a l’air correct.  
Attention, ne perd pas ta clé privée ^^

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juillet 27, 2021, 3:49 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/16 "2021-07-27T15:49:18Z")

</div>

RE

> [@Sputnik93](#):
>
> Tu peux suivre [ce tuto](https://www.codeflow.site/fr/article/how-to-set-up-ssh-keys-on-debian-10) par exemple, il a l’air correct.

Je te remercie, je vais regarder à tête reposée et je reviens rendre compte.

---

<div class="post-metadata">

**Author:** ![Mu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mu/32/14176_2.png) [@Mu](https://www.debian-fr.org/u/Mu)\
**Post date:** [Juillet 27, 2021, 4:00 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/17 "2021-07-27T16:00:05Z")

</div>

Bonjour,

Personnellement, j’ai mis en place une connexion par clé sur un compte avec accès sudo et j’ai désactivé l’accès à root.

Et pense à mettre ton ip en whitelist dans fail2ban avant d’essayer de mettre en place la connexion par clé, juste au cas où ^^.

---

<div class="post-metadata">

**Author:** ![griggione](https://www.debian-fr.org/user_avatar/www.debian-fr.org/griggione/32/11073_2.png) [@griggione](https://www.debian-fr.org/u/griggione)\
**Post date:** [Juillet 27, 2021, 5:15 UTC](https://www.debian-fr.org/t/securiser-un-vps-debian-buster/84881/18 "2021-07-27T17:15:47Z")

</div>

RE

> [@Mu](#):
>
> Et pense à mettre ton ip en whitelist dans fail2ban avant d’essayer de mettre en place la connexion par clé, juste au cas où ^^.

OK c’est noté, merci.
