LOG HTTP.error - Intrusions?

Salut à tous,

J’ai régulièrement des erreurs de ce type :

[Tue Jun 02 23:03:57.998104 2020] [:error] [pid 12810] [client 128.1.134.111:21147] script '/var/www/html/dong.php' not found or unable to stat
[Tue Jun 02 23:03:58.249799 2020] [:error] [pid 12810] [client 128.1.134.111:21147] script '/var/www/html/xun.php' not found or unable to stat
[Tue Jun 02 23:04:00.265472 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/datas.php' not found or unable to stat
[Tue Jun 02 23:04:00.507619 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/aojiao.php' not found or unable to stat
[Tue Jun 02 23:04:00.760308 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/guipu.php' not found or unable to stat
[Tue Jun 02 23:04:01.005457 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/zhui.php' not found or unable to stat
[Tue Jun 02 23:04:02.050350 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/ji.php' not found or unable to stat
[Tue Jun 02 23:04:02.296597 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/xing.php' not found or unable to stat
[Tue Jun 02 23:04:05.827691 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/c.php' not found or unable to stat
[Tue Jun 02 23:04:06.094603 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/c.php' not found or unable to stat
[Tue Jun 02 23:04:06.343212 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/test.php' not found or unable to stat
[Tue Jun 02 23:04:06.593048 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/laobiao.php' not found or unable to stat
[Tue Jun 02 23:04:06.862326 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/sample.php' not found or unable to stat
[Tue Jun 02 23:04:11.014602 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/shell.php' not found or unable to stat
[Tue Jun 02 23:04:11.253864 2020] [access_compat:error] [pid 22569] [client 128.1.134.111:28879] AH01797: client denied by server configuration: /var/www/html/data/admin
[Tue Jun 02 23:04:11.760910 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/12.php' not found or unable to stat
[Tue Jun 02 23:04:13.434213 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/ecmsmod.php' not found or unable to stat
[Tue Jun 02 23:04:15.709431 2020] [:error] [pid 22569] [client 128.1.134.111:28879] script '/var/www/html/user.php' not found or unable to stat, referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:3:{s:2:"id";s:3:"'/*";s:3:"num";s:141:"*/ union select 1,0x272F2A,3,4,5,6,7,8,0x7b247b24524345275d3b6469652f2a2a2f286d6435284449524543544f52595f534550415241544f5229293b2f2f7d7d,0--";s:4:"name";s:3:"ads";}554fcae493e564ee0dc75bdf2ebf94ca
[03-Jun-2020 10:04:54 Europe/Berlin] PHP Notice:  Array to string conversion in /var/www/html/index.php on line 28
[Wed Jun 03 11:01:10.371630 2020] [access_compat:error] [pid 31763] [client 195.54.160.135:36518] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Wed Jun 03 11:01:10.874554 2020] [access_compat:error] [pid 5270] [client 195.54.160.135:40682] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Wed Jun 03 12:16:11.088675 2020] [:error] [pid 27967] [client 172.105.89.161:54330] script '/var/www/html/data.php' not found or unable to stat

S’agit-il de tentatives d’intrusion à votre avis?
Merci d’avance pour vos avis :slight_smile:

1 « J'aime »

Je ne suis pas expert, mais je dirai que c’est pas tres rassurant.
D’ailleur ça fait plusieurs semaine que je souhaite ouvrir un poste sur la sécurité, de nos serveur Linux.
Car après avoir subit une grosse attaque au travail, je suis un peu en flip de tout ça.

Salut,

Rien de méchant, juste une série de « robots » qui tentent de trouver des failles connues sur nos serveurs.
Une solution efficace, c’est fail2ban, j’en avais déjà parlé sur l’ancien forum et un fichier de config est dispo dans jeedom dans install/fail2ban.jeedom.conf
C’est une bonne base pour pouvoir sécuriser un peu

1 « J'aime »

Merci Naboleo :slight_smile:

Aurais-tu par hasard les références de ce post sur l’ancien forum? Ou les coordonnées d’un tuto ?

Par ailleurs, je ne trouve pas le fichier fail2ban.jeedom.conf… il doit se trouver sous /html/install ?

Le fichier est là /var/www/html/install/fail2ban.jeedom.conf ou là…

Pour le tuto, tu peux regarder https://byfeel.info/proteger-votre-serveur-contre-les-tentatives-dintrusion/
A noter que jeedom installe fail2ban par défaut, donc en théorie, il reste à mettre le fichier et à relancer le service

Super, merci beaucoup!
Je vais essayer tout cela :wink:

Salut Naboleo (si tu passes par ici :wink:

J’ai tout configuré comme indiqué et j’ai ce matin le log suivant:

[Thu Jun 04 20:39:55.207691 2020] [:error] [pid 2179] [client 3.7.66.180:50850] script ‹ /var/www/html/elrekt.php › not found or unable to stat
[Fri Jun 05 00:35:23.270568 2020] [access_compat:error] [pid 23973] [client 195.54.160.135:45898] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Fri Jun 05 01:01:18.635167 2020] [core:error] [pid 21492] [client 23.97.200.17:51711] AH00126: Invalid URI in request GET index.php?v=d HTTP/1.1
[Fri Jun 05 01:01:21.247861 2020] [core:error] [pid 21035] [client 23.97.200.17:51728] AH00126: Invalid URI in request OPTIONS index.php?v=d HTTP/1.1
[Fri Jun 05 01:01:24.573673 2020] [core:error] [pid 23984] [client 23.97.200.17:51748] AH00126: Invalid URI in request POST index.php?v=d HTTP/1.1
[Fri Jun 05 01:01:34.493924 2020] [core:error] [pid 20526] [client 23.97.200.17:51781] AH00126: Invalid URI in request GET index.php?v=d HTTP/1.1
[Fri Jun 05 01:17:30.774388 2020] [access_compat:error] [pid 23984] [client 195.54.160.135:47600] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Fri Jun 05 08:51:56.315702 2020] [:error] [pid 29646] [client 166.62.92.37:26181] script ‹ /var/www/html/l.php › not found or unable to stat
[Fri Jun 05 08:51:56.482361 2020] [:error] [pid 29646] [client 166.62.92.37:26181] script ‹ /var/www/html/phpinfo.php › not found or unable to stat
[Fri Jun 05 08:51:56.649733 2020] [:error] [pid 29646] [client 166.62.92.37:26181] script ‹ /var/www/html/test.php › not found or unable to stat
C’est normal?

Comment savoir si fail2ban est bien actif et opérationnel avec la nouvelle config ?

Merci d’avance

Salut

Sur le téléphone difficile de lire mais en principe tu devrais voir que 3 ou 4 actions par adresses ip (le temps que le ban s’active) et pas une longue liste comme avant.

En plus tu peux consulter les logs de fail2ban : par défaut
sudo tail -f /var/log/fail2ban.log

1 « J'aime »

Super, merci bien :wink:

Alors, je vais encore profiter un peu de tes connaissances (les miennes sont réduites sur Linux), si tu veux bien.
Dans le répertoire /var/log, j’ai des fichiers multiples xxxx.log.1 xxx.log.2.gz xxx.log.3.gz etc
Certains sont « gros » et j’imagine qu’il n’y a pas besoin impérieux de les garder.
Je peux delete les .3 .4 .5 .6 etc ou pas?

Mon Jeedom (sous RaspBian) tourne maintenant depuis 1 an et demi, il y a d’autres « ménages » à faire ailleurs?

Bon week-end

Salut.
Donc tu vois les actions de ban et unban désormais ?
Concernant les archives de log (x.gz) oui il n’y a pas beaucoup de risques à les effacer manuellement, s’il existent sous cette forme, c’est qu’il y a probablement déjà des mécanismes de gestion en place et donc des actions d’effacement en fonction de la taille et/ou date d’ancienneté

Bonjour @naboleo,
Je rebondis sur le sujet car j’ai aussi régulièrement ces messages :
[Sat Jul 11 01:58:15.260294 2020] [access_compat:error] [pid 23741] [client 195.54.160.135:44140] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Sat Jul 11 02:06:16.938633 2020] [access_compat:error] [pid 24008] [client 195.54.160.135:45170] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Sat Jul 11 02:06:18.232147 2020] [access_compat:error] [pid 23981] [client 195.54.160.135:43562] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Sat Jul 11 02:36:26.855070 2020] [access_compat:error] [pid 23759] [client 195.54.160.135:60544] AH01797: client denied by server configuration: /var/www/html/vendor/phpunit
[Sat Jul 11 05:09:16.417453 2020] [core:error] [pid 23760] [client 195.54.160.115:47992] AH00126: Invalid URI in request GET .
Par curiosité j’ai testé l’adresse 195.54.160.54 et voilà ce que j’obtiens :


Peux-tu, stp, me donner un début d’explication ?
Merci

Salut.

Comme tous tu as quelques machines qui scannent/viennent essayer d’accéder au contenu de ton jeedom. Pas en ciblant précisément ton cas mais en essayant des choses courantes : ici l’accès à ‹ vendor/phpunit ›
Ton jeedom refuse bien l’accès et affiche ça dans le log.
De ton côté, tu es tombé sur une machine dont le port 80 est ouvert mais sans configuration. Le serveur affiche donc la page par défaut en copie.
Rien de surprenant ni de particulier ni une erreur c’est le comportement attendu là-bas : tu demandes une page html : ça renvoi du contenu (ou une erreur) …
Bref tu viens de faire à la main exactement la même chose que ces machines qui scannent automatiquement.
Pour déborder un peu et devancer ta question, actuellement si cette machine vient chercher la ‹ vendor/phpunit › 200 fois par jour. Ton jeedom rejete 200 fois la demande. Fail2ban permettra de limiter la quantité au bout de quelques tentatives, la demande sera jetée toute de suite.

Merci beaucoup de ton explication, je vais aller voir le tuto dont tu parles un peu plus haut.
Bonne journée

Bonjour,

Dans le fichier de config jail.local , dont voici un extrait du contenu:

[apache-multiport]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/www/html/log/http*.error
maxretry = 3

Pourquoi le logpath est /var/www/html/log/http*.error
Je ne comprends pas pourquoi il y a une * après le http.

Ne peut-on pas mettre soit /var/www/html/log/http.error ce qui je suppose ferait arriver dans le log http.error les traces des actions de fail2ban

soit dans /var/www/html/log/fail2ban
ce qui je suppose ajouterait un élément dans la liste des log de Jeedom labelisé fail2ban avec ses traces dedans.

Qu’en pensez-vous?

http*.error ça veut dire tous les fichiers qui commencent par http et qui finissent par .error
Donc http.error en fait partie… ce sont les fichiers analysés PAR fail2ban

Tu as tout interets à mettre les traces de fail2ban ailleurs que dans le même fichier qu’apache

Aucun intérêt de re-analyser les logs de fail2ban, donc oui pour cette destination mais pas en changeant le filtre

Ah ok. Je n’avait pas compris la philosophie du fonctionnement . Maintenant c’est plus clair.

Pour le moment je vois le log via cette commande trouvée sur ce forum:
sudo tail -f /var/log/fail2ban.log

2021-01-22 19:56:28,725 fail2ban.filter         [27062]: INFO      maxRetry: 3
2021-01-22 19:56:28,725 fail2ban.filter         [27062]: INFO      findtime: 7200
2021-01-22 19:56:28,726 fail2ban.actions        [27062]: INFO      banTime: 28800
2021-01-22 19:56:28,730 fail2ban.jail           [27062]: INFO    Jail 'sshd' started
2021-01-22 19:56:28,732 fail2ban.jail           [27062]: INFO    Jail 'apache-badbots' started
2021-01-22 19:56:28,734 fail2ban.jail           [27062]: INFO    Jail 'apache-noscript' started
2021-01-22 19:56:28,735 fail2ban.jail           [27062]: INFO    Jail 'apache-overflows' started
2021-01-22 19:56:28,737 fail2ban.jail           [27062]: INFO    Jail 'apache-botsearch' started
2021-01-22 19:56:28,740 fail2ban.jail           [27062]: INFO    Jail 'apache-multiport' started

J’aurais trouvé facile d’avoir ce log intégré dans la liste des Log de Jeedom (près de cron_execution, http.error, event, …):slight_smile:

Via le lien que tu avais donné: https://byfeel.info/proteger-votre-serveur-contre-les-tentatives-dintrusion/
(le contenu date de 2018).
Je vois que en logo path ils utilisent: logpath = /var/log/apache2/*error.log

alors que le fichier fourni dans Jeedom pour fail2ban on utilise logpath = /var/www/html/log/http*.error

Faut-il aussi scanner /var/log/apache2/*error.log ???

Merci

Oui, c’est plus pratique mais moins simple pour les débutants car il faut faire plusieurs actions
De plus, une fois que ça tourne correctement, fail2ban on l’oublie

As tu des logs à cet endroit ? Par défaut (avec jeedom) c’est pas le cas…

1 « J'aime »

La seule trace que j’ai c’est une reboot donc effectivement pas utile à surveiller:

[Wed Jan 15 13:32:47.235373 2020] [core:notice] [pid 18332] AH00094: Command line: '/usr/sbin/apache2'

[Wed Jan 15 13:32:48.187739 2020] [mpm_prefork:notice] [pid 18332] AH00169: caught SIGTERM, shutting down

[Wed Jan 15 13:32:51.559571 2020] [mpm_prefork:notice] [pid 18388] AH00163: Apache/2.4.38 (Raspbian) configured -- resuming normal operations

Y a t-il un fichier reprenant les adresses bannies?

Merci

1 « J'aime »

Bonjour,

Dans le fail2ban.log j’ai l’INFO de 3 IP trouvées sur les 10 lignes d’info
En dessous, que veut dire la ligne Total failed: 10 ?

Pour la ligne Total banned: 1 j’imagine que c’est l’IP qui revient 8 fois qui est bannie ?
Le bannissement n’est pas continue, de ce que je vois dans la config il y a bantime qui défini la durée (60min).

Si je banni une ip avec la commande ci-dessous, est-ce éternellement ou bien après un certain délai l’ip redevient « également autorisée »?
sudo fail2ban-client set apache-multiport banip 45.154.007.099

Merci

1 « J'aime »