Project

General

Profile

Actions

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:

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 rouge not 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 bouton Installer
  • 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 bouton Installer , 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 :

https://www.cipherli.st

https://angristan.fr/configurer-https-nginx/

Updated by youpi over 2 years ago · 9 revisions