PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Thuban : Comment je suis devenu un CHATONS ?

mercredi 31 mai 2017 à 12:30

Vous avez peut-être entendu parler des CHATONS, le Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires.
Alors que vos données et la plupart des sites webs consultés sont hébergés par les GAFAM (google, amazon, facebook, apple, microsoft), l'initiative CHATONS est à mon avis déterminante. On l'a vu lors de la vague de cyberattaques récente, ou si vous regardez la série M. Robot : les bombes ça fait mal, un reset numérique aussi. Êtes-vous tranquilles sur qui héberge vos données?
Tout ces éléments m'ont motivé pour devenir, à mon niveau, membre des CHATONS.

Cependant, cela demande un peu de temps, sinon de la disponibilité. Heureusement, quelques copains sont partants pour suivre cette aventure :)
Vous l'avez peut-être déjà lu, nous avons lancé notre service d'hébergement sur 3hg.fr.

Dans cet article, je souhaite expliquer comment j'ai mis en place un serveur qui sert de CHATONS pour peut-être inspirer d'autres initiatives de ce genre.

Les contraintes
Les services proposés de doivent pas nécessiter trop de bande passante ni d'espace de stockage car le serveur sera auto-hébergé. Si nécessaire, selon le succès de l'opération, du matériel plus performant sera investit.

Oui, le service sera auto-hébergé. Sinon, comment assurer aux "clients" que leurs données sont bien effacées s'ils en font la demande si elles sont enregistrées sur un serveur loué ?

L'espace de stockage limité est quelque chose que les autres CHATONS n'ont pas, ou en tout cas dans une moindre mesure. Cependant, il y a un service trop rarement proposé qui pourtant s'affranchi très bien des contraintes ci-dessus : le mail.

Ce sera donc le service principalement proposé : une messagerie.

La mise en place
Le serveur doit être efficace, sécurisé et le plus simple possible à administrer. Sans surprises, j'ai fait le choix d'utiliser OpenBSD. Voici les étapes que j'ai suivies :

Les inscriptions
Ce code PHP va proposer un formulaire où l'utilisateur demande un identifiant. Un captcha est fait maison (merci le code de blogotext :)) pour limiter les abus.
Une fois envoyé, ce formulaire envoie un mail aux administrateurs du site indiquant l'identifiant demandé et l'endroit où enregistrer le mot de passe pour le communiquer à l'utilisateur.

Une URL aléatoire est donnée à l'utilisateur pour récupérer ses identifiants lorsqu'ils seront prêt. Cela affiche en réalité le contenu du fichier rempli par l'administrateur lors de l'inscription et le supprime aussitôt.

Il est plus sûr de protéger avec la configuration du démon httpd le dossier contenant les identifiants.

Configuration /etc/httpd.conf :

location "/inscription/data*"   { block }

Formulaire d'inscription PHP
Si vous voulez l'utiliser, pensez à changer l'emplacement du formulaire d'inscription dans la variable "$GLOBALS['subscribe_dir']". Ce fichier est nommé "index.php" dans un dossier prévu pour l'inscription.


 'zéro',
'1' => 'un',
'2' => 'deux',
'3' => 'trois',
'4' => 'quatre',
'5' => 'cinq',
'6' => 'six',
'7' => 'sept',
'8' => 'huit',
'9' => 'neuf',
'10' => 'dix',
'11' => 'onze',
'12' => 'douze',
'13' => 'treize',
'14' => 'quatorze',
'15' => 'quinze',
'16' => 'seize',
);
?>



    
    
    
    
    3hg.fr | Vos mails pour des humains par des humain.
    
    <link rel="icon" href="./media/fe2a0650.favicon.png" data-original-source="https://yeuxdelibad.net/favicon.png" type="image/png">
    <link rel="stylesheet" href="/css/style.css">
    <link rel="stylesheet" href="/css/fontello/css/fontello.css">
    <link rel='stylesheet' href='//cdn.jsdelivr.net/font-hack/2.020/css/hack.min.css'>


    

    

