Log nginx bizarre

,

Bonjour,

Voici quelques extraits du log access.log de nginx, je n’y connais pas grand chose mais je suis pas en confiance devant ce genre de lignes:

158.85.81.125 - - [20/Aug/2017:07:07:45 +0000] "GET / HTTP/1.0" 302 154 "-" "Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0"
185.22.155.16 - - [20/Aug/2017:08:43:17 +0000] "\x16\x03\x01\x00\x98\x01\x00\x00\x94\x03\x03Y\x99K\xA5Iu\x0E\x86\xA5O\xE0\x93\x8Bd{M\x1C&V\xC1\x9B\xC4\x9180Hv\xD8\xFC\xCA\x1BQ\x00\x00*\xC0+\xC0/\x00\x9E\xC0" 400 166 "-" "-"
185.22.155.16 - - [20/Aug/2017:08:43:21 +0000] "\x16\x03\x01\x00\x98\x01\x00\x00\x94\x03\x03Y\x99K\xA9\xA5>\x06K\xAD\xEB\xDC\xA5R@\xDF;\x91y6\xEC=" 400 166 "-" "-"
213.202.233.156 - - [20/Aug/2017:17:14:14 +0000] "GET //a2billing/admin/Public/index.php HTTP/1.1" 302 154 "-" "libwww-perl/6.05"
67.235.215.19 - - [21/Aug/2017:04:57:31 +0000] "GET /yunohost/admin/ HTTP/1.1" 200 3463 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
190.94.144.157 - - [27/Aug/2017:13:22:40 +0000] "GET / HTTP/1.0" 302 154 "-" "masscan/1.0"

J’ai pas tout pris, il y en a des quantités, le vrai problème étant que je tourne sur linux, pas sur windows et que je demande jamais de trucs du genre \x16\x03\x01\x00\x98\x01\x00\x00\x94\x03\ (je ne sais plus comment cela s’appelle d’ailleurs).
La question: au vu de ces quelques lignes, est ce que mon serveur est compromis?

