Outils pour utilisateurs

Outils du site


raspberrypi:yunohost

Installer Yunohost v2 final sur Raspberry Pi (en cours de rédaction)

“YunoHost est un outil qui vous permet d’installer et d’utiliser facilement votre propre serveur.” […] “YunoHost vous permet par défaut de gérer vos adresses mail et de messagerie instantanée via des interfaces simples d’utilisation et de manière sécurisée. Vous pourrez également étendre les fonctionnalités via des apps installables en un click.”

Plus de détail sur le site de l'éditeur https://doc.yunohost.org/#/index_fr ou de son (ancien wiki) http://wiki.yunohost.org/Main_Page/fr

Prérequis

<note importante> Pour le moment, il n'y a pas d'outils de sauvegarde de disponible. Il est donc (très) fortement déconseillé de l'utiliser en production. Nous n'avons pas testé l'installation avec cette nouvelle image : yunohost4rpi2.img. </note>

<note> Avec l'éditeur nano, pour enregistrer : Ctrl+O et pour quitter Ctrl+X. </note>

Copier l'image Yunohost sur une carte SD

Extraire l'image du fichier zip précédemment téléchargé depuis cette adresse : http://build.yunohost.org/yunohost4rpi2.img.7z à la racine de votre /home. Mettre la carte SD dans le lecteur de carte et vérifier quelle lettre est attribué à votre carte (exemple : sdb ou sdc ou …).

Pour copier l'image sur votre carte SD, entrer la commande suivante dans un terminal. Commande que vous devez adapter suivant la lettre de votre carte SD et l'endroit où se trouve l'image yunohost4rpi2.img extraite de l'archive zip. Remplacer le ? de la commande par la lettre attribuée à votre carte SD.

https://yunohost.org/#/copy_image_fr

<note importante> Vérifier bien la lettre attribuée à votre carte SD. Une mauvaise manipulation pourrait effacer et/ou endommager toutes ou parties des données sur d'autres supports reliés à l'ordinateur (disque(s) dur(s) interne(s) et/ou disque(s) dur(s) externe(s) et/ou clé(s) usb et/ou …). </note>

sudo dd bs=4M if=~/yunohost4rpi2.img of=/dev/sd?

Insérer la carte dans la Raspberry Pi et branchez la. Une fois démarré, il faudra noter l'adresse ip locale attribuée au Raspberry Pi. Elle sera à priori de la forme 192.168.xxx.xxx.

Reconnexion en SSH après le redémarrage

<note> Avez-vous un Nom De Domaine (NDD) ?

L'équipe de Yunohost peut vous permettre d'en avoir un : https://yunohost.org/#/postinstall_fr </note>

Une fois redémarré, il faut lancer le script de post-installation. Cela va permettre de renseigner le nom de domaine et le mot de passe de l'administrateur de Yunohost (https://doc.yunohost.org/#/install_fr).

ssh root@192.168.xxx.xxx
yunohost tools postinstall

<note importante> Attention : la configuration réseau par défaut configure l'interface nommée eth0 en DHCP. Il se peut que vous ayez à changer cette configuration pour que votre Raspberry Pi puisse se connecter à votre réseau si l'interface porte un autre nom. Pour ce faire :

  • Connectez-vous localement à votre Raspberry Pi
  • Repérez le nom de votre interface réseau : $ ip link (lo correspondant à l'interface de rebouclage, cela peut-être eth1 par exemple)
  • Éditez le fichier de configuration /etc/network/interfaces et remplacez eth0 par le nom de votre interface
  • Redémarrez le service réseau : sudo service networking restart

Source : https://yunohost.org/#/install_on_raspberry_fr </note>

Changer votre mot de passe root

Par défaut, le mot de passe est yunohost. Pour des raisons évidentes de sécurité, il est important de le changer.

passwd root

Se connecter à la page web d'administration de Yunohost

Dans votre navigateur internet, entrez l'adresse suivante en l'adaptant à votre nom de domaine : https://monserveur.org/yunohost/admin/ . Entrez alors le mot de passe administrateur que vous venez de définir durant le script de post-installation.

Il faut alors créer un premier utilisateur en passant par le menu Users, puis, une fois l'utilisateur créé, vous pouvez commencer à installer des applications. N'oubliez pas de vous déconnecter.

Voilà, vous êtes maintenant auto-hébergé. N'oubliez pas de faire une mise à jour et mise à niveau régulièrement.

Soit en ssh :

ssh root@192.168.xxx.xxx
apt-get update && apt-get dist-upgrade && yunohost app fetchlist && yunohost app upgrade

Soit en mode graphique à partir de la page d'administration :

https://yunohost.org/#/upgrade_fr

Pour mémoire, l'adresse d'administration de votre Yunohost est https://monserveur.org/yunohost/admin/ et l'adresse du portail de votre Yunohost est https://monserveur.org/.

Vous pouvez aussi contribuer à ce projet ici https://doc.yunohost.org/#/contribute_fr.

A vous de jouer ! ;-)

