> For the complete documentation index, see [llms.txt](https://vii.gitbook.io/tutoriels-avalanche-avax/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vii.gitbook.io/tutoriels-avalanche-avax/extra-node/extra-un-peu-de-securite.md).

# Extra: Un peu de sécurité

## Sécuriser son node

### Dédier un compte utilisateur AVAX sur votre serveur

L'interet de dédier un compte de votre serveur à l'utilisation de votre node permet généralement de ne plus se connecter avec le compte root de votre serveur, qui est une mauvaise pratique.

Créer un nouvel utilisateur sur votre serveur:

```
adduser monutilisateur
```

Renseignez ensuite le mot de passe pour ce nouveau compte ainsi que les informations complémentaires (non nécessaires) si vous le souhaitez.

### Connexion via clé SSH

La connexion à son node via une combinaison ID/MDP n'est pas conseillé. Il est préférable de se connecter via une clé SSH. En terme de sécurité, la clé de type ed25519 offre le meilleur rapport entre sécurité et performance.

#### générer une paire de clé&#x20;

Pour générer votre paire de clé privée publique, vous pouvez la créer directement sur votre ordinateur

{% tabs %}
{% tab title="Mac / Linux" %}
Ouvrez votre terminal et tapez la commande suivante:

```
ssh-keygen -t ed25519
```

Il vous sera demandé d'entrer une passphrase, a vous de mettre un mot de passe ou de laisser cela vide (permet de s'y connecter plus rapidement).

Votre paire de clé sera visible dans votre dossier caché .ssh

```
ls -l ~/.ssh/
```

Il ne vous reste plus qu'à aller déposer votre clé dans le serveur de votre Node

```
ssh-copy-id -i .ssh/id_ed25519.pub monutilisateur@ipPubliqueDeVotreServeur
```

{% endtab %}

{% tab title="Windows" %}
Pour générer une paire de clé sous windows, il faudra passer par PuttyGen qui est un logiciel qui s'installe en complément du [traditionnel putty](https://www.putty.org).
{% endtab %}
{% endtabs %}

#### Modifier le fichier de configuration SSH

Maintenant que votre clé publique a été placée dans votre serveur, il reste encore quelques modifications à effectuer sur le fichier de configuration du service SSH de votre serveur. Pour cela, il faut se rendre dans le fichier /etc/ssh/sshd\_config et modifier les lignes suivantes:

{% code title="/etc/ssh/sshd\_config" %}

```
HostKey /etc/ssh/ssh_host_ed25519_key
PubkeyAuthentication yes
```

{% endcode %}

Maintenant que les lignes sont modifiées vous pouvez sauvegarder votre fichier et redemarrer le service ssh:

```
service ssh restart
```

#### Vérifier la connexion via clé ssh

Tout est maintenant prêt. Vous allez vérifier que vous pouvez vous connecter au serveur grâce à votre clé SSH. Pour ce faire taper la commande suivante depuis votre ordinateur:

{% tabs %}
{% tab title="Mac / Linux" %}
Lancez votre terminal et tapez la commande suivante:

```
ssh -i ~/.ssh/id_ed25519 monutilisateur@ipPubliqueDeVotreServeur
```

{% endtab %}

{% tab title="Windows" %}
L'acces se fera au travers de putty
{% endtab %}
{% endtabs %}

### Mettre un service de Firewall

Le Firewall joue un role important dans votre sécurité. Il permet de bloquer les ports et de n'ouvrir les ports que pour les services actifs de votre node / serveur.

Voici la liste des services qu'utilise votre serveur et qui doivent être ouverts:

| SSH                   | Port 22   |
| --------------------- | --------- |
| Communication du Node | Port 9651 |

Les ports en dehors de ces deux ports n'ont pas besoin d'être ouverts

{% hint style="danger" %}
Si il y a bien un port a **ne surtout pas oublier d'ouvrir c'est votre port 22** !
{% endhint %}

#### Installation / Configuration

Vérifier que le package ufw est bien présent sur votre VPS

```
sudo apt list ufw
//En cas de package présent sur votre serveur, vous aurez le retour suivant:
Listing... Done
ufw/focal-updates,focal-updates [installed]
```

Sinon, installez le

```
sudo apt update && sudo apt upgrade -y
sudo apt install ufw -y
```

Ajouter les règles pour autoriser les deux ports précédemment cités

```
sudo ufw allow ssh
sudo ufw allow 9651
```

Activer le Firewall

```
sudo ufw enable
```

### Mettre un service de Fail2Ban

Le service fail2ban va permettre de bannir les personnes qui essayerai de se connecter a votre VPS plusieurs fois avec un mauvais mot de passe. Ce service à d'autres usages mais nous allons surtout nous en servir pour bannir les personnes qui essayeraient de se connecter en SSH.

#### Installation / Configuration

Vérifier que le package fail2ban est bien présent sur votre VPS sinon installez le

```
sudo apt list fail2ban
//En cas de package présent sur votre serveur, vous aurez le retour suivant:

Listing... Done
fail2ban/focal,focal,now 0.11.1-1 all [installed]
```

Sinon, installez le

```
sudo apt update && sudo apt upgrade -y
sudo apt install fail2ban -y
```

Ajoutez les lignes suivantes dans la configuration du fichier

```
Fichier: /etc/fail2ban/jail.d/defaults-debian.conf

[sshd]
enabled = true

[recidive]
enabled = true
```

Fermez le fichier avec la combinaison de touches `ctrl + x y <enter>`

Parcourez le fichier `jail.conf` pour vérifier la configuration de la partie *sshd* et *recidive* que nous avons activé.

```
Fichier: /etc/fail2ban/jail.conf

[sshd]

port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s


[recidive]

logpath  = /var/log/fail2ban.log
banaction = %(banaction_allports)s
bantime  = 1w
findtime = 1d
```

Dans ce même fichier, changez les valeurs suivantes

```
Fichier: /etc/fail2ban/jail.conf

bantime  = 10m
findtime  = 10m
maxretry = 3
```

Fermez le fichier avec la combinaison de touches `ctrl + x y <enter>`

{% hint style="warning" %}
`Les valeurs de temps de ban son volontairement faibles. En effet,`` `**`vous pouvez vous ban vous même`**` ``avec cette configuration. Il vous est cependant possible de whitelister votre IP publique pour vous éviter cela.`
{% endhint %}

Il est maintenant temps de démarrer le service fail2ban

```
sudo fail2ban-client start
```

Si celui ci est déjà lancé la commande suivante suffira:

```
sudo fail2ban-client reload
```

Vous pourrez consulter les statistiques de ban de votre service fail2ban avec les commandes:

```
sudo fail2ban-client status
sudo fail2ban-client status sshd
```

## Vous avez des questions / suggestions?

Je suis disponible sur [Twitter](https://twitter.com/VIIBlock), n'hésitez pas à me follow.

### Vous avez aimé cet article?

Si cet article vous a été utile et que vous souhaitez me remercier, vous pouvez effectuer un don a cette adresse **C-Chain**: **0x3e2d6dce444e52e15d28d9013196bb99cb0fcdd1**
