doc/installation_brique_fr.md
2015-07-04 21:00:22 +02:00

12 KiB
Raw Blame History

Installation d'une Brique Internet

Instructions basées sur l'image labriqueinternet_04-06-2015_jessie.img et écrites début Juillet par kload chez Neutrinet.

brique

Prérequis

Une Brique Internet complète, soit :

  • Une board A20-OLinuXino-LIME
  • Une carte microSD (on utilise des Trasncend 300x pour des raisons de perf/stabilité)
  • Une antenne WiFi MOD-WIFI-R5370-ANT (seule version testée jusquà présent chez nous)
  • Un adaptateur secteur pour alimenter la brique (chinois ou européen). Lalimentation via USB semble peu stable.
  • Un câble Ethernet pour brancher la Brique à son routeur

+ un ordinateur sous UNIX


Linstallation sarticule en deux parties : les étapes réalisables sans avoir besoin de lutilisateur, et les étapes de configuration pour lesquelles la présence de lutilisateur est recommandée.

Lordre des étapes est important :-)

Étapes préliminaires

  1. Télécharger limage à partir de https://repo.labriqueinter.net, valider son checksum.

  2. Copier l'image sur la carte à l'aide de dd (la commande, pas le patron du bistro den face)

sudo dd if=labriqueinternet_XX-XX-XXXX_jessie.img of=/dev/sdX bs=1M
  1. Mettre la carte SD dans une Brique, brancher le câble Ethernet et lalimentation. Elle démarre normalement toute seule, et les LEDs du port Ethernet se mette à clignoter au bout de 10 secondes maximum.
Le premier démarrage peut mettre une grosse minute car la partition est redimensionnée et la board redémarrée automatiquement.
  1. Récupérer ladresse IP locale de la Brique, soit avec une commande comme nmap -T4 -sP 192.168.x.0/24, soit via l'interface du routeur listant les clients DHCP, soit en branchant un écran en HDMI à la Brique.
Admettons que ladresse IP locale de la Brique soit **192.168.4.2**
  1. Se connecter en SSH en root à la Brique, le mot de passe est olinux par défaut. Le changer par un mot de passe temporaire à modifier avec lutilisateur par la suite.