Pour aller plus loin ...

<note importante> Les sections suivantes sont destinées aux utilisateurs avancés car de mauvais réglages et/ou paramétrages peuvent, à minima, altérer la sécurité mise en place par défaut des applications et du serveur Yunohost, voire engendrer de plus gros soucis. </note>

être averti par mail lors d'une connexion ssh au serveur :

Il faut installer mailutils pour pouvoir envoyer un mail :

apt-get install mailutils

Il faut ensuite créer, ou éditer s'il existe, le fichier /etc/ssh/sshrc.

sudo nano /etc/ssh/sshrc

Entrer lignes suivantes en adaptant à minima l'adresse mail de réception :

#!/bin/sh
# source: http://blog.uggy.org/post/2009/06/05/...
DATE=`date "+%d.%m.%Y--%Hh%Mm"`
IP=`echo $SSH_CONNECTION | awk '{print $1}'`
REVERSE=`dig -x $IP +short`
echo "Connexion de $USER sur $HOSTNAME
IP: $IP
ReverseDNS: $REVERSE
Date: $DATE

" | mail -s "Connexion de $USER sur $HOSTNAME" moi@mon.domaine.ndd

Ensuite, redémarrer ssh :

/etc/init.d/ssh restart

Source : http://yeuxdelibad.net/Logiciel-libre/Installation_et_securisation_d_un_serveur_auto-heberge.html#surveiller

cron

Pour programmer des tâches, comme par exemple une mise à jour suivi d'une mise à niveau de l'installation, vous pouvez utiliser cron.

Plus de détail ici : http://doc.ubuntu-fr.org/cron

fail2ban

Cela permet de bannir les adresses ip essayant de se connecter “furieusement”. Il est à priori installé par défaut sur Yunohost.

sudo apt-get install fail2ban

Ensuite, il faut éditer le fichier de configuration afin de donner une adresse mail afin d'envoyer les rapports de ban.

sudo nano /etc/fail2ban/jail.conf
findtime = 3600
bantime = 86400
destemail = votre@email.com

Toujours dans ce même fichier, rechercher la ligne qui commence par action = afin de rajouter mwl après le _ afin d'avoir un rapport complet.

action =%(action_mwl)s

Ensuite, toujours dans le même fichier, afin d'avoir les rapports sur les principaux services, il faut remplacer false par true dans les parties suivantes :

  • ssh ;
  • ssh-ddos ;

Apparemment, il y a beaucoup de brute-force sur sasl, il est donc préférable de commenter cette règle failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$ et appliquer celle-ci failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: \w :

nano /etc/fail2ban/filter.d/sasl.conf
#failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: \w

D'autres réglages sont disponibles ici : http://doc.ubuntu-fr.org/fail2ban

changer le port d'écoute ssh

Editer /etc/ssh/sshd_config :

sudo nano /etc/ssh/sshd_config

Le numéro de port d'écoute est par défaut le 22. En choisir un au delà du numéro 1024, par exemple : 12345.

Ensuite, il faut éditer le fichier de configuration de fail2ban pour lui dire d'écouter le port 12345 au lieu du port 22.

sudo nano /etc/fail2ban/jail.conf 

Dans la section #JAIL au chapitre [ssh] et [ssh-ddos], il faut changer :

port = ssh par port = 12345

Ensuite, il faut redémarrer le service ssh et recharger le service fail2ban :

sudo service ssh restart
sudo fail2ban-client reload

Installation de logwatch

Si vous souhaitez avoir un historique de ce qui s'est passé sur le serveur la veille, il suffit d'installer logwatch :

sudo apt-get install logwatch
sudo mkdir /var/cache/logwatch

Avant de modifier le fichier de configuration, en faire une copie :

sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

Ensuite faire les modifications ici :

 nano /etc/logwatch/conf/logwatch.conf 

Par exemple, l'envoi des rapports sur une adresse électronique et/ou modifier le niveau de détail du résumé généré :

MailTo = moi@mon.domaine.ndd
Detail = Med

Pour lancer logwatch en console :

sudo logwatch

Pour aller plus loin dans la configuration : http://doc.ubuntu-fr.org/logwatch#configuration

Ancienne section ... pour mémoire seulement

