site
header
Rendez-vous sur Arrakis
Le site perso d'un hacker libriste curieux crêpophile et étourdi

Comment je suis devenu un CHATONS ?

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.


 <?php
 # *** LICENSE ***
 # You can redistribute it under the terms of the MIT Licence.
 # *** LICENSE ***
 # File to subscribe to an account
 
 /*
 
 !!! Le dossier /data doit être interdit dans la config du serveur !!!
 
 Si aucun argument : 
 - Afficher un formulaire de contact qui propose le nom d'utilisateur, donne une adresse mail de contact en cas de problème
     - adresse mail souhaitée
     - mot de passe souhaité pour récupérer les identifiants
     - captcha
 
 - Le formulaire est envoyé au sysadmin avec une url aléatoire
 - Le script renvoie vers une page indiquant l'URL à suivre pour obtenir les informations sur le nouveau compte.
 
 Si argument : 
 - Vérifier si le fichier en argument existe dans /data
 - Si oui, on affiche son contenu qui contient les identifiants avec un beau template, puis SUPPRIMER le fichier contenant les identifiants
 - Si non, indiquer que la création du compte n'est pas encore prête ou périmée.
 */
 
 session_start();
 
 $GLOBALS['mail_domain'] = '3hg.fr';
 $GLOBALS['mail_admin'] = 'notreal@3hg.fr'; 
 $GLOBALS['subscribe_dir'] = '/chatons/inscription/';
 $GLOBALS['subscribe_page'] = $GLOBALS['subscribe_dir'] . 'index.php';
 $GLOBALS['nbname'] = array(
 // Chiffres 0 à 16 pour captcha
 '0' => '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',
 );
 ?>
 
 <html>
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta name="author" content="3hg team">
     <meta name="description" content="3hg.fr propose des services d'hébergement sur le modèle des CHATONS https://chatons.org/">
     <title>3hg.fr | Vos mails pour des humains par des humain.</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <link rel="icon" href="/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'>
 </head>
 <body>
     <ul id="menu">
         <li><a href="/">3hg.fr</a></li>
         <li><a href="/chatons/index.html">CHATON-3HG</a></li>
     </ul>
 
     <div id="main">
         <h1 id="header">
             <a href="#">
                 <img src="favicon.png" alt=".:: Inscription ::." id="logo"/>
             </a>
         </h1>
 
 
 <?php
 
 function random_str($length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
 # https://stackoverflow.com/questions/4356289/php-random-string-generator/31107425#31107425
 {
     $keyspace = str_shuffle($keyspace );
     $str = '';
     $max = mb_strlen($keyspace, '8bit') - 1;
     for ($i = 0; $i < $length; ++$i) {
         $str .= $keyspace[random_int(0, $max)];
     }
     return $str;
 }
 
 function captcha() 
 /* Invent captcha 
     return calculus string
     store expected result in _SESSION */
 {
     $v1 = rand(0,16);
     $v2 = rand(0,100);
     $_SESSION['captcha'] = $v1 + $v2;
 
     $str = $GLOBALS['nbname'][strval($v1)] . " + " . $v2 . " = ";
 
     return $str;
 }
 
 function show_form()
 {
     echo '<h2 id="inscription">Créer une adresse mail @3hg.fr</h2>';
     echo '<div id="contact_form">';
     echo '<form id="contact" class="formstyle" method="post" action="'.$GLOBALS['subscribe_page'].'">';
     echo '<ul>';
     echo '<li>';
     echo '<label for="user">Email </label>';
     echo '<input type="text" required id="user" name="user" pattern="[a-zA-Z0-9]+" placeholder="batman" maxlength="42"/> @'.$GLOBALS['mail_domain'];
     echo '<span>Adresse mail souhaitée</span>';
     echo '</li>';
 
     echo '<li>';
     echo '<label for="captcha">Capte-chat</label>';
     echo captcha() ;
     echo '<input type="number" required id="captcha" name="captcha" min="0" step="1" />';
     echo '<span>Êtes-vous humain ?</span>';
     echo '</li>';
     echo '<input type="submit" name="subscribe" value="Envoyer ✓" />';
     echo '</ul>';
     echo '</form>';
     echo '</div>';
 }
 
 
 
 
 /* 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: <noreply@3hg.fr>' . "\r\n" .
                     'Reply-To: <noreplay@3hg.fr' . "\r\n" .
                     'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
                     'Content-Disposition: inline'. "\r\n" .
                     'Content-Transfer-Encoding: 7bit'." \r\n" .
                     'X-Mailer:PHP/'.phpversion();
 
             $message = "Une nouvelle demande d'inscription a été faite.\r\n";
             $message .= "- Nom d'utilisateur demandé : ".$user . "\r\n";
             $message .= "- Identifiants à enregistrer dans /chatons/data/".$random_file.".txt\r\n";
             $message .= "\r\n";
             $message .= "Commandes à lancer :\r\n";
             $message .= "$ doas ajoutemailer 3hg.fr ".$user."\r\n";
             $message .= "$ doas infomailer ".$random_file.".txt\r\n";
 
         
             // Envoi du mail
             if (mail($admin_email, 'Demande de nouvelle inscription', $message, $headers)) {
                 echo "<p>Votre demande est bien envoyée, des humains vont s'en occuper.</p>";
                 echo "<p>Vous pourrez récupérer vos identifiants via: ";
                 echo '<a href="'.$random_page.'">ce lien</a>.';
             } else {
                 echo "<p>Une erreur est survenue lors de l'envoi du message</p>";
             };
         }
     }
 }
 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 "<p>Bienvenue sur 3hg.fr ☺.</p>";
             echo "<p>Vos identifiants sont : </p>";
             echo "<pre><code class='codevoid'>";
 
             echo $content;
 
             echo "</code></pre>";
 
             echo "<p>Ces informations sont déjà détruites, prenez-en note!</p>";
         }
         else{
             echo "<p>Il semble que votre compte ne soit pas encore prêt, ou bien le lien suivi est erroné ou périmé.</p>";
             echo "<p>Dans le premier cas, réessayez plus tard, des humains traitent votre demande.</p>";
         }
 
         
     }
     else {
         show_form();
     }
 }
 ?>
 
 <hr>
 
 <p>Pour soutenir ce projet, n'hésitez pas à <a href="/chatons/index.html#donate" title="donate">faire un petit don</a> 😉</p>
 
 
 </div>
 <div id="footer">
     <em>3hg.fr &copy; 2016-2017 3hg team - <a href="./LICENCE" alt="Licence">LICENCE</a></em>
     <p class="center"><a href="http://3hg.fr" title="collectif 3hg" ><img src="/bouton3hg.gif" alt="3hg" /></a></p>
 </div>
 
 </body>
 </html>
 
 

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 ;)

le 31/05/2017 à 11:39:08, karchnu a dit :

J'ajouterai volontiers que pour l'hébergement d'un CHATON, on peut aussi penser à une machine virtuelle chez un opérateur de confiance, comme Alsace Réseau Neutre: https://arn-fai.net/

Du très bon matériel, de très bons techniciens, tout le monde peut venir discuter sur leur canal IRC. Tout est redondé, pas de soucis de panne.
Les prix sont raisonnables pour ce qui est proposé et le tout étant associatif.

Faut pas hésiter à faire héberger son CHATON sur cette infra. Ça tourne bien.

le 31/05/2017 à 13:19:08, John Doe a dit :

Il n'y a pas un problème de Path Traversal sur tes patates ?

le 31/05/2017 à 13:59:03, bob1hex a dit :

Alsace Réseau Neutre

Très bonne asso, mais cela fait longtemps que je n'heberge plus en France...La DGSI est directement branchée chez les opérateurs...faut changer de pays...Suisse, Russie...

La France, c'est la loose de l'hebergement...ça tient encore un peu la route car l'electricité est moins onéreuse, mais c'est tout.

le 31/05/2017 à 14:23:20, thuban a dit :

@John Doe : Vu la configuration de mon serveur (chroot, tout ça tout ça), normalement non.
Cela dit, ça peut poser problème si le code est copié/collé sur un autre serveur. Je le modifie en conséquence, merci.

le 31/05/2017 à 16:40:06, Gaël a dit :

Très intéressant, mais moi je bute toujours sur le matériel. je pensai commencer avec un Raspberry PI avec un Pi drive de 314Go (j'en ai 2) sinon il y a du 1To. Ma question est quel matériel de base ?

le 31/05/2017 à 16:48:20, thuban a dit :

@Gaël : Je vais te répondre par une question : quel matériel as-tu déjà ? Un vieux pc qui traîne, un portable à l'écran pété... tout ça fera bien l'affaire, un serveur mail ne nécessite pas une grande puissance.
Le raspberry pi par contre, je déconseille, la carte SD le rend trop sensible aux variations de tension et il n'est pas rare que ça s'abîme vite en étant tout le temps allumé.
J'ai pour ma part ça (un ancien modèle) : http://www.ldlc.com/fiche/PB00200460.html
Ce que tu dois regarder, c'est surtout :
- L'architecture : amd64 ou arm
- L'espace disque ou la possibilité d'ajouter un disque externe
- La consommation électrique. Il existe des alimentations à basse consommation :)

Après, tu as des choses comme ça : http://www.fit-pc.com/web/products/mintbox/mintbox-specifications/

En cas de doute, une question sur un forum ou sur https://obsd4a.net/qa/ devrait permettre d'en discuter ;)

le 31/05/2017 à 18:20:17, minami-o a dit :

Hello,
Félicitations pour cette initiative courageuse et ces outils intéressants !
Auto-hébergé depuis quelques années déjà, passé sur un vps après un plantage de disque malheureux sur mon serveur local, je reste quand même un peu curieux, n'ayant jamais osé proposer mes services au-delà de mes très proches, et encore, mettant bien l'accent sur l'aspect expérimental...
Même maintenant, alors que le serveur (mail en particulier) est ultra-stable et plutôt au niveau techniquement (dkim, spf, dmarc, patati patata), je ne pense pas sauter le pas.
Concernant la fiabilité : une redondance des disques est-elle en place ? Des sauvegardes régulières ? Des disques de secours ?
Concernant la disponibilité : qui gère en cas d'indisponibilité de l'admin (vacances, déplacement pro...) ? Une redondance du service existe-t-elle ?
Il serait utile, je pense, d'éclaircir tous ces points sur le site, pour que les utilisateurs ne soient pas pris au dépourvu...
Si je n'ai pas su trouver, désolé 😄
J'ai remarqué qu'il etait bien précisé que l'admin avait tout accès sur le contenu de l'hébergement, c'est aussi, à mon sens, un point à bien mettre en avant ; en particulier, d'ailleurs, parce que je suis un peu gêné par l'emploi du terme messagerie "sécurisée" : sécuri-sable, ok, mais par défaut, à la "livraison", rainloop n'est en rien sécurisée, et tous les messages sont visibles tant de l'admin que de tout le monde (en sortie du serveur)...
Point Bortzmeyer 😁 : le formulaire d'inscription n'est pas très conforme au [standard](https://en.wikipedia.org/wiki/Email_address#Local-part) en matière d'adresse e-mail... ok c'est un vrai casse-tête, ce sujet 😋
Bref, j'arrête un peu de râler 😅 je salue encore une fois l'initiative et le courage (dans l'informatique, on sait bien que les utilisateurs sont des chieurs doublés de boulets 😁😁😁), ces remarques n'ont pas pour but de casser l'ambiance, ce sont juste les raisons qui m'empêchent de sauter le pas, et je suis curieux de savoir comment tu les as appréhendées...
À+ et bon vent au nouveau 🐈👍

le 31/05/2017 à 18:30:51, thuban a dit :

@minami-o : Bonjour,
Pour répondre à tes questions :
- Fiabilité : Il y a bel et bien des sauvegardes régulières sur un disque externe. Cependant, cela reste très simple dans la mesure où nous faisons tout ça gratuitement et n'avons pas investi dans davantage de matériel. Peut-être que nous lancerons un jour des appels aux dons pour financer cet aspect que nous ne pouvons assurer pleinement pour l'instant.
- Nous sommes 3 à pouvoir gérer les comptes. De plus, Stéphane (http://www.22decembre.eu/) apporte gentiment son soutient en se faisant backup pour les mails et esclave pour les zones DNS : merci à lui ! :)
- Oui, on précise que l'admin le peut. C'est possible sur n'importe quel serveur, mais ce n'est jamais dit, alors ça me semblait important de le rappeler.
- La messagerie est bien sécurisée dans le sens où sont mis en place : chiffrement TLS pour IMAP et l'accès au webmail. En terme de sécurité je ne vois pas comment faire beaucoup mieux. À ne pas confondre avec "confidentialité", qui ne peut être assurée efficacement qu'avec un chiffrement GPG à la charge de chaque utilisateur, à mon avis.
- La validation d'adresses mail est compliqué. On se base sur les formulaires HTML5 qui valident ça très bien, et en cas de soucis on peut toujours informer l'utilisateur qu'il devrait utiliser un autre identifiant en disant pourquoi.

Voilà voilà, en espérant avoir répondu à tes questions.
On fait ce qu'on peut, certainement des erreurs, mais petit à petit on apprend et on avance :)

le 31/05/2017 à 19:09:01, kobol a dit :

un chaton

[ ]<-------

le 31/05/2017 à 19:17:12, thuban a dit :

@kobol : nope, car le "S" veut dire "Solidaires" :)

le 01/06/2017 à 13:04:27, coyotus a dit :

Q: Comment je suis devenu un CHATONS ?
R: en miaulant

ok je sort => []

le 01/06/2017 à 13:50:50, PengouinPdt a dit :

@thuban: tu veux bien m'envoyer ton script PHP ; j'ai des corrections à te faire/proposer ;)

le 01/06/2017 à 15:19:17, bazooka07 a dit :

@Gaël :
Un Banana Pi serait plus pertinent: port SATA + Gigabit:
https://www.reichelt.com/de/en/Single-board-computer/BANANA-PI/3/index.html?ACTION=3&LA=2&ARTICLE=144326&GROUPID=6666&artnr=BANANA+PI&SEARCH=%252A
https://e.banana-pi.fr/cartes/11-banana-pi-m1.html
Penser à prendre le câble Sata et le boitier qui vont bien.

De plus cette carte est supportée par Open-BSD:
https://www.openbsd.org/armv7.html

Sinon Debian et Ubuntu LTS sont aussi possible

le 01/06/2017 à 19:32:43, thuban a dit :

@coyotus : ouaf ouaf :)

@PengouinPdt : Envoyé, merci des conseils, je suis un noob en PHP.

le 01/06/2017 à 19:50:47, minami-o a dit :

@thuban :
Merci pour cette réponse complète !
Je pense que la clef, de mon point de vue, est effectivement le nombre d'admin : les points techniques sont forcément perfectibles mais on peut se mettre assez vite à un niveau acceptable, en revanche pouvoir assurer un support quasiment à tout instant est un point essentiel quand on fournit un service, en tous cas selon mes standards...
Encore une fois, bravo et bon courage !

le 01/06/2017 à 19:56:46, thuban a dit :

@minami-o : Nous en avons profité pour mettre à jour les mentions légales et ajouter quelques détails sur le site en passant ;)

le 02/06/2017 à 15:09:37, gilgam a dit :

@bazooka07 :

justement je recherche une carte arm pour un openbsd. Il y a une nouvelle version de banana pi (version2) mais je ne sais pas si openbsd tourne dessus .

le 07/06/2017 à 11:49:54, trefix a dit :

@minami-o : les 3hg ne fournissent pas un service, ils militent activement !

Paraphrase du grand Coyote :

Q: comment j'essaie de devenir un chaton ?
R: en bouffant...

OK je sors => []

le 07/06/2017 à 12:59:41, karchnu a dit :

@bob1hex : Les services de renseignement regardent les réseaux, oui, donc quoi que tu fasses tes paquets seront (tôt ou tard) vus par eux. Peu importe où tu héberges tes serveurs, puisque ce sont les liens de transit qui sont espionnés. Dans tous les cas il te faudra utiliser la crypto à bon escient.

En revanche la différence entre un serveur en Russie et l'hébergement chez un petit opérateur c'est qu'au moins tu participes à l'émergence de nouveaux acteurs, plus petits, plus étiques et proches de chez toi (en tout cas, bien plus proche que la Russie... qui elle n'espionne pas ses réseaux hein, non non, pas du tout).