# Sécurisation d'un VPS sous Debian 10

## Mise à jour

Il est important de mettre à jour régulièrement Debian.

```bash
apt update && apt upgrade -y
```

## Accès SSH

On gère ensuite la connexion SSH.

On génère une clé SSH.

```bash
ssh-keygen
```

On rentre un passphrase.

On copie ensuite le contenu de la clé privée dans notre outil de connexion SSH (PuTTY par exemple).

```bash
cat ~/.ssh/id_rsa.pub
```

On peut également le faire à l'aide de PuTTYgen.

[![image-1615394652290.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/SP0BftdNGOEUxSFo-image-1615394652290.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/SP0BftdNGOEUxSFo-image-1615394652290.png)

On copie le contenu de la clé dans le fichier /home/$USER/.ssh/authorized\_keys.

On rentre une passphrase, on clique sur "Save Private Key".

On modifie ensuite le fichier de configuration sshd.

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

[![image-1615395219479.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/iw6PTmRnhavhTdVK-image-1615395219479.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/iw6PTmRnhavhTdVK-image-1615395219479.png)

[![image-1615395242745.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/lt0myGE4PAvsVPJk-image-1615395242745.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/lt0myGE4PAvsVPJk-image-1615395242745.png)

On modifie également le port SSH.

## Fail2ban

On installe fail2ban pour éviter les attaques via SSH.

```bash
apt install fail2ban
```

## Pare-feu

On installe iptables.

```bash
apt install iptables
```

```sh
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 2022  -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443  -m state --state NEW -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -j DROP
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 2022  -m state --state NEW -j ACCEPT
ip6tables -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT
ip6tables -A INPUT -p tcp --dport 443  -m state --state NEW -j ACCEPT
ip6tables -A INPUT -p ICMPV6 --icmpv6-type 8 -j ACCEPT
ip6tables -A INPUT -j DROP
```

```shell
apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
```

Pour ajouter une règle à la ligne 7 :

```shell
iptables -I INPUT 7 -p tcp -m tcp --dport 3000 -j ACCEPT
```