PROJET AUTOBLOG


Le Blog de Genma

source: Le Blog de Genma

⇐ retour index

Yunohost - Supervision en ligne de commande

jeudi 1 janvier 1970 à 01:00

Date de dernière mise à jour 07 juillet 2016

Avec Yunohost, je me suis mis sérieusement à l'administration système pour comprendre ce qui se passe sur ma machine et surveiller les accès et connexions etc. J'accède donc à ma machine via SSH (via une clef) en réseau locale ou à distance et dans ce billet, je comptais évoquer quelques-uns des outils et commandes que j'utilise. Le but n'est pas de faire un cours complet, juste un listing / une sorte d'aide mémoire partagé. Si vous même avez des conseils, des outils préférés non listés, n'hésitez pas à commenter.

Je suis susceptible de compléter ce billet au fur et à mesure de ma montée en compétence, d'où la date de mise à jour ci-dessus.

Consommation mémoire et listing des processus

Pour ça j'utilise la commande top dans sa version améliorée, à savoir

Htop

Pour aller plus loin, j'utilise

Glances

donne la consommation mémoire, les processus, l'espace disque...

Je vous renvoie vers Glances - An eye on your system de Nicolargo.

Pour le réseau

Nethogs

qui permet de surveiller par processus, l'usage de la bande passante en temps réel.

Pour voir les ports et connexions en cours,

$ netstat -puant
$ netstat -lapute

Analyses des logs

Pour l'analyse des logs, je fais pour l'instant des

tail -f /var/log/monfichier.log

Pour Fail2ban, je regarde ce qui se passe au niveau des différentes jails via

fail2ban-client status ssh

par exemple

Je commence à utiliser GoAccess - Visual Web Log Analyzer qui permet de voir les logs de façon un peu plus graphique et sympa comme le monte l'image suivante :

Yunohost, Let's Encrypt, A+ au SSLLabs

jeudi 1 janvier 1970 à 01:00

Prérequis pour comprendre cet article Connaitre Let's Encrypt, le principe de SSL/TLS, savoir mettre en place la configuration de Let's Encrypt.

Dans le cadre de l'autohébergement de mon cloud personnel sur Yunohost, j'ai remplacé le certificat autosigné par un certificat Let's Encrypt, pour le domaine principal ainsi que les sous-domaines. Pour ce, j'ai suivi le tutoriel How to : Install Let's Encrypt certificates, pas à pas. Ca marche, le certificat est mis en place et permet d'avoir une connexion sécurisée de qualité.

Toutefois, comme je cherche à avoir la configuration TLS (pour les connexions HTTPS) la meilleure possible, j'ai testé l'adresse de mon nom de domaine (et des sous-domaine associé) sur le site https://www.ssllabs.com/. Par défaut la configuration est bonne et correct mais ne donne qu'une note de B comme résultat.

Ce qui est confirmé avec une extension comme Calomel SSL qui montre que la configuration n'est pas optimum/la plus élevée.

Attention : plus la note est élevée, plus la configuration est stricte et rend incompatible l'accès avec les anciennes versions des navigateurs (d'ordinateur ou d'OS mobile).

N'accédant à ce cloud personnel que par un navigateur récent, Firefox, quelque soit mon appareil (PC ou smartphone), ce n'est pas un soucis et mon but est donc d'obtenir la meilleur note possible.

Par défaut la configuration est bonne mais donne donc un B comme résultat. J'ai donc regardé ce que m'indiquait le résultat du test du SSLLabs, j'ai consulté différents tutoriaux sur comment sécuriser nginx...

J'ai comparé les modifications faites à la configuration nginx conseillée à celle qui est mise en place par défaut par Yunohost, la configuration est bien faite et sécurisée (les algorithmes obsolètes sont désactivés par exemple). J'ai toutefois été un peu plus loin en apportant quelques modifications :
Extrait de la configuration de Nginx /etc/nginx/conf.d/blog.mondomaine.org.conf :