Créer une adresse mail @3hg.fr'; echo '
'; echo '
'; echo '
    '; echo '
  • '; echo ''; echo ' @'.$GLOBALS['mail_domain']; echo 'Adresse mail souhaitée'; echo '
  • '; echo '
  • '; echo ''; echo captcha() ; echo ''; echo 'Êtes-vous humain ?'; echo '
  • '; echo ''; echo '
'; echo '
'; echo '
'; } /* Inscription demandée, on affiche la réponse */ if (!empty($_POST["subscribe"])) { if ( $_SESSION['captcha'] != $_POST['captcha'] ) { echo "Erreur de calcul ?"; } else { $user = ''; $admin_email = $GLOBALS['mail_admin']; // formulaire envoyé, on récupère tous les champs. if (!empty($_POST["user"])) { $user = trim($_POST["user"]); } if ($user != '') { $random_file = random_str(rand(10,75)); $random_page = $GLOBALS['subscribe_page'] . "?patate=" . $random_file; $headers = 'MIME-Version: 1.0' . "\\r\\n"; $headers .= 'From: ' . "\\r\\n" . 'Reply-To: Votre demande est bien envoyée, des humains vont s'en occuper.

"; echo "

Vous pourrez récupérer vos identifiants via: "; echo 'ce lien.'; } else { echo "

Une erreur est survenue lors de l'envoi du message

"; }; } } } else { if ( isset($_GET["patate"])) { $fichier = $_GET["patate"]; if ( ! ctype_alnum($fichier)){ echo "You are a bad guy!"; die(); } $path = './data/'.$fichier.'.txt'; if (file_exists($path)) { // On récupère le contenu et supprime le fichier $content = file_get_contents($path); unlink($path); echo "

Bienvenue sur 3hg.fr ☺.

"; echo "

Vos identifiants sont :

"; echo "
";

            echo $content;

            echo "
"; echo "

Ces informations sont déjà détruites, prenez-en note!

"; } else{ echo "

Il semble que votre compte ne soit pas encore prêt, ou bien le lien suivi est erroné ou périmé.

"; echo "

Dans le premier cas, réessayez plus tard, des humains traitent votre demande.

"; } } else { show_form(); } } ?>

Pour soutenir ce projet, n'hésitez pas à faire un petit don 😉

Les mots de passe
En l'état, c'est l'administrateur qui attribue le mot de passe pour l'utilisateur. Ça ne va pas.
On peut alors se tourner vers les solutions classiques d'outils PHP qui vont communiquer vers un dictionnaire ldap. Ça fonctionne sûrement très bien mais je n'ai pas trouvé de solution en laquelle j'avais vraiment confiance. Je choisis alors de me tourner vers une solution fiable d'un point de vue sécurité pour l'admin et l'utilisateur : SSH.

Lorsque l'utilisateur est créé, on le met dans un groupe particulier, par exemple "mailers".
On modifie la configuration de ssh pour que tous les utilisateurs de ce groupe n'aient accès qu'à une seule commande : "passwd", ceci afin de changer leur mot de passe :

/etc/ssh/sshd_config :

Match Group mailers
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand /usr/bin/passwd

Lorsque l'utilisateur tente de se connecter en SSH, il lui est alors proposé de modifier son mot de passe directement, sans la possibilité de faire autre chose.

$ ssh -p222 notreal@3hg.fr
notreal@3hg.fr's password:
Changing password for notreal.
Old password:
...
...

Quelques quotas
Je ne peux pas proposer un espace de stockage illimité pour les utilisateurs. Heureusement, OpenBSD a tout de prévu par défaut : je vais mettre des quotas pour les utilisateurs appartenant au groupe "mailers" :

# cat /etc/fstab : 
	782f1ddb783cdd13.b /mnt/bigstorage ffs rw,noexec,nodev,nosuid,softdep,noatime,groupquota 1 2
# edquota -g mailusers
	Quotas for group mailusers:
	/mnt/bigstorage: KBytes in use: 0, limits (soft = 750000, hard = 1000000)
			inodes in use: 0, limits (soft = 0, hard = 0)
quotaon -a

