Bonjour,

Sur mon VPS, j'utilise UFW pour contrôler mes ports.
Le port http est ouvert en tcp avec UFW ALLOW IN anywhere.

Apache l'écoute, tout fonctionne très bien. Trop bien, même.
Fin mai, j'ai programmé une page 404, qui note, dans une BD mysql l'historique des visites, avec l'adresse demandée, obtenue par $_SERVER['REQUEST_URI'].

Conçue, au départ, pour m'aider à détecter d'éventuels liens brisés, j'ai découvert, avec effroi, qu'elle était très visitée.
Et par des gens pas toujours bien intentionnés.

Elle renseigne des liens qui n'existent pas, vers des pages qui sont, à mon avis, des points faibles d'applications pré-installées, ou qui ne sont pas destinées à tout internaute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
+-----+------------------------------------------------------------------------------------------------------------------------------------------------+
| nb  | uri                                                                                                                                            |
+-----+------------------------------------------------------------------------------------------------------------------------------------------------+
| 106 | /.env                                                                                                                                          |
|  48 | /wp-login.php                                                                                                                                  |
|  12 | /repeater.php                                                                                                                                  |
|  11 | /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php                                                                                            |
|  10 | /.git/config                                                                                                                                   |
|   9 | //wp-admin/css/colors/blue/blue.php?wall=ZWNobyBhRHJpdjQ7ZXZhbCgkX1BPU1RbJ3Z6J10pOw==                                                          |
|   9 | /wordpress/                                                                                                                                    |
|   8 | /alfa-rex.php7                                                                                                                                 |
|   8 | /boaform/admin/formLogin                                                                                                                       |
|   8 | /wp-content/plugins/woocommerce/readme.txt                                                                                                     |
|   7 | /dmosth                                                                                                                                        |
|   6 | /simple.php                                                                                                                                    |
|   6 | /wp-content/                                                                                                                                   |
|   5 | //wp-content/plugins/TOPXOH/wDR.php                                                                                                            |
|   5 | //wp-content/plugins/wordpresss3cll/up.php                                                                                                     |
|   5 | //wp-includes/wp-class.php                                                                                                                     |
|   5 | /admin.php                                                                                                                                     |
|   5 | /ajax-actions.php                                                                                                                              |
|   5 | /alfanew.php                                                                                                                                   |
|   5 | /api/.env                                                                                                                                      |
|   5 | /blog/                                                                                                                                         |
|   5 | /cache-compat.php                                                                                                                              |
|   5 | /wp-admin/ajax-actions.php                                                                                                                     |
|   5 | /wp-admin/js/about.php                                                                                                                         |
|   5 | /wp-admin/js/widgets/about.php7                                                                                                                |
|   5 | /wp-admin/repeater.php                                                                                                                         |
|   5 | /wp-consar.php                                                                                                                                 |
|   5 | /wp-content/plugins/Cache/Cache.php                                                                                                            |
|   5 | /wp-content/plugins/seoo/wsoyanz.php                                                                                                           |
|   5 | /wp-content/plugins/seoo/wsoyanz1.php                                                                                                          |
|   5 | /wp-content/repeater.php                                                                                                                       |
|   5 | /wp-includes/repeater.php                                                                                                                      |
|   5 | /wp-includes/wlwmanifest.xml                                                                                                                   |
|   5 | /wp-p.php7                                                                                                                                     |
|   5 | /wsoyanz.php                                                                                                                                   |
|   5 | /xmlrpc.php
Et j'en passe, il y en a des milliers ...
La plupart ciblent WordPress, réputé le logiciel web le plus hacké au monde.

Excédé par ces cyberbots malveillants, je me demande si je ne configurerais pas mon port http(s) avec UFW LIMIT
Dont les valeurs par défaut me semblent, toutefois, trop strictes.

Maximum 6 requêtes en 30 secondes, sinon, blocage de l'IP pendant un délai que je ne connais pas.
Ces paramètres me conviennent très bien, pour sécuriser mon port ssh.
Ils me semblent trop lourd, pour un port http.

Dénommons ces trois variables max, intervalle et blocage.
Pour mon port HTTP, je voudrais
max = 5
intervalle = 5 sec
blocage = 20 sec

5 pages en 5 secondes, plutôt qu'une page par seconde, car certaines pages lancent une requête Ajax, dans la foulée de leur ouverture.
Ca me semble suffisant, pour tout internaute humain.
Ces paramètres ne paralyseront qu'un robot-fouilleur.

Ce matin, l'IP 18.221.236.1, attribuée à Amazon, avait lancé 73 requêtes en moins d'une seconde.
Toutes sont datées de ce 20 août 2003 à 01:38:10
L'attaque a donc duré moins d'une seconde !

Toutes ces requêtes demandent des pages-clés de certains logiciels commerciaux, inexistantes sur mon VPS, et ont donc été révélées dans l'historique de ma 404.
Je voudrais bloquer ce genre de fouilleur à l'avenir.

J'ai installé fail2ban, mais qui ne me semble pas être conçu pour lutter contre ce type d'attaque.
Car fail2ban détecte les logins erronés sur le port ssh.
Rien à voir, donc, avec de l'http, dont il est question ici.
-----------------
Je n'ai, toutefois, trouvé aucune information permettant de configurer, port par port, les paramètres de blocage de UFW LIMIT.

Dans mes lectures, j'ai découvert qu' UFW n'était pas un "vrai" firewall, en soi,
mais une interface simplifiée, pour configurer iptables, qui resterait le seul firewall effectif.

Quelqu'un pourrait-il m'expliquer comment limiter, port par port, l'accès avec UFW ou iptables ?
En définissant, pour chaque port limité, les trois paramètres max, intervalle et blocage.

Merci.
Christian.