ssl_protocols TLSv1.1 TLSv1.2;
#ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM;
# On réduit les différents algos de chiffrement utilisable
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

A comparer avec ce que recommande Aeris par exemple, en configuration extrême :

TLSv1.2 + EECDH + AESGCM + SHA-2 only :P

Ce qu'il manque pour avoir une meilleure note, c'est d'avoir du Diffie Hellman. Il faut générer le fichier pour Diffie Hellman, ce qui se fait via :

sudo mkdir -p /etc/nginx/ssl &&
sudo openssl rand 48 -out /etc/nginx/ssl/ticket.key &&
sudo openssl dhparam -out /etc/nginx/ssl/dhparam4.pem 4096

C'est assez long, ça prend une bonne dizaines de minutes (et est très dépendant de la puissance processeur et la génération de nombres aléatoires...)

Ensuite, dans la configuration de Nginx de chacun des domaines et sous-domaine on modifie le fichier de la façon suivante :

# nano /etc/nginx/conf.d/blog.mondomaine.org.conf

# Uncomment the following directive after DH generation
# > openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048
# ssl_dhparam /etc/ssl/private/dh2048.pem;
ssl_dhparam /etc/nginx/ssl/dhparam4.pem;

Une fois ces modifications apportées, on valide que la configuration nginx est sans erreur

nginx -t

On redémarre alors nginx via

service nginx restart

Et on peut de nouveau tester la configuration sur le site du SSLLabs. Et normalement on devrait avoir une note supérieure.

Yunohost et Sonerezh

jeudi 1 janvier 1970 à 01:00

C'est via les différents billets de blog de l'ami Dadda, sur Sonerezh que j'ai découvert Sonerezh il y a quelques mois. Depuis j'utilise ce logiciel au quotidien.

Sonerezh est une application qui permet de lire des fichiers musicaux stockés sur son serveur via son navigateur https://www.sonerezh.bzh/

D'autres logiciels du même type existe, comme Ampache. Je l'avais testé mais je n'avais pas été convaincu. Sonerezh, je l'ai adopté dès que je l'ai essayé.

Sonerezh est disponible en package pour Yunohost. Toutefois, ce n'est pas la dernière version, en attendant que ce soit le cas, on peut toujours installer ce package pour profiter de l'automatisation de l'installation et de la configuration (principe de Yunohost). Dans la page principale des applications Yunohost installée, parmi les tuiles on aura l'ajout d'une tuile de raccourci vers l'application Sonerezh.

Et ensuite, on récupéra l'archive sur github, on la dézipera et copiera les fichiers de la dernière version à la place de la version installée.

wget https://github.com/Sonerezh/sonerezh/archive/1.1.3.zip
unzip 1.1.3.zip
sudo cp -r sonerezh-1.1.3 /var/www/sonerezh/

Comme indiqué sur la page du package, il y a une étape de post-installation à faire la première fois. Cela crée un utilisateur au sein de l'application Sonerezh et cela n'utilise donc pas l'utilisateur de Yunohost (voir à ce sujet Pourquoi Yunohost crée des comptes automatiquement ?. Ce sera donc cet utilisateur et ce mot de passe que l'on utilise (et non ceux de l'instance Yunohost).

Sonerezh propose ce que j'attends d'un lecteur de musique en ligne comme fonctionnalité. C'est simple et intuitif (pour l'import des fichiers : ça lit les tags et remplit la base de données). C'est plutôt rapide, on peut ajouter d'autres répertoires / sources par la suite, à tout moment. Dans mon cas, les fichiers de musique sont stockés sur la partie NAS de ma Freebox. Un simple montage réseau et le dossier est accessible en lecture seule depuis Yunohost. Et c'est ce chemin (vers le montage réseau) que j'ai défini dans la configuration / interface de paramétrage de Sonerezh. Il scanne alors les tags des fichiers pour ensuite proposer de les rechercher / des classements par album, titre, artistes. On peut créer des listes de lecture (je n'ai pas encore utilisé cette fonctionnalité).

En terme de débit, une simple connexion ADSL suffit comme je l'évoquais dans mon billet Autohébergement et ADSL. Je cite Si j'écoute de la musique en streaming dans le navigateur depuis l'extérieur (c'est donc ma machine de cloud qui diffuse la musique), cela consomme un peu moins de 70 ko/s sur une bande passante totale brut de 126,8 ko (1120 kbit/s). Et ce pour des musiques au format mp3 ou ogg en qualité 256 kbit/s.