Simplifier la vie des admins
C'est bien connu, il faut prendre soin de ses admins :)
Ah, et en plus, je suis fainéant, donc dès qu'il y a plus de 3 commandes à taper, j'en fais un script :D .
Vous avez peut-être vu dans le code PHP un message qui indique aux admins les commandes à lancer pour ajouter un utilisateur. Il s'agit de deux scripts qui permettent de créer un utilisateur et le placer dans le bon groupe d'utilisateurs avec un dossier personnel situé sur un espace de stockage dédié. L'autre script permet d'enregistrer les identifiants de l'utilisateur pour qu'il puisse les consulter et que le serveur http puisse supprimer ces identifiants lorsqu'ils sont affichés (permissions).


#!/bin/sh

if [ "$(whoami)" != "root" ]; then
	echo "You have to be root"
	exit 1
fi
if [ $# -ne 2 ]; then
	echo "usage:"
	echo "addmailuser domain.net user"
	exit 1
fi

/usr/sbin/useradd -m -d /dossier/contenant/les/mails/"$1"/"$2" -s /bin/sh -G mailers "$2"
if [ $? -eq 0 ]; then
	echo "Entrez le mot de passe pour ce nouvel utilisateur"
	/usr/bin/passwd "$2"

	echo "$2@$1    $2" >> /etc/mail/virtuals
	rcctl restart smtpd
else
	echo "Pseudo déjà pris"
fi

exit 0
#!/bin/sh
if [ "$(whoami)" != "root" ]; then
	echo "You have to be root"
	exit 1
fi

if [ $# -ne 1 ]; then
	echo "usage:"
	echo "inscriremailuser fichier.txt"
	exit 1
fi

FPATH="/dossier/contenant/le/site/mail/inscription/data/$1"
echo "Création de $FPATH"

/usr/bin/touch $FPATH

/usr/local/bin/vim $FPATH

if [ $? -eq 0 ]; then
	echo "Merci, l'utilisateur peut maintenant consulter ses identifiants"
fi

/usr/sbin/chown www:daemon $FPATH

exit 0

Conclusion
Je crois avoir réussi à mettre en place un truc assez simple à utiliser sans tomber dans l'utilisation d'un tas d'éléments qui seraient difficiles à sécuriser. L'avenir nous dira si c'est aussi gérable que je l'imagine. Il y a déjà 27 utilisateurs inscrits et nous cherchons à améliorer la communication avec ces derniers (forum créé) qui ne lisent pas toutes les instructions. La récupération de compte est un élément à envisager aussi.
J'encourage quiconque à se lancer dans l'aventure d'un CHATONS. Si vous avez encore des doutes, vous savez où me trouver ;)

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

Thuban : [Trad] Tuto : Installer OpenBSD sur Libreboot

mercredi 31 mai 2017 à 10:56

Nous vous faisons part de la publication de l'article "Installer LibertyBSD ou OpenBSD sur un système libreboot".

C'est une traduction du tutoriel officiel du projet Libreboot...
Encore une fois, grâce à une licence libre "Copyleft", nous pouvons faire ce travail... et c'est vraiment un plaisir de nous l'offrir ! ;)

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

citizenz7 : Monitorer son matériel sous Gnu/Linux

mercredi 31 mai 2017 à 09:55

Dimanche : j'ai tout fait cramer. En ces jours de forte chaleur précoce (un p'tit 36 °C des familles fin mai, c'est pas banal en bourgogne nivernaise ...)
J'ai reçu du nouveau matos hier (!) et je dois bien dire que je suis un peu tendu niveau température du nouveau système que j'essaie de "monitorer" dans tous les sens...

Pour le moment, c'est du grand bonheur en comparaison de mon ancien CPU (AMD Phenom 2 x6). Mon nouveau Intel I5 7500 ne dépasse pas 42 °C en burn (j'ai fait pas mal de tests).
Certainement, le watercooling installé y fait pour beaucoup (Cooler master - Master Liquid 240).
Par exemple, ma carte graphique que j'ai récupéré de mon ancien ordi (MSI GTX 760) montait à 81 °C en "burn". Elle est à 66 °C en burn actuellement.
Le nouveau boitier (Be quiet! Pure base 600) permet une meilleure circulation de la chaleur : ventilo de 140 devant, ventilo de 120 derrière.

