Archives du mot-clé Communs

Lut.im : une tragé­die des communs évitée

Savez-vous ce qu’est la tragé­die des communs ? C’est quand une ressource commune est surex­ploi­tée et au final, tout le monde est perdant.

C’est un peu ce qui se passe en ce moment sur l’ins­tance offi­cielle de mon logi­ciel Lutim : https://lut.im.

En effet, depuis déjà quelques jours, ce site est inac­ces­sible en soirée. Trop d’uti­li­sa­teurs qui veulent voir trop d’images en même temps. Lut.im victime de son succès ?

Oui et non : oui car le site commence à être plutôt connu (surtout en Russie, allez savoir pourquoi) ; non car c’est un problème d’abus de la ressource commune qu’est lut.im : en effet, le problème vient de l’uti­li­sa­tion qui est en faite par quelques personnes.

Pour comprendre ce qui se passait, j’ai activé les logs d’ac­cès au service — en prenant soin de ne pas affi­cher les adresses des images deman­dées (voir plus bas) — et j’ai noté quelques adresses de refe­rer suspectes ainsi qu’un nombre incroyable de requêtes deman­dées par des user-agent Kodi et quelques XBMC.

J’ai été voir sur un des refe­rer suspects : un site de strea­ming de chaîne télé… et certains des logos des chaînes étaient héber­gés sur https://lut.im ! Ça m’a mis la puce à l’oreille quant aux user-agent Kodi. Un peu de recherche genre kodi tv channel "https://lut.im" et je tombe sur un truc comme http://www.listaiptv­bra­sil.com.br/paste.php?id=3 (oui, je savais qu’il y avait moyen de voir des chaînes de télé sur Kodi, j’en ai un et j’avais regardé si je pouvais voir des chaînes de télé mais j’avais au final laissé tomber, vu la qualité de ce qu’on peut voir à la télé (pis bon, la pub…)).

J’ai donc bloqué, pour éviter l’in­dis­po­ni­bi­lité fréquente de https://lut.im, les refe­rer de ce genre que j’ai trouvé ainsi que les user-agent Kodi et XBMC :

if ($http_referer ~ (site1|site2) {
    return 429;
}
if ($http_user_agent ~* (Kodi|XBMC)) {
    return 429;
}

Le statut 429 que je renvoie corres­pond à « Too Many Requests ». Disons que c’est le statut que j’ai trouvé le plus proche de la situa­tion. Certes, ce n’est pas le client qui fait trop de requêtes, mais bon.

La soirée d’hier s’est passée sans alerte de la part de la super­vi­sion et chaque fois que j’ai été voir le site, celui-ci était acces­sible ! Mes actions ont donc évité la surex­ploi­ta­tion de la ressource commune 🙂

Et voilà comment j’ai modi­fié le format de mon log d’ac­cès pour ne pas loguer les IPs de mes visi­teurs ni les URLs des images deman­dées :

log_format lutim '$remote_user [$time_local] $status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';
server {
    …
    access_log /var/log/nginx/lutim.access.log lutim;
    …
}

J’ai après cela remis la confi­gu­ra­tion à access_log off; et supprimé les jour­naux d’ac­cès.

Crédit : Photo de Brad Helmink sur Unsplash

Me soutenir sur Tipeee Me soutenir sur Liberapay