<note importante> Les sections suivantes sont destinées aux utilisateurs avancés car de mauvais réglages et/ou paramétrages peuvent, à minima, altérer la sécurité mise en place par défaut des applications et du serveur Yunohost, voire engendrer de plus gros soucis. </note>

Lancer l'utilitaire de configuration du Raspberry Pi après le redémarrage

Toujours avec la connexion SSH, lancer l'utilitaire et choisissez expand file system et redémarrez. Les sélection se font avec les flèches, la touche tabulation et la touche entrée pour valider.

ssh root@192.168.xxx.xxx
raspi-config

Connexion en SSH en local et mise à jour d'openssl

La première chose à faire est de changer le mot de passe root qui est par défaut yunohost. Pour cela, se connecter en ssh en local. L'adresse ip locale de Yunohost est affiché sur l'écran lors du démarrage, entrer ensuite le mot de passe yunohost et lancer la commande pour redéfinir le mot de passe root.

Tout de suite après, il est très important de mettre à jour openssl et de faire un redémarrage.

ssh root@192.168.xxx.xxx
passwd root
apt-get update && apt-get install openssl && reboot

Finir l'installation en deux phases de mise à jour et de mise à niveau

Dspam a été remplacé par spamassassin, il faut donc ôter ce qui est relatif à Dspam.

rm /var/cache/apt/archives/yunohost-config-dspam*

Pour finir, il faut réaliser une première phase de mise à jour et de mise à niveau, puis une seconde phase de mise à jour et de mise à niveau de la distribution. Toujours dans le terminal en ssh il faut lancer cette suite commandes.

apt-get update && apt-get upgrade && apt-get update && apt-get dist-upgrade && apt-get autoremove

Mise à jour de vos certificats

<note importante> Cette mise à jour des certificats est -très- expérimentale. Il n'est pas conseillé de suivre cette procédure si vous ne savez pas ce que vous faites. </note>

1) Mise A Jour d'openssl sur le serveur :

apt-get update && apt-get upgrade && reboot

2) Copier et renommer les ssl_certificate et ssl_certificate_key :

cp /etc/yunohost/certs/VOTREDOMAINE.COM/crt.pem /etc/yunohost/certs/VOTREDOMAINE.COM/crt.pem_old
cp /etc/yunohost/certs/VOTREDOMAINE.COM/key.pem /etc/yunohost/certs/VOTREDOMAINE.COM/key.pem_old

3) Se positionner dans le “bon” répertoire/dossier :

cd /etc/yunohost/certs/VOTREDOMAINE.COM

<note> Vous allez devoir remplir quelques champs lors d'une des phase de génération. Le plus important est en gras :

  • Country Name (2 letter code) [AU]:FR
  • State or Province Name (full name) [Some-State]:Vaucluse
  • Locality Name (eg, city) []:Avignon
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:mondmomaine
  • Organizational Unit Name (eg, section) []:yunohost
  • Common Name (eg, YOUR name) []:mondomaine.com
  • Email Address []:mon.adresse@mail.com

</note>

4) Générer les clés :

openssl genrsa -out VOTREDOMAINE.COM.key 2048
openssl req -new -key VOTREDOMAINE.COM.key -out VOTREDOMAINE.COM.csr

5) Générer le certificat auto-signé (-signkey) :

openssl x509 -req -days 365 -in VOTREDOMAINE.COM.csr -signkey VOTREDOMAINE.COM.key -out VOTREDOMAINE.COM.crt

6) Édité le fichier de configuration pour rectifier les chemins

<note> Les .pem de l'installation initiale seront remplacés par un .crt et un .key. </note>

nano /etc/nginx/conf.d/MONDOMAINE.COM.conf

Vous devriez avoir au final quelque chose du genre :

server {
    listen 443 ssl;
    server_name MONDOMAINE.COM;
    ssl_certificate     /etc/yunohost/certs/VOTREDOMAINE.COM/VOTREDOMAINE.COM.crt;
    ssl_certificate_key /etc/yunohost/certs/VOTREDOMAINE.COM/VOTREDOMAINE.COM.key;

Faire Ctrl+o pour enregistrer, puis Ctrl+x pour fermer l'éditeur.

7) Redémarrage de Nginx :

/etc/init.d/nginx restart

8) Changement des mots de passe root et de l'administrateur du backoffice de Yunohost :

Changer le mot de passe root :

passwd root

Changer le mot de passe de l'administrateur du backoffice de Yunohost :

raspberrypi/yunohost.txt · Dernière modification : 2018/12/04 18:59 de 127.0.0.1

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : Public Domain