Yunohost plugins¶
Prérequis¶
Avec l'image Jessie il n'est plus nécessaire de désinstaller bind pour installer dnsmasq, c'est déjà fait
Pour éviter de faire open resolver DNS et de se faire enroller dans un DDoS, le fichier /etc/dnsmasq.d/michu.nohost.me comporte une entrée \"resolv-file=\" qui rend inopérante cette possibilité.
On aurait pu également le faire via la commande (il fallait le faire avec l'image Wheezy) :
echo \"except-interface=tun0\" >> /etc/dnsmasq.d/dnsmasq.conf.local ; echo \"except-interface=eth0\" >> /etc/dnsmasq.d/dnsmasq.conf.local && service dnsmasq force-reload
Installation des plugins¶
Les liens qui suivent seront à copier-coller dans les masques de saisies, voire les sections idoines ci-dessous:
VPNClient (https://github.com/labriqueinternet/vpnclient_ynh )
TorClient (https://github.com/labriqueinternet/torclient_ynh )
PirateBox (https://github.com/labriqueinternet/piratebox_ynh )
Installation Hotspot¶
On s'assure que la clef usb wifi est en place (sinon l'installation échoue).
On installe iw
avec
apt-get install iw
Sans cela, l'installation échoue.
Puis hostapd
avec
apt-get install hostapd
Sans cela, l'installation termine, mais le hotspot ne se lance pas,
on voit un encart rougenot running
en haut. (Ces deux points ont l'air d'être un bug dans l'app de yunohost.) je ne vois rien de rouge
- Dans l'interface d'admin http, on ouvre la rubrique
Applications
, puis on clique sur le boutonInstaller
- On colle la 1ere adresse (celle de l'application
hotspot
) tout en bas de la page dans le champ URL puis on clique sur le boutonInstaller
, enfin on valide le popup. - Eventuellement on peut changer le nom du SSID si
myNeutralNetwork
ne convient pas (Exégètes_Amateurs ou Paul_Bismuth ça a aussi de la gueule quand meme:D ) - On renseigne la clef wifi de son choix, puis on valide en cliquant sur Installer.
- Normalement à la fin on a un message de succès. Si ça n'est pas le cas, lire https://listes.labriqueinter.net/pipermail/discussions/2015-August/000323.html
Configuration Hotspot¶
La configuration du Hotspot se fait via le lien présent sur la page de l'Application Hotspot qui ressemble à https://michu.nohost.me/wifiadmin/
- S'identifier avec le compte utilisateur créé précédement, on pourra alors changer le canal wifi utilisé (6 par défaut, qui est souvent encombré)
- Dans l'onglet IPv4 on changera les adresses DNS distribuées sur le hotspot pour utiliser celles du vpn d'aquilenet (185.233.100.100 et 185.233.100.101) plutot que celles des copains de LDN et FDN
- On fera tout pareil dans l'onglet IPv6 avec les adresses suivantes 2a0c:e300::100 et 2a0c:e300::101
- On laisse (pour l'instant) le champ \"Delegated prefix\" non renseigné/spécifié
Installation VPNClient¶
On va installer et configurer l'application VPN pour le fournisseur de VPN (compatible OpenVPN) auquel il faut préalablement avoir souscrit (dans notre cas Aquilenet).
- On renouvelle l'opération avec le lien suivant (VPNClient) dans la page Application.
- On valide le popup
- On change \"access.ldn-fai.net\" par \"vpn.aquilenet.fr\" pour utiliser le vpn d'Aquilenet (ou autre chose si on veux utiliser autre chose bien sur) puis on clique sur Installer
Remarque.
Par défaut, La Brique utilise les serveurs DNS dont elle reçoit les adresses via DHCP. Dans la majorité des cas, c'est la FAI-Box sur le réseau local qui fait relais DNS.
L'adresse DNS utilisée par La Brique est donc dans ce cas sur le réseau local et reste donc parfaitement joignable une fois le vpn actif.
Mais au moins un FAI \"fournisseur de haut débit sur fibre optique en cuivre coaxiale\" fournit un modem qui ne fait pas relais DNS et donc les adresses DNS distribuées via DHCP ne sont pas sur le réseau local
De plus ces serveurs DNS ne sont pas ouverts, ils ne répondent qu'aux adresses IP du FAI en question.
Du coup quand le vpn monte, tout le trafic étant redirigé via le vpn, La Brique n'arrive plus a faire la moindre résolution DNS et c'est un poil problématique.
Elle n'arrive pas à se maintenir à l'heure via NTP, elle ne parvient pas non plus à mettre à jour son domaine .nohost.me par exemple, ni la liste des paquets, ou des mises à jour, etc, etc
Les pages de gestion des service n'étant accessibles que via le non de domaine, c'est bien pénible, on est \"forcé\" de tricher avec /etc/hosts comme expliqué au début ICI
Par contre ça n'affecte pas les clients wifi du vpn, qui eux se voient attribuer les adresses DNS qu'on a spécifiées dans la config du hotspot.
On peut contourner ce problème de plusieurs manières : Yunohost VPN contournement DNS
Installation TorClient¶
- Créer d'abord un nouveau hot spot dans la page https://michu.nohost.me/wifiadmin/ (avec les paramètres de votre choix)
- Ne pas spécifier ici les DNS d'aquilenet.
- Installer ensuite l'application en collant le lien dans la page Application
> Note, si le service tor n'est pas démarré, le hot spot associé écoule son trafic via le vpn.
Installation PirateBox¶
Meme démarche, créer un nouveau hot spot puis installer l'application.
Emails, Calendriers, Contacts¶
= A vérifier suite passage en Jessie =
Yunohost permet de s'auto-héberger et d'avoir ses propres adresses courriels, mais aussi de gérer un carnet de contacts qui sera disponible à distance sur son mobile et également un calendrier (avec gestion des invitations, etc).
BAIKAL¶
Tout d'abord, il faut COMMENCER par installer l'application BAIKAL. Celle-ci s'occupe de gérer contacts et calendrier via un serveur carddav et caldav.
Ensuite on peut installer ROUNDCUBE, pour lire ses emails depuis l'interface web.
==> NB: il est important d'installer BAIKAL avant ROUNDCUBE pour que roundcube configure automatiquement l'accès aux contacts pour l'utilisateur.
==> Les contacts sont ensuite directement accessibles depuis roundcube
Pour accéder au calendrier via l'interface web, on peut installer AgenDav.
L'intérêt de tout cela est de pouvoir accéder à distance à ses emails, contacts et calendrier. Cela peut se faire via thunderbird/Evolution mais aussi depuis son smartphone (Iphone, Android, Blackberry 10).
Si on admet :
- que votre nom de domaine est domain.tld (plutot michu.nohost.me non ?)
- que vous avez installé baikal sur domain.tld/baikal (michu.nohost.me/baikal)
- que votre utilisateur s'appelle bob
Alors vous pouvez configurer vos logiciels pour accéder à vos emails tel que :
- nom d'utilisateur (ou login) : bob (et pas bob@domain.tld)
- adresse du serveur (ou chemin imap) : domain.tld (et pas imap.domain.tld) (michu.nohost.me)
- port de connexion imap : 993
- chemin smtp : domain.tld (et pas smtp.domain.tld) michu.nohost.me
- port de connexion smtp : 465
Pour accéder à vos contacts, veuillez utiliser le protocol CardDav.
- adresse carddav : https://domain.tld/baikal/card.php/addressbooks/bob/default michu.nohost.me
Ne pas oublier le s de https ni à addressbooks
Pour accéder à votre calendrier, veuillez utiliser le protocol CalDav.
- adresse caldav : https://domain.tld/baikal/cal.php/calendars/bob/default michu.nohost.me
Ne pas oublier le s de https ni à calendars
Une application libre pour Android : davDroid https://f-droid.org/repository/browse/?fdid=at.bitfire.davdroid
Attention, vous aurez besoin de faire deux configurations, l'une pour les contacts et ensuite tout recommencer pour le calendrier (on ne peux pas le faire en une seule fois)
L'adresse à indiquer pour chaque configuration est la suivante :
- https://domain.tld/baikal/card.php/addressbooks/ (pour les contacts) michu.nohost.me
- utilisateur : bob
- mot de passe : son mot de passe
- https://domain.tld/baikal/cal.php/calendars/ (pour le calendrier) michu.nohost.me
- utilisateur bob
- mot de passe : son mot de passe
*3.3 Sécurisation
en vrac,
ne pas permettre le login root en ssh => deja discute sur https://yunohost.org/#/installation_brique_fr
changer le port d'ecoute du ssh
muscler/modifier la config fail2ban pour ssh en fonction des choses entreprises précédement.
*3.4 Installation de certificats Let's Encrypt + cipher suite
*3.4.1) Installation de Let's Encrypt
Let's Encrypt permet de générer un certificat HTTPS gratuitement pour n'importe qui. Contrairement au certificat auto-signé fourni par YuNoHost automatiquement à l'installation, celui-ci est reconnu par tous les navigateurs web. Ceci permet de ne plus avoir une page d'alerte lors du premier accès au site.
L'installation se fait en ligne de commande et les étapes à suivre sont listées en anglais et français ici => https://forum.yunohost.org/t/how-to-install-let-s-encrypt-certificates/1075)
Une fois ces étapes suivies, tout doit fonctionner correctement. Je n'ai personnellement jamais connu de difficulté importante. Le plus compliqué étant la modification du fichier json du SSO : la syntaxe doit être bien soignée.
*3.4.2) Sécurisation "optimisée" avec les ciphers suites
La première étape nécessaire sera la génération d'une clé dh :
openssl dhparam -out /etc/ssl/private/dh4096.pem -outform PEM --2 4096
Voici la configuration conseillée pour avoir un beau A+ sur SSLLabs ou Cryptcheck, à saisir dans /etc/nginx/nginx.conf (dans la partie SSL Settings) :
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_dhparam /etc/ssl/private/dh4096.pem;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
resolver valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
Avec cette configuration, on perd cependant les utilisateurs d'IE < 9, Android < 2.2 et Java < 6.
Pour une retrocompatibilité totale, la suite crypto sera un peu moins sexy :
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:[](aNULL:)eNULL:[](EXPORT:)DES:[](MD5:)PSK:!RC4";
ssl_ecdh_curve secp384r1;
ssl_dhparam /etc/ssl/private/dh4096.pem;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
resolver valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
On peut également modifier dans /etc/nginx/conf.d/votredomaine.tld.conf la ligne
listen 443 ssl;
par
listen 443 ssl spdy;
spdy pour Speedy est la version bêta du HTTP/2, disponible sur la version de nginx installée par défaut sur la Brique.
Concernant ses avantages : « SPDY est un protocole développé par Google dont le principal avantage est le multiplexage des connections, c'est à dire de pouvoir faire plusieurs requêtes HTTP à la fois. SPDY est présent dans sa version 3.1 depuis Nginx 1.5. »
En simplifié : ça permet au serveur de répondre plus vite.
Vérifier que nginx est content
nginx -t
et si tout va bien, le relancer
service nginx restart
Attention : Il peut y avoir des conflits avec la conf SSL / TLS du ou des autres domaines par défaut. Si c'est le cas, éditez /etc/nginx/conf.d/votredomaine.tld.conf pour passer en commentaire les lignes conflictuelles (nginx les indique en erreur).
Pour plus d'infos :
Mis à jour par youpi il y a environ 7 ans · 9 révisions