Quelle plaisir c'est, quand on travaille en openspace, un casque sur les oreilles de pouvoir écouter ses musiques et albums préférés.

Comme vous l'avez compris, je recommande le logiciel Sonerezh. Et bien évidemment, c'est du logiciel libre, vu que c'est sous licence AGPL3. Mais qui en doutait :)

FreshRSS - Vérifier la validité du flux

jeudi 1 janvier 1970 à 01:00

Fonctionnalité anecdotique mais néanmoins intéressante, FreshRSS propose dans sa partie administration / gestion des liens atom/RSS de vérifier la validité du flux. Voir l'image ci-dessous :

Lorsque l'on clique sur le bouton Vérifier la validité du flux,

cela appelle l'URL du W3C validator https://validator.w3.org/feed/ avec en paramètre l'url du flux. On est alors directement sur la page de résultat du flux.

Un bon moyen de savoir si un flux est correct ou s'il est nécessaire d'y apporter des modifications.

Personnellement je suis abonné au flux RSS de mon propre blog, cela me permet de vérifier rapidement et simplement que les articles dont la publication est programmée c'est bien faite (si ils apparaissent dans le flux RSS, ils sont également publiés sur le blog). Je pense que de temps en temps il faudrait que je clique sur ce bouton (en attendant de finir mon projet Python de scripter l'appel aux URL du W3C avec envoie d'un mail donnant le résultat des différents validators, mais ce sera le sujet d'un autre billet).

ZTE Open C, Firefox OS, Cyanogenmod

jeudi 1 janvier 1970 à 01:00

Il y a un an Mozilla annonçait l'arrêt de Firefox OS pour smartphone, avec une réorientation vers les objets connectés. Depuis pas grand chose, quelques projets en interne sur ces fameux objets connectés. Peu de communication visible, la communication n'étant pas le fort de Mozilla. Et de mpn côté, j'ai pris du recul, je suis passé sur d'autres projets et je n'ai plus de temps à consacrer à la suite de feu Firefox OS. Toutefois, à la demande de plusieurs personnes, qui ont un ZTE Open C sous Firefox OS, je souhaiterais faire un état des lieux. Je laisserai les membres de la communauté compléter en commentaire si besoin (coucou Lapineige).

La communauté et B2G

Lapineige et quelques autres sont assez actifs sur le sujet de B2G, successeur de Firefox OS. C'est une version communautaire, ce qui devrait être (aurait dû être) la suite de Firefox OS, pour les smartphones. Je n'en sais plus, je vous mets deux liens ici :
- de Fx-OS à B2G-OS sur le forum MozFr.org
- B2G/Transition Project/Call For Contribution

ZTE Open C

Plusieurs personnes utilisent encore leur ZTE Open C sous Firefox OS et m'ont demandés quels conséquences et risques cela pouvait avoir de rester sur cette version non maintenue et donc non mise à jour. Car pour elles, le téléphone fait le travail et ça marche, ça répond à leurs besoins en terme de fonctionnalités...