Bref ...

Voici les commandes et applis que j'utilise actuellement pour monitorer mon matériel, plus particumièrement la température :

Carte graphique : nvidia-smi
Nvidia-smi (System Management Interface) permet d'afficher pas mal d'infos sur la carte graphique.
J'affiche les infos de ma carte graphique Nvidia en "live" (température, ventilos, etc.) :

watch -n 0,1 nvidia-smi

Cela m'affiche toutes les secondes les infos de nvidia-smi.
En allant fouiller sur le site officiel, vous trouverez plein de commandes à rallonge pour comléter les informations recueillies, du style : 

nvidia-smi -i 0 -q -d MEMORY,UTILIZATION,POWER,CLOCK,COMPUTE
nvidia-smi -q -g 0 -d UTILIZATION -l

CPU : lm-sensors
Pour le CPU (et ses 4 cores), j'utilise le traditionnel lm-sensors qui vous trouverez sur quasiment toutes les distrib.
Sous Debian-like: apt install lm-sensors
Puis lancez : sensors-detect
Vous pouvez quasiment répondre Yes à chaque question ou suivre les recommandations de l'appli (le yes ou le no est en majuscule quand il s'agit de l'option par défaut).

Disque dur : hddtemp
Pour le/les disque(s) dur(s), encore une app bien connue : hddtemp.
Sous Debian-like : apt install hddtemp
Vous lancez hddtemp en lui fournissant simplement l'emplacement du disque à monitorer, par exemple :  hddtemp /dev/sda

Attention toutefois, je n'ai aucun retour d'info pour disque en /dev/sda qui est un SSD (Samsung) :

/dev/sda: Samsung SSD 840 Series :  pas de capteur

Mon disque en /dev/sdb (disque dur "classique") me renvoie quant à lui les bonnes infos :

/dev/sdb: ST31000524AS: 35°C