ssh root@192.168.4.2
  1. Mettre à jour le système (environ 10 minutes), et pré-installer les paquets qui seront nécessaires aux applications vpnclient et hotspot (comme ça c'est fait).
apt-get update && apt-get upgrade
apt-get install openvpn sipcalc hostapd iw dnsmasq firmware-linux-free firmware-linux-nonfree firmware-realtek firmware-ralink

Plus d'étapes pourront sans doute être automatisées dans cette partie à lavenir.


Étapes de configuration

  1. Assembler la Brique, la brancher sur le routeur, la démarrer, récupérer son IP locale et le nom de domaine désiré par lutilisateur.
Ici nous installons la Brique de **michu.nohost.me** qui a pour IP locale **192.168.4.2**
  1. Mettre à jour le fichier /etc/hosts de son ordinateur client pour pouvoir accéder à la Brique en local via michu.nohost.me (important pour la configuration des applications vpnclient et hotspot).
    Ajouter à la fin du fichier :
192.168.4.2 michu.nohost.me
  1. Procéder à la postinstallation en se connectant à la Brique sur https://michu.nohost.me. Luilisateur pourra lui-même saisir le mot de passe dadministration qu'il souhaite lors de cette étape.
**Note :** Il est possible de réaliser cette étape en ligne de commande via SSH en exécutant `yunohost tools postinstall`
  1. Se connecter en SSH et changer le mot de passe root (potentiellement par le même mot de passe que ladministration pour éviter la complexité).
ssh root@michu.nohost.me
passwd root
  1. Fix temporaire : La création des répertoires utilisateur ne se fait pas automatiquement dans cette image YunoHost pour la Brique. Il convient donc d'ajouter un script qui s'exécutera à la création des utilisateurs YunoHost et qui sen assurera.
    En SSH sur la Brique :
mkdir -p /usr/share/yunohost/hooks/post_user_create
cat > /usr/share/yunohost/hooks/post_user_create/06-create_userdir <<EOF
#!/bin/bash
user=\$1
sudo mkdir -p /var/mail/\$user
sudo chown -hR vmail:mail /var/mail/\$user
mkhomedir_helper \$user
EOF
  1. Créer le premier utilisateur : Se rendre dans linterface dadministration YunoHost (ici https://michu.nohost.me/yunohost/admin), entrer le mot de passe dadministration puis se rendre dans Utilisateurs > Nouvel utilisateur.
Il faudra entrer un **nom dutilisateur** sans majuscule/espace/tiret, un **nom/prénom/pseudo** en deux parties (obligatoires, merci LDAP) qui correspondra au nom qui apparaîtra sur les futurs emails de lutilisateur, ainsi qu'un **quota demail** éventuel et un **mot de passe** (*à ne pas confondre avec le mot de passe dadministration dans ce cas*).
  1. Installer lapplication VPN Client : Se rendre dans Applications > Installer, et entrer https://github.com/labriqueinternet/vpnclient_ynh dans le champs URL du formulaire Installer une application personnalisée tout en bas de la page.

  2. (optionnel) Restreindre l`accès à lapplication VPN Client : Se rendre dans Applications > VPN Client > Accès et sélectionner lutilisateur précédemment créé, de sorte que les futurs potentiels nouveaux utilisateurs ne pourront pas modifier les paramètres daccès VPN.

  3. Configurer lapplication VPN Client : Se connecter à linterface utilisateur (ici https://michu.nohost.me/yunohost/sso/) et entrer les identifiants de lutilisateur précédemment créé. Vous devriez voir apparaître VPN Client dans votre liste dapplication :

De manière générale, il convient bien sûr déditer les paramètres en fonction de son fournisseur daccès VPN. Chez Neutrinet, nous éditons, dans **Advanced**, le template de configuration pour y ajouter 3 directives spécifiques:
resolv-retry infinite
ns-cert-type server
topology subnet
**Attention** : le redémarrage du service, déclenché par le bouton **Save and reload**, peut mettre quelques minutes.
  1. Installer lapplication Hotspot : S'assurer que lantenne WiFi est bien branchée, et répéter les étapes 7, 8 et 9 en installant à laide de l'URL https://github.com/labriqueinternet/hotspot_ynh
  1. TESTEY : La Brique devrait être accessible via lIP publique que sa connexion VPN lui procure. Si lutilisateur a opté pour un nom de domaine en .nohost.me, patienter quelques minutes que son IP se propage sur le serveur DNS de YunoHost. Si lutilisateur a opté pour son propre nom de domaine, cest le moment de configurer ses enregistrements DNS correctement chez son registrar.
    Si tout se passe bien côté hotspot, un réseau WiFi du nom choisi par lutilisateur à létape 10 devrait être visible, et devrait vous router tout bien vers lInternet.
    Il est possible de regarder lIP avec laquelle on sort sur Internet ici (ou via curl ip.yunohost.org depuis le serveur)

Les problèmes proviennent majoritairement de la configuration VPN. Il convient de vérifier les paramètres côté client et serveur VPN en cas de pépin.


Étapes supplémentaires (pour une Brique idéale)

Ces étapes ne sont pas obligatoires mais peuvent améliorer considérablement l'expérience de la Brique (fap fap fap).

  • Supprimer le CRON DynDNS : Si lutilisateur a opté pour un nom de domaine en .nohost.me, YunoHost a configuré automatiquement un client DynDNS sur la Brique qui va avertir le serveur DNS dun potentiel changement dIP publique. Or, lIP fourni par la connexion VPN est fixe. Il convient donc de supprimer ce client, qui pourrait malencontreusement mettre à jour lIP dans les DNS si la connexion VPN venait à tomber :
rm /etc/cron.d/yunohost-dyndns
  • Sassurer du nom de linterface WiFi : Lors du changement dantenne WiFi (même si le modèle reste le même), il peut arriver que le nom de linterface WiFi change, typiquement de wlan0 à wlan1. Pour continuer à utiliser lapplication hotspot, il faut se rendre sur linterface web de configuration de lapplication (étape 10) et mettre à jour le Device.

  • Ajouter un CRON de restart du service VPN : Selon vos paramètres VPN client et serveur, il peut arriver que la connexion soit instable, et que le client VPN tombe de temps en temps. Pour sassurer quil redémarrera automatiquement, une bonne méthode quick'n'dirty et de tester que le service tourne et de le redémarrer dans le cas contraire :

echo "* * * * * /usr/bin/pgrep openvpn || systemctl restart ynh-vpnclient" > /etc/cron.d/restart-vpn
  • Ajouter un CRON de restart du service Amavisd : Il peut arriver, notamment lorsque la Brique sature en RAM, que le service Amavisd sarrête. Même workaround que pour le client VPN :
echo "0,30 * * * * /usr/bin/pgrep -u amavis amavi || systemctl restart amavis" > /etc/cron.d/restart-amavis
  • Mettre à jour la configuration SSH : Par défaut, la connexion en tant que root est possible sur la Brique. Pour ne garder que la connexion en tant quadmin (qui est sudoer), il convient déditer le /etc/ssh/sshd_confg et de remplacer passer PermitRootLogin à without-password.

  • Configurer le reverse DNS : Pour sassurer du bon fonctionnement du serveur email, il est recommandé de configurer un reverse DNS pour son IP. En tant que FAI associatif, cest un service faisable, autant en profiter !

  • Configurer le DKIM : Avec un SPF et un PTR bien configuré dans les DNS, les emails envoyés par la Brique ne devrait pas être considérés comme spam. Ceci dit, GMail et dautres dégraderont considérablement le spamscore si le DKIM nest pas configuré également.
    Cette opération est longue mais à considérer pour avoir un serveur email irréprochable en production. Plus de renseignement sur la page de documentation appropriée.

  • Installer Roundcube via linterface dadministration YunoHost et tester lenvoi/réception demail.

  • Installer dautres applications et les découvrir avec lutilisateur pour l'accompagner (c'est toujours sympa \o/).


Notes

  • Attention à la RAM : Sur le modèle A20-OLinuXino-LIME, les 512 Mo partent vite. Les applications PHP ne sont pas très gourmandes, mais Searx et Etherpad Lite sont par exemple à installer avec des pincettes.

  • Glances ne fonctionne pas sur limage labriqueinternet_04-06-2015_jessie.img, ce qui rend longlet État du serveur inaccessible dans linterface dadminstration de YunoHost. Une mise à jour future du noyau sera à prévoir pour corriger le problème.

  • Attention à bien veiller à ce que les répertoires utilisateurs soient bien créés (étape 5.) dans /var/mail et /home/, sans quoi plusieurs bugs seront observables dans linterface dadministration (erreurs 500 en pagaille).