La 1èer colonne correspond à l’IP qui fait la demande. 185.22.155.16 et correspondrait à une IP en Russie d’après une recherche rapide.
J’ai aussi trouvé “That looks like someone trying to connect using SSL to a non-SSL port (i.e. https://).”

Dans le wiki https://yunohost.org/#/troubleshooting_guide_fr il est dit “Le fichier générique d’accès. Vous trouverez ici toutes les tentatives d’accès à l’administration de YunoHost et certaines tentatives d’intrusion.”

Il semblerait que ce soit plus une tentative d’attaque de quelqu’un qui essaie de venir sur l’adresse de ton serveur en utilisant une adresse en http:// et non https://


indique une machine qui n’a que SSH sur le port 22… Machine compromise du coup?

J’ai regardé dans mes logs et j’ai une ligne
66.240.205.34 - - [30/Aug/2017:11:28:08 +0200] “Gh0st\xAD\x00\x00\x00\xE0\x00\x00\x00x\x9CKS``\x98\xC3\xC0\xC0\xC0\x06\xC4\x8C@\xBCQ\x96\x81\x81\x09H\x07\xA7\x16\x95e&\xA7*\x04$&g+\x182\x94\xF6\xB000\xAC\xA8rc\x00\x01\x11\xA0\x82\x1F\x5C&\x83\xC7K7\x86\x19\xE5n\x0C9\x95n\x0C;\x84\x0F3\xAC\xE8sch\xA8^\xCF4'J\x97\xA9\x82\xE30\xC3\x91h]&\x90\xF8\xCE\x97S\xCBA4L?2=\xE1\xC4\x92\x86\x0B@\xF5\x0CT\x1F\xAE\xAF]” 400 166 “-” “-”

Pour l’IP, je trouve ça

Je continue de chercher des infos…

Merci beaucoup de m’avoir répondu.
Mon petit serveur a plusieurs ports ouverts sur internet par des règles NAT (80, 443 et 4 autres pour les mails) plus le port 22 mais normalement le port 22 n’est accessible que sur le réseau local puisqu’il n’a pas de règle NAT.
Il y a très peu de personnes qui connaissent mon nom de domaine (même pas 5 personnes), c’est pour ça que je me suis inquiété en voyant autant de logs.

J’ai des masses de logs (et je me suis pas vraiment souvent connecté), je peux en mettre d’autres, par exemple

199.48.164.78 - - [27/Aug/2017:10:25:30 +0000] "GET /recordings//theme/main.css HTTP/1.1" 302 154 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
139.162.114.70 - - [27/Aug/2017:13:31:47 +0000] "GET / HTTP/1.1" 302 154 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
101.227.249.116 - - [28/Aug/2017:00:29:50 +0000] "GET /myadmin/scripts/setup.php HTTP/1.1" 302 154 "-" "ZmEu"
80.82.77.139 - - [28/Aug/2017:05:12:43 +0000] "" 400 0 "-" "-"
80.82.77.139 - - [28/Aug/2017:05:12:44 +0000] "" 400 0 "-" "-"
80.82.77.139 - - [28/Aug/2017:05:12:44 +0000] "" 400 0 "-" "-"
80.82.77.139 - - [28/Aug/2017:05:12:45 +0000] "" 400 0 "-" "-"
80.82.77.139 - - [28/Aug/2017:05:12:48 +0000] "quit" 400 166 "-" "-"

Faut il que j’envisage une réinstallation?

185.22.155.16 - - [20/Aug/2017:08:43:17 +0000] "\x16\x03\x01\x00\x98\x01\x00\x00\x94\x03\x03Y\x99K\xA5Iu\x0E\x86\xA5O\xE0\x93\x8Bd{M\x1C&V\xC1\x9B\xC4\x9180Hv\xD8\xFC\xCA\x1BQ\x00\x00*\xC0+\xC0/\x00\x9E\xC0" 400 166 "-" "-"
185.22.155.16 - - [20/Aug/2017:08:43:21 +0000] "\x16\x03\x01\x00\x98\x01\x00\x00\x94\x03\x03Y\x99K\xA9\xA5>\x06K\xAD\xEB\xDC\xA5R@\xDF;\x91y6\xEC=" 400 166 "-" "-"

Ces deux lignes correspondent a une tentative de connexion TLS ( HTTPS ).

Le contenu d’une requête TLS/HTTPS ( sécurisé ) n’étant pas encodé avec de l’ASCII ( caractère latin basique https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange ) comme les requêtes HTTP mais avec des structure de donnée “orienté binaire”.

Donc lorsque NGINX tente de les retranscrire dans le fichier de logs il ne peut pas totalement utiliser l’ASCII et donc les caractères latin. Dans ce cas il va utiliser une représentation hexadecimal des données brute.

Le décodage de ces requêtes peut ce faire a l’ai de ce site (http://blog.fourthbit.com/2014/12/23/traffic-analysis-of-an-ssl-slash-tls-session )

Donc cela nous donne :
\x16 => Requete de Type Handshake TLS" \x03\x01\x00\x98 => Length \x01 => CLIENT_HELLO \x00\x00\x94 => Length \x03\x03 => TLS v1.2

Et ainsi de suite.

Donc il y a “quelqu’un” en Russie qui essaye de se connecter sur ton serveur en HTTPS sur le port HTTP.
A priori rien de grave.

Je rajouterai que ta machine est sur internet donc accessible par tous. Un “simple” balayage de l’ensemble des adresse IP permet de la trouver. Pas besoin de connaitre le nom de domaine. Il y a un certain nombre de robots qui tourne en permanence dans le but de trouver des machines sur le net.

Ne soit donc pas étonné de voir beaucoup de log apparaitre.

Ok pour la connexion TLS et le lien et aussi pour l’existence de shodan.io, je me coucherai moins bête ce soir:slight_smile:

Mon serveur stocke une boite mail et un cloud, les deux sont accessibles par mot de passe.
C’est correct niveau sécurité ou faut il la renforcer?

Il faut bien mettre à jour les applications régulièrement et mettre à jour le système, ne pas installer d’applications qui ne servent pas, obsolètes, car ça ajoute des failles potentiellement.

Un mot de passe unique que tu n’utilises pas sur un compte ailleurs (sur un forum ou autre qui peut se faire pirater), un mot de passe long de type phrase de passe et tu évites les risques. Le risque existera toujours, mais si tu as un mot de passe solide et unique, que tu fais les mises à jour et ne t’amuses pas à aller modifier des tas de fichiers de configuration sans savoir ce que tu fais, tu es très correct au niveau de la sécurité.

J’essaie de ne jamais utiliser deux fois le même mot de passe, me voilà rassuré :slight_smile:
Au niveau des mises à jour, une fois par semaine, ça suffit ou il faut que ce soit plus régulier? C’est la fréquence que j’ai adopté pour mon pc, mais je sais pas si c’est adapté pour un serveur.

Hi, I have seem similar entries in my nginx log files and this is the solution I have found: https://stackoverflow.com/questions/46254721/regex-for-detecting-complex-attack-strings-on-web-sites