# Installation d'une brique Cette procédure explique comment installer une brique internet (Olimex [Lime2](https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/open-source-hardware) ou [Lime](https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME/)) et la configurer avec le VPN de Neutrinet. ## Générer les certificats du VPN Pour utiliser notre VPN, vous devez suivre [[fr:vpn:vpn-order|ce processus d'enregistrement]]. Vous aurez besoin de générer une clé privée et d'obtenir un certificat VPN personnel. Dans le cas où, pour une certaine raison, vous réinstallez une brique et que vous souhaitez réutiliser vos identifiants VPN, vous pouvez les trouver sur une brique en fonction (ou à l'arrêt) sous la forme des fichiers : user.crt, user.key, ca-server.crt et credentials dans /etc/openvpn/keys. ## Générer un fichier .cube Pour configurer l'application VPN de Yunohost, vous aurez besoin d'un fichier cube qui contient vos identifiants et certificats VPN. Mettez tous vos fichiers VPN dans le même dossier. Vous aurez aussi besoin d'un fichier contenant vos identifiants choisis pendant le processus d'enregistrement du VPN. ```bash cd nano auth ``` Dans le fichier, écrivez vos identifiants, par exemple : ```bash une.adresse@mail.xyz MotDePasse ou PhraseDePasse ``` Dans le même dossier, téléchargez le script de Neutrinet permettant de générer un .cube : ```bash wget https://git.domainepublic.net/Neutrinet/scripts/-/raw/master/cubefile/faire_un_point_cube.sh ``` Donnez les permissions d'exécution sur ce script : ```bash chmod +x ./faire_un_point_cube.sh ``` Exécutez le script : ```bash ./faire_un_point_cube.sh ``` ## Matériel nécessaire C'est le strict minimum dont vous aurez besoin : * un ordinateur //(préférablement un système Linux/Unix/BSD)// pour effectuer l'installation * une board A20-OLinuXino-LIME * une carte microSD où le système d'exploitation de la brique (Yunohost/Debian) sera stocké * une antenne WiFi MOD-WIFI-R5370-ANT (optionnelle) * un adaptateur 5V DC * un compte VPN chez Neutrinet Vous pouvez trouver des détails sur les composants et les acheter [ici](https://cube.neutrinet.be) ## Autres Vous aurez également besoin : * Une connexion internet pour télécharger l'image de Yunohost. * Un câble ethernet pour connecter votre brique à votre routeur (par exemple la box internet de votre ISP) ## Installer Yunohost sur la carte SD ### Télécharger l'image de Yunohost Téléchargez la dernière version de Yunohost pour les briques internet (Olimex Lime1 et Lime2) depuis le Nextcloud de Neutrinet: [[https://files.neutrinet.be/s/x52qjKGkPiJYatC]]. :warning: À l'heure actuelle (mai 2023), les images pour Olimex Lime1 ne sont plus mis à jour, car Armbian ne les supporte plus officiellement. Il est possible de partir d'une version plus ancienne de Yunohost (ex: 4.2.8\) et faire une migration vers Yunohost 11, mais cela prendra beaucoup de temps. :bulb: À l'heure actuelle (mai 2023), [les images sur le site de Yunohost](https://yunohost.org/fr/install/hardware:internetcube) ne sont malheureusement plus à jour. Si vous malgré tout vous décidez d'utiliser une image de Yunohost, voici comment télécharger la clé GPG et vérifier la signature de l'image: 1. Importez la clé GPG de Yunohost: ```bash gpg --keyserver keyserver.ubuntu.com --recv-keys 1904C5B42E4856DCD4E9CF96360AAF3259A3E6FF ``` 2. Téléchargez la signature de l'image: ```bash wget https://build.yunohost.org/internetcube-buster-4.1.7.4_v2021.04.01-lime2-stable.img.gz.sig ``` 3. Vérifiez la signature de l'image: ```bash gpg --verify internetcube-buster-4.1.7.4_v2021.04.01-lime2-stable.img.gz.sig ``` Pour les images fournies par Neutrinet, voici comment vérifier l'intégrité de l'image: 1. Téléchargez le fichier `sha256sums.txt` [depuis notre Nextcloud](https://files.neutrinet.be/s/x52qjKGkPiJYatC) 2. Placez le fichier dans le même dossier que l'image Yunohost 3. Vérifiez l'intégrité de l'image: ```bash sha256sum --ignore-missing -c sha256sums.txt ``` Après avoir téléchargé et vérifié l'intégrité de votre image Yunohost, décompressez-la: ```bash gunzip internetcube_11.1.19_lime2-20230519.img.gz ``` ### Flashez la carte SD Voyez la documentation de Yunohost pour d'autres méthodes graphiques : [[https://yunohost.org/fr/install/hardware:internetcube#flasher-l-image-image-typee]] D'abord, insérez votre carte SD, puis trouvez le nom de votre carte SD : ```bash lsblk ``` Habituellement, c'est `mmcblk0` Installez l'image sur votre carte SD (toutes les données contenues par la carte SD seront perdues) : ```bash sudo dd if=internetcube-buster-4.1.7.4_v2021.04.01-lime2-stable.img of=/dev/mmcblk0 status=progress ``` :warning: Veillez à ce que la carte SD ne soit *pas* montée pendant la copie! Retirez la carte SD de votre ordinateur lorsque c'est fait. ## Démarrez votre brique internet ### Préparez-la * Assurez-vous que la brique ne soit *pas* connectée à une source d'alimentation (par ex. le câble d'alimention ne doit pas être branché) * Insérez l'antenne WiFi dans le port USB de la brique. * Insérez la carte SD dans votre brique. * Connectez votre brique à un câble ethernet connecté à votre routeur (donc à la box internet de votre ISP). * Assurez vous que votre ordinateur soit lui aussi connecté (par WiFi ou par câble ethernet) au routeur. (Vous vous connecterez d'abord à la brique par le réseau local.) ### Démarrez-là - Connectez le câble d'alimentation à la brique pour la démarrer. - Attendez quelques minutes que la brique démarre et se connecte au réseau. ### Trouvez la brique sur le réseau Afin de connecter votre brique au réseau, vous devez trouver son adresse IP sur le réseau local. Dans votre terminal, exécutez : ```bash sudo arp-scan -l | grep -P '\t02' ``` Le résultat doit ressembler à ceci : ``` 192.168.1.46 ``` Ces adresses IPs sont celles des briques internet connectées sur le réseau local. Si le script ne trouve pas votre brique, essayez quelques minutes plus tard. ## Démarrer l'installateur de la brique internet Connectez vous sur : https://192.168.1.46 (Remplacez `192.168.1.46` avec l'adresse IP de votre brique telle qu'elle a été découverte lors de l'étape précédente) Fournissez les détails suivants : * Le domaine principal de la brique * L'identifiant et le nom du premier utilisateur * Le mot de passe du premier utilisateur (ce sera également votre mot de passe admin) * Votre fichier cube généré dans une des étapes précédentes * Les identifiants de votre hotspot Wifi (optionnel) Vous serez en mesure de changer vos mots de passe ultérieurement si vous le souhaitez. ### Installez l'application Neutrinet Vos identifiants VPN seront valides pendant une année. Connectez-vous en SSH à votre brique : ```bash ssh @192.168.1.46 ``` (Remplacez `192.168.1.46` avec l'adresse IP de votre brique telle qu'elle a été découverte lors de l'étape précédente, et indiquez l'identifiant que vous avez choisi pour le premier utilisateur) Installez l'application Neutrinet pour Yunohost qui renouvellera automatiquement les certificats avant leur expiration: ```bash sudo yunohost app install neutrinet ``` Vous pouvez laisser les valeurs par défaut. ## Configurez le domaine principal ### Configurez les enregistrements DNS Connectez vous à l'interface d'admin de votre brique internet: https://192.168.1.46/yunohost/admin Allez dans la partie `Domaines` et sélectionnez votre domaine principal. Ensuite, sous l'onglet `DNS`, copiez les enregistrements DNS suggérés par Yunohost. Ils devraient être sous la forme: ``` ; Basic ipv4/ipv6 records @ 3600 IN A 111.222.333.444 # (Minimal) IPV4 @ 3600 IN 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 # IPV6 ; Mail @ 3600 IN MX 10 domain.tld. @ 3600 IN TXT "v=spf1 a mx -all" mail._domainkey 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p=somelongrandomsecret" _dmarc 3600 IN TXT "v=DMARC1; p=none" ; XMPP _xmpp-client._tcp 3600 IN SRV 0 5 5222 domain.tld. _xmpp-server._tcp 3600 IN SRV 0 5 5269 domain.tld. muc 3600 IN CNAME domain.tld. pubsub 3600 IN CNAME domain.tld. vjud 3600 IN CNAME domain.tld. xmpp-upload 3600 IN CNAME domain.tld. ; Extra * 3600 IN A 111.222.333.444 # Wildcard: *.domain.tld and domain.tld redirection * 3600 IN AAAA 2001:AABB:CCDD:EEFF:1122:3344:5566:7788 @ 3600 IN CAA 0 issue "letsencrypt.org" ``` Enfin, collez ces enregistrements DNS dans l'interface de configuration de votre registrar. Si vous ne voyez pas de quoi on parle, il est possible que Neutrinet gère le domaine pour vous. Il suffit de nous contacter pour qu'on effectue la modification. Attendez quelques minutes le temps que les nouveaux DNS se propagent. ### Installez le certificat Let's Encrypt Par défaut, Yunohost un certificat auto-signé. Pour éviter que les visiteurs de votre site web se retrouvent face à un message qui fait peur, il faut installer un certificat Let's Encrypt. Commencez par lancer l'outil Diagnostic de Yunohost, afin de vérifier que le domaine est correctement configuré (voir aussi l'étape précédente): https://192.168.1.46/yunohost/admin/#/diagnosis Lorsqu'aucun message n'apparaît dans la section `Enregistrements DNS` de l'outil Diagnostic, allez dans `Domaines` puis sélectionnez votre domaine principal. Dans l'onglet `Certificats`, cliquez sur le bouton `Installer un certificat Let's Encrypt`. ### Reverse DNS Les reverse DNS sont nécessaires au bon fonctionnement du serveur mail qu'est votre brique internet. Il s'agit d'associer l'IP de votre VPN au nom de domaine de votre brique internet. Cela permet d'éviter d'être considéré comme un spammeur lorsque vous enverrez des mails. Pour savoir si le reverse DNS est correctement configuré, allez dans l'outil Diagnostic de Yunohost: https://192.168.1.46/yunohost/admin/#/diagnosis Dans la catégorie E-mail, un message indique si le reverse DNS est correctement configuré. Si ce n'est pas le cas, contactez-nous pour que l'on vous configure le reverse DNS. Celui-ci ne peut malheureusement pas être configuré par les utilisateurs, car l'opération doit se faire sur le serveur VPN de Neutrinet. ## Configurez le Wifi Hotspot Si vous avez installé le Wifi hotspot, quelques étapes supplémentaires sont nécessaires pour configurer l'IPv6 et les DNS. ### Configurez l'IPv6 Connectez-vous à https://user.neutrinet.be/ et indiquez les identifiants de votre compte VPN. Vous pourrez les trouver dans votre fichier cube ou dans le fichier `/etc/openvpn/keys/credentials` sur votre brique internet. Affichez les détails de votre client VPN en cliquant sur l'entrée avec votre adresse email. Vous devriez voir un champ `IPv6 subnet lease` (la ligne avec un range IPv6 `/64`). Il se peut que vous n'ayez pas encore de sous-réseau IPv6. Dans ce cas, cliquez sur `Modify IP lease assignment`. Ensuite, cliquez sur votre adresse mail, et cliquez sur `Add IPv6 subnet lease`. Choisissez un range de 64, et cliquez sur le bouton `Assign`. Vous pouvez ensuite retourner dans les détails de votre client VPN pour connaître votre nouveau sous-réseau IPv6. Connectez vous à la page d'admin du hotspot Wifi: https://192.168.1.46/yunohost/admin/#/apps/hotspot/main Puis, sous l'onglet `Configuration`, cochez la case `Advanced settings`. Dans le champ `IPv6 delegated prefix`, collez le sous-réseau IPv6, en omettant le /64. Cochez également la case `IPv6 firewall`. Cliquez sur le bouton `Sauvegarder` pour appliquer vos changements. ### Configurez le résolveur DNS Connectez vous à la page d'admin du hotspot Wifi: https://192.168.1.46/yunohost/admin/#/apps/hotspot/main Puis, sous l'onglet `Configuration`, cochez la case `Advanced settings`. Dans le champ `DNS resolvers`, indiquez les DNS de FDN par exemple (mais [il en existe plein d'autres](https://diyisp.org/dokuwiki/doku.php?id=technical:dnsresolver)) : ``` 80.67.169.12 80.67.169.40 2001:910:800::12 2001:910:800::40 ``` Cliquez sur `Add` et sauvegardez les changements. ## Problèmes connus ### Pendant l'installation #### Les dépôts de Debian ont changé de stable à old-stable Voir aussi [[https://github.com/YunoHost/issues/issues/1852]] Au début de l'installation de la brique, l'installation va être interrompue par l'erreur suivante : ```bash E: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable' E: Repository 'http://security.debian.org buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable' E: Repository 'http://deb.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates' Command 'DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none LC_ALL=C apt-get -o=Acquire::Retries=3 -o=Dpkg::Use-Pty=0 --quiet --assume-yes update &>> ./data/upgrade.logs' returned non-zero exit status 100. ``` Connectez-vous à la brique en SSH avec le compte root : ```bash ssh root@192.168.1.46 ``` Entrez ''yunohost'' comme mot de passe. Ensuite, exécutez : ```bash apt update ``` Et répondez oui aux questions. #### L'installation du VPN échoue Voici aussi : [[https://github.com/labriqueinternet/install/issues/4]] Dans le cas où le mot de passe du compte VPN contient des caractères spéciaux, l'installation échouera avec les erreurs suivantes : ```bash Running: yunohost app addaccess vpnclient -u '******' 'yunohost app addaccess' is deprecated and will be removed in the future 'yunohost app addaccess' is deprecated and will be removed in the future allowed_users: vpnclient: ****** Running: yunohost app setting vpnclient service_enabled -v 1 Running: ynh-vpnclient-loadcubefile.sh -u '******' -p '[REDACTED]' -c /tmp/config.cube [VPN] Error: Configuration updated but service reload failed Command 'ynh-vpnclient-loadcubefile.sh -u '******' -p '[REDACTED]' -c /tmp/config.cube &>> ./data/configure_vpnclient.logs' returned non-zero exit status 1. ``` Connectez vous à votre brique internet avec le compte admin : ```bash ssh admin@192.168.1.46 ``` Entrez votre mot de passe d'administration. Ensuite, lancez la commande qui a échoué : ```bash sudo ynh-vpnclient-loadcubefile.sh -u "" -p "" -c /tmp/config.cube ``` Remplacez s'il vous plait '''' et '''' par vos identifiants. :!: Faites attentions à laisser les guillemets. Dans l'installateur de la brique internet, réessayer la dernière étape en cliquant sur le boutton jaune. #### La barre de chargement freeze Si la barre de chargement freeze pendant l'installation, activez le mode débug en appuyant sur le bouton. Vous verrez ensuite les détails de l'install et ce que la procédure d'installation est en train de faire. #### iptables/nftables ne semble pas fonctionner Voir : [[https://chat.neutrinet.be/api/v4/files/3wxxx14t7fg6xjomitpyojk4fy/preview]] Ceci est du à une mise à jour du noyau : vous devez juste redémarrer la brique. Ensuite connectez-vous à l'installateur de la brique internet et réessayez la dernière étape. ### Après l'installation #### Problèmes avec /tmp dans la RAM Par défaut dans les images Armbian, les fichiers du dosser '/tmp' sont stockés dans la RAM, ce qui n'est pas une bonne idée si vous avez moins d'un 1Gb de mémoire disponible. Voir [tmpfs / armbian](https://forum.armbian.com/topic/10977-tmp-gets-eventually-full-how-to-purge-it/). :bulb: Les images fournies par Neutrinet désactivent cette fonctionnalité par défaut. Vous pouvez désactiver cela en exécutant les commandes suivantes : ```bash sudo sed s/^ENABLED=true/ENABLED=false/ /etc/default/armbian-zram-config -i sudo sed s/^ENABLED=true/ENABLED=false/ /etc/default/armbian-ramlog -i sudo sed 's/^tmpfs/# tmpfs/' /etc/fstab -i ``` Ensuite, redémarrez le cube: ```bash sudo reboot ``` #### L'installation de Roundcube échoue sur les Lime1 Roundcube nécessite plus de 500M pour s'installer. Sur les Lime1, il est nécessaire d'ajouter de la swap. Vous pouvez le faire en exécutant les commandes suivantes : ```bash sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` Vous pouvez vérifier la swap disponible : ```bash sudo swapon --show ``` Ceci doit retourner une ligne à propos de la swap. Ensuite, éditez le ichier fstab pour activer la swap au démarrage : ```bash sudo nano /etc/fstab ``` Ajoutez la ligne : ```bash /swapfile none swap sw 0 0 ``` #### Le hotspot wifi ne démarre pas Cela se produit lorsque l'antenne wifi n'a pas été correctement détectée. Connectez-vous à l'interface d'admin du hotspot wifi: https://192.168.1.46/yunohost/admin/#/apps/hotspot/main Dans l'onglet `Configuration`, cochez la case `Enable Hotspot` et sélectionnez le device correspondant à votre antenne wifi. Cliquez sur `Sauvegardez` pour appliquer vos changements. --- Si vous rencontrez d'autres problèmes, ou si vous avez éventuellement trouvé des solutions à des problèmes, n'hésitez pas à nous contacter : https://chat.neutrinet.be