“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
<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>
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.
<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 :
Source : https://yunohost.org/#/install_on_raspberry_fr </note>
Par défaut, le mot de passe est yunohost. Pour des raisons évidentes de sécurité, il est important de le changer.
passwd root
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 !
<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>
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
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
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 :
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
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
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
<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>
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
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
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
<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 :
</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 :