« Protection Surveillance VPS » : différence entre les versions

Aucun résumé des modifications
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
<p>Protection contre les attaques DDoS/SYN flood.</p>
<p>Protection contre les attaques DDoS/SYN flood.</p>
Ce document explique comment '''surveiller les connexions TCP incomplètes (SYN-RECV)''' et '''protéger votre VPS contre les tentatives de saturation TCP (SYN flood)''' avec nftables.
Ce document explique comment '''surveiller les connexions TCP incomplètes (SYN-RECV)''' et '''protéger votre VPS contre les tentatives de saturation TCP (SYN flood)''' avec nftables.
-----


== 1️⃣ Surveiller les SYN-RECV ==
== 1️⃣ Surveiller les SYN-RECV ==
Ligne 10 : Ligne 7 :
=== a) Voir toutes les connexions SYN-RECV ===
=== a) Voir toutes les connexions SYN-RECV ===


<syntaxhighlight lang="bash">ss -tan state syn-recv</syntaxhighlight>
<syntaxhighlight lang="bash" copy>ss -tan state syn-recv</syntaxhighlight>
* Affiche toutes les '''tentatives de connexion TCP''' qui n’ont pas encore été complétées (SYN reçu, ACK non encore reçu).
* Affiche toutes les '''tentatives de connexion TCP''' qui n’ont pas encore été complétées (SYN reçu, ACK non encore reçu).
* Utile pour détecter des '''SYN flood ou scans rapides''' sur vos ports exposés (SSH, HTTPS, etc.).
* Utile pour détecter des '''SYN flood ou scans rapides''' sur vos ports exposés (SSH, HTTPS, etc.).
Ligne 23 : Ligne 20 :


<syntaxhighlight lang="bash" copy>ss -tan state syn-recv | awk '{split($3,a,":"); print a[length(a)]}' | sort | uniq -c | sort -nr</syntaxhighlight>
<syntaxhighlight lang="bash" copy>ss -tan state syn-recv | awk '{split($3,a,":"); print a[length(a)]}' | sort | uniq -c | sort -nr</syntaxhighlight>
ou
<syntaxhighlight lang="bash" copy>ss -tan state syn-recv | awk '{print $3}' | sort | uniq -c | sort -nr</syntaxhighlight>
* Affiche '''le nombre de SYN-RECV par port local'''.
* Affiche '''le nombre de SYN-RECV par port local'''.
* Permet de '''repérer les ports les plus sollicités''' ou ciblés par des scans.
* Permet de '''repérer les ports les plus sollicités''' ou ciblés par des scans.
* Exemple de sortie :
* Exemple de sortie :


<pre>152 443
<pre>
10 22</pre>
138 443
1 Local
</pre>
* Ici, le port 443 (HTTPS) reçoit le plus de SYN, suivi du port 22 (SSH).
* Ici, le port 443 (HTTPS) reçoit le plus de SYN, suivi du port 22 (SSH).


-----
-----
Ligne 38 : Ligne 38 :
=== Règle SYN limit ===
=== Règle SYN limit ===


<syntaxhighlight lang="bash">sudo nft add rule inet filter input tcp flags syn limit rate 10/second burst 20 packets accept</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo nft add rule inet filter input tcp flags syn limit rate 10/second burst 20 packets accept</syntaxhighlight>
* '''Limite les nouvelles connexions TCP (SYN) à 10 par seconde''', avec un '''burst autorisé de 20 SYN'''.
* '''Limite les nouvelles connexions TCP (SYN) à 10 par seconde''', avec un '''burst autorisé de 20 SYN'''.
* Protège contre les '''SYN flood''' et les scans rapides.
* Protège contre les '''SYN flood''' et les scans rapides.
* Les nouvelles connexions au-delà de cette limite seront temporairement rejetées.
* Les nouvelles connexions au-delà de cette limite seront temporairement rejetées.
* Cette règle peut être '''appliquée par port''' si vous voulez protéger uniquement SSH ou un service critique.
* Cette règle peut être '''appliquée par port''' si vous voulez protéger uniquement SSH ou un service critique.


-----
-----
Ligne 51 : Ligne 50 :
# '''Créer un fichier de configuration nftables'''
# '''Créer un fichier de configuration nftables'''


<syntaxhighlight lang="bash">sudo nano /etc/nftables.conf</syntaxhighlight>
<syntaxhighlight lang="bash" copy>sudo nano /etc/nftables.conf</syntaxhighlight>
<ol start="2" style="list-style-type: decimal;">
<ol start="2" style="list-style-type: decimal;">
<li>'''Ajouter votre table, chaîne et règle''' :</li></ol>
<li>'''Ajouter votre table, chaîne et règle''' :</li></ol>
Ligne 101 : Ligne 100 :
|
|
|}
|}


-----
-----
Ligne 110 : Ligne 108 :
* Les ports critiques comme SSH ou HTTPS restent accessibles aux utilisateurs légitimes
* Les ports critiques comme SSH ou HTTPS restent accessibles aux utilisateurs légitimes
* Il est facile de '''surveiller le trafic TCP et détecter les anomalies'''.
* Il est facile de '''surveiller le trafic TCP et détecter les anomalies'''.
```
[[Catégorie: Debian]]
[[Catégorie: Debian]]