Le moteur / coeur de Firefox 0S, c'est le moteur de rendu Gecko 44 datant de novembre 2015, correspondant donc à une version 44 de Firefox. (Sachant qu'au moment de la rédaction de ce billet, la version grand publique stable est à la version n°50). Quels conséquences ? Le web évolue semaines après semaines et le navigateur intégré à Firefox OS ne suivra pas les dernières avancées. Certe il est possible qu'un navigateur d'il y a 3 / 4 ans n'éprouve pas de problèmes à faire tourner la plupart des sites actuels, et que le premier blocage / limite sera avant tout au niveau des capacités physiques (hardware : vitesse du processeur, quantité de mémoire) du téléphone. Par contre, à la longue, ça sera bloquant pour tous les sites qui utiliseront les nouveaux standards du web.

Il faudrait également que je vois si des certificats comme Let's Encrypt sont au moins reconnu et permettent de surfer sur les sites actuels avec une connexion en https...

Y a-t-il des risques niveaux sécurité ? Affirmer que non que serait un mensonge. Mais on peut dire qu'ils sont minimes. Ils existent mais l'OS est si confidentiel, il y a si peu d'appareils en circulation / en fonctionnement, qu'il y a très peu de chances de voir des virus ou autres exploités une faille découverte sur Firefox OS pour transformer votre smartphone en zombie. Le risque existe, on le voit avec la problématique de tous les objets connectés (lampes, caméras et autres) qui ne sont pas mis à jour et qui deviennent alors la cible de groupes de pirates qui exploitent les vulnérabilités / failles de ces appareils...

En conclusion, il y a l'obsolescence du navigateur qui pourra poser problème à la longue et les risques / failles de sécurités potentiellles qui pourraient être découvertes.

Passer son ZTE Open C sur CyanogenMod ?

Faut-il passer son ZTE Open C sur CyanogenModou Android ? Oui il est possible de le faire et je vais mettre la procédure ci-dessous. Mais là encore, quid des mises à jours et évolutions ? Car que ce soit Android ou CyanogCyanogenModenmod, c'est une version 4.4 d'Android (on est à la version 7), donc une version non maintenue, non mise à jour... Et on en revient aux problématiques identiques à celles évoquées dans la partie précédente... L'intérêt peut être de bénéficier du store FDroid pour avoir des logiciels libres récents pour son smartphone (voir même du Google apps si on veut à tout pris du Google et des applications Android non libres).

Sur le pourquoi CyanogenModet non Android, lire mon billetAndroid ou CyanogenMod ?.

Cette partie est réservée à des personnes ayant déjà migrée leur téléphone ZTE Open C de la version d'origine à une version de Firefox OS communautaire. Toute erreur de manipulation (arrêt de la procédure, coupure du téléphone ou autre) peut le "bricker" / le rendre non fonctionnel. A faire uniquement si on comprend ce qui est dit (je ne détaillerai pas plus) et ce qu'il faut faire

Pour passer son ZTE Open C sur CyanogenMod, il faut passer par un boot loader alternatif qui marche/plus permissif. J'ai fait un tuto ici FirefoxOS - Bootloader alternatif, adb, et build communautaire, l'idée étant qu'au lieu de charger ensuite la rom de Firefox OS, on charge celle de Cyanogen.

Les différentes ROM pour le ZTE Open C (attention de bien prendre la bonne ! Il faut beaucoup défiler avant d'arriver aux bonnes ROMs) sont disponibles ici http://www.modaco.com/forums/topic/373101-zte-kis-3-zte-open-c-stock-roms/

Il faut un téléphone rooter (donc ayant été passé sur une version communautaire de Firefox OS).
- On utilisera le bootloader alternatif MAIS en faisant le flashage depuis la carte SD (sinon erreur en sideload) !
- En flashant avec la ROM FFOS+to+Android, on passera sur Android.
- Puis, en flashant à nouveau avec la rom CM11 non officielle pour le ZTE Open C (utilisation du bootloader alternatif et flashage en sideload), on passera sur Cyanogenmod version 11.

Il est possible de revenir à Firefox OS à tout moment, on repartira alors sur la page de référence pour ce téléphone http://builds.firefoxos.mozfr.org/doc/fr/devices/zte-open-c-fr.