Disque dur : smartctl
Un peu moins connu (en ce qui me concerne en tout cas), smartctl permet d'afficher des infos détaillées sur les disques.
Sous Debian-like (Ubuntu en l'occurence) : apt install smartmontools
Vous pouvez également installer smart-notifier.

On "active" Smart sur le disque :

sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda

Puis on affiche les infos grace à la commande suivante :

smartctl -a /dev/sda

Voici un extrait des infos (longues !) qui me sont retournées :

smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-53-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 840 Series
Serial Number:    S19HNEAD503664K
LU WWN Device Id: 5 002538 55033ae22
Firmware Version: DXT08B0Q
User Capacity:    120 034 123 776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed May 31 09:46:33 2017 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
...

On peut aussi utiliser des combinaisons d'options comme :

smartctl -d ata -A /dev/sda | grep -i temperature

Ou même afficher des infos sur l'état actuel d'un disque :

smartctl -s on -a /dev/sda

Enfin, n'oubliez pas de lancer le daemon smartd qui n'est pas actiivé par défaut sous Ubuntu.
Éditez le fichier /etc/default/smartmontools et décommenter la ligne :

start_smartd=yes

... puis démarrez le service en tapant :

sudo /etc/init.d/smartmontools start

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

mozillaZine-fr : Une réponse à l’article « Chrome a gagné »

mardi 30 mai 2017 à 17:48

Comme vous avez pu le lire sur notre fil Twitter, Andreas Gal, ancien CTO de Mozilla, a écrit un article intitulé « Chrome won ». En réponse, Henri Sivonen, un développeur chez Mozilla, a écrit ce commentaire que nous traduisons ici :

Je pense que l’idée que tout ce qui n’est pas en forte croissance ne compte plus ou n’a plus d’intérêt, est une idée malsaine. En particulier pour en tirer des conclusions sur ce que Mozilla doit faire.

Quelle conclusion aurions-nous dû tirer lorsque IE était en forte croissance ? Laisser tomber ?

Ce n’est pas parce que les téléphones sont en forte croissance que les PC ne comptent plus. Les téléphones ne peuvent pas remplacer les PC pour de nombreuses tâches, alors les PC vont continuer à exister. Et tant qu’ils existent, il vaut mieux que les navigateurs continuent à être en bonne santé.

Et si on se concentre sur les mobiles, les gens consultent beaucoup le Web sur mobile. Peut-être qu’ils passent encore plus de temps sur les applis de Facebook et Twitter, mais cela ne veut pas dire que le Web sur mobile ne compte pas ou ne mérite pas qu’on s’en occupe.

Que ce soit sur mobile ou sur PC, nous serons tous perdants si le Web devient moins sain du fait qu’on le néglige au prétexte qu’il ne croit plus assez pour être considéré comme cool ou si on le laisse aux navigateurs livrés avec les systèmes d’exploitation. Le faible coût d’un changement de navigateur par rapport à un changement de matériel fait que c’est un marché très concurrentiel et même très rude pour Mozilla qui ne vend pas de système d’exploitation.

C’est certain que les choses non-Web (les objets connectés et autres) vont croître et des gens vont être attirés par ça plutôt que par le Web. Cela ne veut pas dire que le Web n’a plus d’importance et qu’il n’est plus important pour le Web que Mozilla continue d’exister de manière indépendante.

Quand des gens se lassent de Mozilla ou du Web, c’est leur droit de passer à autre chose, mais je pense que répandre le défaitisme à propos de ce que nous continuons à faire n’est pas cool.

Gravatar de mozillaZine-fr
Original post of mozillaZine-fr.Votez pour ce billet sur Planet Libre.

Renault : Petit bilan de Rawhide, épisode 4, mai 2017

mardi 30 mai 2017 à 00:00

Comme promis, à peu près tous les mois j'essaye de tenir au courant la communauté de mes aventures avec Rawhide / la prochaine version stable. D'un point de vue purement technique, je n'utilise pas Fedora Rawhide mais la future F26 à ce stade.

Fedora 26 Beta est décalé

Et oui, comme souvent, la prochaine Fedora sera en retard encore un petit peu. Normalement la Beta devrait sortir d'ici une semaine, mais un énième report à cause de bogues bloquants n'est pas à exclure.

Depuis la dernière fois il y a eu 3 journées de tests concernant :

J'ai participé aux trois et à part un bogue commun dans DNF concernant les langpacks, rien à signaler, tout s'est bien passé !

Changements notables

Niveaux changements notables, je ne note pas grand chose de nouveaux depuis. GNOME étant en voie de stabilisation c'est normal.

La grosse nouveauté, d'un point de vue plus technique, c'est peut être l'arrivée récente de LLVM 4.0 et CLang 4.0 dont bénéficie la dernière monture de mesa pour l'accélération graphique. Cela permet d'exploiter les dernières versions d'OpenGL sur l'ensemble des pilotes récents.

Cependant j'ai l'impression depuis que ma machine chauffe plus, mais c'est peut être liée à la montée du thermomètre dehors. À investiguer.

Les problèmes rencontrés ?

Pour le coup, il y en a eu plus que d'habitude.

Le bogue relevé lors des journées de tests à propos de DNF consiste au fait que si on désinstalle une traduction globale du système (dit langpacks), la traduction du paquet glibc persistera sur le système. Rien de bien grave, mais la fonctionnalité n'est pas encore totalement au point.

Un bogue concernant des clients de Bodhi, dont le cache du captcha est invalide et la seule solution pour régénérer le cache est de supprimer le répertoire ~/.fedora. Cela concerne en particulier l'utilitaire fedora-easy-karma que j'utilise quotidiennement.

Une mise à jour dans la pile Wayland rendait les raccourcis claviers de GNOME non fonctionnels. Toutes les applications de GNOME et uniquement celles-ci étaient concernées. Cela était particulièrement gênant mais semble maintenant résolu.

Un problème assez furtif, gnome-control-center ne se lançait plus, ne trouvant pas la bibliothèque libwbclient.so.0 pourtant installée. Le moyen de contournement est de réinstaller le paquet libwbclient.

Après j'ai eu quelques crashes de GNOME qui semblent avoir disparus avant de pouvoir le notifier.

Bref, le travail avance, quelques soucis mais dans l'ensemble cela va bien. Espérons que les retours des testeurs aidera à avoir une nouvelle Fedora très stable.

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