Samedi 15 décembre 2018 (Modifié le Samedi 18 janvier 2020)

Yunohost Debian Stretch cinay.xyz

VPS-KVM OVH


VPS 2018 SSD 3

  • 2 vCores
  • 8Go Ram
  • 80Go SSD

Livraison : vps591606 51.75.120.106

  • Domaine : cinay.xyz
  • IPv4 du serveur : 51.75.120.106
  • IPv6 du serveur : 2001:41d0:0305:2100:0:0:0:4dc0 (2001:41d0:305:2100::4dc0)
  • IPV6 gateway : 2001:41d0:0305:2100:0:0:0:1 (2001:41d0:305:2100::1)

Debian Stretch

Debian 9

Connexion SSH sur “VPS 2018 SSD 3 (2 vCores/8GoRam/80GoSSD)”

ssh root@51.75.120.106

Modification du réseau, ajout IPV6
Sur le VPS OVH il faut désactiver l’initialisation réseau par le cloud

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

Création du fichier /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg en mode su

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Modifier le fichier /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens3
iface ens3 inet dhcp
iface ens3 inet6 static
 address 2001:41d0:0305:2100:0:0:0:4dc0
 netmask 128
 post-up /sbin/ip -6 route add 2001:41d0:0305:2100:0:0:0:1 dev ens3
 post-up /sbin/ip -6 route add default via 2001:41d0:0305:2100:0:0:0:1 dev ens3
 pre-down /sbin/ip -6 route del default via 2001:41d0:0305:2100:0:0:0:1 dev ens3
 pre-down /sbin/ip -6 route del 2001:41d0:0305:2100:0:0:0:1 dev ens3

Mise à jour de la distribution debian stretch

apt update && apt -y upgrade

Redémarrer la machine systemctl reboot pour la prise en compte des modifications du réseau

Connexion SSH sur “VPS 2018 SSD 3 (2 vCores/8GoRam/80GoSSD)”

ssh root@51.75.120.106

Vérifier le réseau ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:07:c2:34 brd ff:ff:ff:ff:ff:ff
    inet 51.75.120.106/32 brd 51.75.120.106 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2001:41d0:305:2100::4dc0/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe07:c234/64 scope link 
       valid_lft forever preferred_lft forever

Yunohost

Yunohost

Installation Yunohost

Lancer le bash et patienter

bash <(wget -q -O- https://install.yunohost.org/)

Valider la “post-installation” ou lancer

yunohost tools postinstall   

Main domain: cinay.xyz
Mot de passe administrateur

Success! YunoHost has been configured
Warning: The post-install is finished but YunoHost needs at least one user to work correctly, you should add one using 'yunohost user create' or the admin interface.
[INFO] Installation logs are available in /var/log/yunohost-installation_20181203_070221.log
[ OK ] YunoHost installation completed !

Créer un utilisateur

yunohost user create yannick
Mot de passe d'administration : 
Prénom : yannick
Nom : meunier
Adresse courriel : yannick@cinay.xyz
Mot de passe : 
Confirmez : mot de passe : 
Création du répertoire « /home/yannick ».
Succès ! La configuration de SSOwat a été générée
Succès ! L'utilisateur a été créé
fullname: yannick meunier
mail: yannick@cinay.xyz
username: yannick

Installation des certificats

yunohost domain cert-install
Info: Now attempting install of certificate for domain cinay.xyz!
Succès ! La configuration de SSOwat a été générée
Succès ! La configuration a été mise à jour pour le service « dnsmasq »
Info: Parsing account key...
Info: Parsing CSR...
Info: Registering account...
Info: Registered!
Info: Verifying cinay.xyz...
Info: cinay.xyz verified!
Info: Signing certificate...
Info: Certificate signed!
Succès ! Installation avec succès d’un certificat Let’s Encrypt pour le domaine cinay.xyz !

Administration yunohost

Connexion administrateur yunohost https://cinay.xyz/yunohost/admin
Vérifier le status des services https://cinay.xyz/yunohost/admin/#/services
Récupérer les paramètres DNS du domaine cinay.xyz https://cinay.xyz/yunohost/admin/#/domains/cinay.xyz/dns

Administration OVH (DNS et VPS)

Se connecter sur le manager OVH

Modifier le reverse DNS du VPS vps591606.ovh.net (IPV4 er IPV6) : cinay.xyz
Modifier la configuration DNS du domaine cinay.xyz

DNS

Se connecter en administrateur sur le site cinay.xyz
Domaines → cinay.xyz → Configuration DNS # pour récupérer les paramètres
Modifier la DNS du domaine cinay.xyz :

$TTL 3600
@	IN SOA dns112.ovh.net. tech.ovh.net. (2018092426 86400 3600 3600000 300)
                    3600 IN NS     dns112.ovh.net.
                    3600 IN NS     ns112.ovh.net.
                    3600 IN MX 10  cinay.xyz.
                    3600 IN A      51.75.120.106
                    3600 IN AAAA   2001:41d0:305:2100::4dc0
                     600 IN TXT    "v=spf1 a mx ip4:51.75.120.106 ip6:2001:41d0:305:2100::4dc0 -all"
*                   3600 IN CNAME  cinay.xyz.
_dmarc                   IN TXT    ( "v=DMARC1; p=none;" )
_xmpp-client._tcp   3600 IN SRV    0 5 5222 cinay.xyz.
_xmpp-server._tcp   3600 IN SRV    0 5 5269 cinay.xyz.
mail._domainkey     3600 IN TXT    ( "v=DKIM1; k=rsa; h=sha256; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOltTHam7WsBs1Fn26v7hSqe4bkNsruffIpinULglGcLHR8H0Cbks1jPuAZKuKLH1J7KxwelJ9F17mNqCuVDyPwGx1qLT8aEs3vD6L8tn9Aow1b2hEr2HQR6B6Ad90QYliI1BIVjrTjCpJyWYv3PUNow4QnUw/UhxX2bEK19apUwIDAQAB" )
muc                 3600 IN CNAME  cinay.xyz.
pubsub              3600 IN CNAME  cinay.xyz.
vjud                3600 IN CNAME  cinay.xyz.

Sécurité

OpenSSH avec clés

OpenSSH

Créer un utilisateur debian
Il faut un utilisateur debian non ldap pour les connexions ssh

adduser debadm # création du home et saisie mot de passe

Visudo pour les accès root via utilisateur debadm

echo "debadm     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Poste local
Génération d’une paire de clés

ssh-keygen -f ~/.ssh/kvm-vps591606 -t ed25519 -o -a 100

Le déploiement de la clé publiques .pub

ssh-copy-id -i ~/.ssh/kvm-vps591606.pub debadm@51.75.120.106

Serveur distant

Se connecter au serveur distant depuis le poste local avec utilisateur debian

ssh debadm@cinay.xyz

La clé publique est ajoutée au fichier distant /home/debadm/.ssh/authorized_keys du serveur
Autre possibilité :

mkdir /home/debadm/.ssh                 # créer un dossier .ssh
nano /home/debadm/.ssh/authorized_keys  # Coller le contenu de la clé publique kvm-vps591606.pub
chmod 600 /home/debadm/.ssh/authorized_keys # droits utilisateur

Utiliser la clé publique

Fichier /etc/ssh/sshd_config sur le serveur distant, liste des paramètres qui sont modifiés

Port 55031
PermitRootLogin no 
PasswordAuthentication no 

On peut également modifier le port de connexion SSH
Exemple remplacer port 22 par port 55031 :
Port 55031 # dans le fichier /etc/ssh/sshd_config
NE PAS OUBLIER DE MODIFIER LE PAREFEU (FIREWALL) YUNOHOST :
yunohost firewall disallow TCP 22 # désactiver le port 22
yunohost firewall allow TCP 55031 # activer le port 55031

Recharger le serveur ssh

systemctl restart sshd

Test de la connexion ssh par clé depuis le poste local

ssh -i ~/.ssh/kvm-vps591606 debadm@51.75.120.106 # port 22
ssh -p 55031 -i ~/.ssh/kvm-vps591606 debadm@51.75.120.106 # port 55031
ssh -p 55031 -i ~/.ssh/kvm-vps591606 debadm@cinay.xyz # port 55031 et DNS OK/Domaine

Affichage à la connexion ssh

Exécuter un fichier utilisateur nommé $HOME/.ssh/rc si présent
Pour tous les utilisateurs exécuter un fichier nommé /etc/ssh/sshrc si présent
Installer les utilitaires curl jq figlet tmux

sudo apt install curl jq figlet 
sudo apt install tmux p7zip     # outils supplémentaires

Créer le fichier ~/.ssh/rc

#!/bin/bash

#clear
PROCCOUNT=`ps -Afl | wc -l`  		# nombre de lignes
PROCCOUNT=`expr $PROCCOUNT - 5`		# on ote les non concernées
GROUPZ=`users`
ipinfo=$(curl -s ipinfo.io) 		# info localisation format json
publicip=$(echo $ipinfo | jq -r '.ip')  # extraction des données , installer préalablement "jq"
ville=$(echo $ipinfo | jq -r '.city')
pays=$(echo $ipinfo | jq -r '.country')
cpuname=`cat /proc/cpuinfo |grep 'model name' | cut -d: -f2 | sed -n 1p`
iplink=`ip link show |grep -m 1 "2:" | awk '{print $2}' | cut -d: -f1`

echo "\033[0m\033[1;31m"  
figlet "`hostname --fqdn`"
echo "\033[0m
\033[1;35m    \033[1;37mHostname \033[1;35m= \033[1;32m`hostname`
\033[1;35m  \033[1;37mWired IpV4 \033[1;35m= \033[1;32m`ip addr show $iplink | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1`
\033[1;35m  \033[1;37mWired IpV6 \033[1;35m= \033[1;32m`ip addr show $iplink | grep -E 'inet6' |grep -E 'scope link' | awk '{print $2}' | cut -d/ -f1`
\033[1;35m      \033[1;37mKernel \033[1;35m= \033[1;32m`uname -r`
\033[1;35m      \033[1;37mDebian \033[1;35m= \033[1;32m`cat /etc/debian_version`
\033[1;35m      \033[1;37mUptime \033[1;35m= \033[1;32m`uptime | sed 's/.*up ([^,]*), .*/1/' | sed -e 's/^[ \t]*//'`
\033[1;35m         \033[1;37mCPU \033[1;35m= \033[1;32m`echo $cpuname`
\033[1;35m  \033[1;37mMemory Use \033[1;35m= \033[1;32m`free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'`
\033[1;35m    \033[1;37mUsername \033[1;35m= \033[1;32m`whoami`
\033[1;35m    \033[1;37mSessions \033[1;35m= \033[1;32m`who | grep $USER | wc -l`
\033[1;35m \033[1;37mPublic IpV4 \033[1;35m= \033[1;32m`echo $publicip`
\033[1;35m \033[1;37mPublic IpV6 \033[1;35m= \033[1;32m`ip addr show $iplink | grep -m 1 'inet6\b'  | awk '{print $2}' | cut -d/ -f1`
\033[0m"
df -h /
#curl fr.wttr.in/$ville?0

Effacer motd

sudo rm /etc/motd

Déconnexion puis connexion

Désactivation de l’API YunoHost

YunoHost est administrable via une API HTTP, servie sur le port 6787 par défaut (seulement sur localhost). Elle permet d’administrer une grande partie de votre serveur, et peut donc être utilisée à des fins malveillantes. La meilleure chose à faire si vous êtes habitués aux lignes de commande est de désactiver le service yunohost-api, et utiliser la ligne de commande en SSH.

sudo systemctl disable yunohost-api
sudo systemctl stop yunohost-api

Applications Yunohost

Nextcloud

Nextcloud
Installer Nextcloud avec l’administrateur web yunohost
Accéder au dossier personnel des utilisateurs depuis Nextcloud

Transmission

Transmission
Installer Transmission avec l’administrateur web yunohost

Tiny Tiny RSS

Tiny Tiny RSS
Installer Tiny Tiny RSS avec l’administrateur web yunohost
Thèmes

sudo -s
git clone https://github.com/levito/tt-rss-feedly-theme.git
cp -r tt-rss-feedly-theme/feedly* /var/www/ttrss/themes.local/

Gitea (publique gitea.cinay.xyz)

Gitea

  1. Ajout domaine gitea.cinay.xz
  2. Certificats Let’s Encrypt pour le domaine
  3. Installer l’application Gitea
    • domaine : gitea.cinay.xyz
    • Chemin : /
    • Administrateur : yannick
    • Site publique : Oui

gitea-web
https://gitea.cinay.xyz/

Calibre-Web (publique calibre.cinay.xyz)

Calibre-web

  1. Ajout domaine calibre.cinay.xz
  2. Certificats Let’s Encrypt pour le domaine
  3. Installer l’application Calibre-web
    calibre-web

Emplacement de la base de donnée Calibre : /home/yunohost.multimedia/share/eBook/
Copie dossier CalibreTechnique du serveur backup xoyaz.xyz → cinay.xyz

sudo -s
rsync -avz -e "ssh -p 55036 -i .ssh/OVZ-STORAGE-128 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress usernl@5.2.79.107:/home/usernl/backup/CalibreTechnique/* /home/yunohost.multimedia/share/eBook/

En mode admin , il faut redémarrer calibre-web
Automatiser la synchronisation des dossiers

crontab -e   # ajouter la ligne suivante en fin de fichier
# Synchroniser le dossier "CalibreTechnique" entre le serveur de backup distant xoyaz.xyz  et le serveur local cinay.xyz
15 01 * * * /usr/bin/rsync -avz -e "ssh -p 55036 -i .ssh/OVZ-STORAGE-128 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress usernl@5.2.79.107:/home/usernl/backup/CalibreTechnique/* /home/yunohost.multimedia/share/eBook/

calibre-web
https://calibre.cinay.xz

Dokuwiki

Texte alternatif
Installer Dokuwiki avec l’administrateur web yunohost

En cas de problème

Le point le plus important et la prise en charge LDAP , le plugin LDAP Auth Plugin doit être actif (cas de transfert de dokuwiki ou après une mise à jour , perte de l’authentification LDAP !!!)
La configuration spécifique à LDAP dans le fichier /var/www/dokuwiki/conf/dokuwiki.php

/* Authentication Settings */
$conf['useacl']      = 1;                //Use Access Control Lists to restrict access?
$conf['openregister']= 0;
$conf['autopasswd']  = 1;                //autogenerate passwords and email them to user
$conf['authtype']    = 'authldap';      //which authentication backend should be used
$conf['passcrypt']   = 'sha1';           //Used crypt method (smd5,md5,sha1,ssha,crypt,mysql,my411)
$conf['defaultgroup']= 'user';           //Default groups new Users are added to
$conf['superuser']   = 'yannick';    //The admin can be user or @group or comma separated list user1,@group1,user2
$conf['manager']     = 'yannick';    //The manager can be user or @group or comma separated list user1,@group1,user2
$conf['profileconfirm'] = 1;             //Require current password to confirm changes to user profile
$conf['rememberme'] = 1;                 //Enable/disable remember me on login
$conf['disableactions'] = '';            //comma separated list of actions to disable
$conf['auth_security_timeout'] = 900;    //time (seconds) auth data is considered valid, set to 0 to recheck on every page view
$conf['securecookie'] = 1;               //never send HTTPS cookies via HTTP
$conf['remote']      = 0;                //Enable/disable remote interfaces
$conf['remoteuser']  = '!!not set !!';   //user/groups that have access to remote interface (comma separated)

/* LDAP Yunohost config */
$conf['plugin']['authldap']['server']      = 'localhost';
$conf['plugin']['authldap']['port']        = 389;
$conf['plugin']['authldap']['version']    = 3;
$conf['plugin']['authldap']['usertree']    = 'ou=users,dc=yunohost,dc=org';
$conf['plugin']['authldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
# no groups
#$conf['plugin']['authldap']['grouptree']   = 'ou=Group, dc=server, dc=tld';
#$conf['plugin']['authldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; 

Structure et droits des dossiers dokuwiki

root@cinay:/home/debadm# ls -la /var/www/dokuwiki/
total 124
drwxr-xr-x  9 root     root  4096 Nov  6 15:56 .
drwxr-xr-x  7 root     root  4096 Dec  3 09:30 ..
drwxr-xr-x  2 root     root  4096 May  3  2018 bin
drwxr-xr-x  2 dokuwiki root  4096 Nov  6 15:57 conf
-rw-r--r--  1 root     root 18092 May  3  2018 COPYING
drwxr-x--- 12 dokuwiki root  4096 Nov  6 15:56 data
drwxr-xr-x  2 root     root 12288 Sep  5 07:21 doc
-rw-r--r--  1 root     root  3547 Nov  6 15:56 doku.php
-rw-r--r--  1 root     root 19141 May  3  2018 feed.php
-rw-r--r--  1 root     root  1684 May  3  2018 .htaccess.dist
drwxr-xr-x  9 dokuwiki root  4096 Nov  6 15:56 inc
-rw-r--r--  1 root     root  2097 May  3  2018 index.php
-rw-r--r--  1 root     root 19233 May  3  2018 install.php
drwxr-xr-x  8 root     root  4096 May  3  2018 lib
-rw-r--r--  1 root     root   306 May  3  2018 README
drwxr-xr-x 12 root     root  4096 May  3  2018 vendor
-rw-r--r--  1 root     root    21 May  3  2018 VERSION

Site statique (publique static.cinay.xyz)

image

Création domaine gitlab.cinay.xyz
En mode administrateur ou en ligne de commande, créer un domaine gitlab.cinay.xyz puis générer les certificats letsencrypt

En ligne de commande (passer en root)

yunohost domain add static.cinay.xyz 
Administration password: 
Success! Successfully installed a self-signed certificate for domain static.cinay.xyz!
Success! The configuration has been updated for service 'postfix'
Success! The configuration has been updated for service 'nginx'
Success! The configuration has been updated for service 'dnsmasq'
Success! The configuration has been updated for service 'metronome'
Success! The SSOwat configuration has been generated
Success! The domain has been created
yunohost domain cert-install static.cinay.xyz
Info: Now attempting install of certificate for domain static.cinay.xyz!
Success! The SSOwat configuration has been generated
Success! The configuration has been updated for service 'dnsmasq'
Info: Parsing account key...
Info: Parsing CSR...
Info: Registering account...
Info: Already registered!
Info: Verifying static.cinay.xyz...
Info: static.cinay.xyz verified!
Info: Signing certificate...
Info: Certificate signed!
Success! Successfully installed Let's Encrypt certificate for domain static.cinay.xyz!

En mode su (root), installation Jekyll avec gems (source):

apt install build-essential ruby-full
gem install bundler jekyll-feed           # thème "minima" (si aucun thème dans la suite...)

Vérifier installation avec la version

jekyll -v

Installer wikistatic
Installer dépendances Rmagick sur Debian

sudo apt install imagemagick ruby-rmagick libmagickwand-dev

Création dossier

sudo mkdir -p /srv           # création dossier
sudo chown $USER.$USER /srv  # droits

Clonage wikistatic par git

cd /srv
sudo git clone https://gitlab.cinay.xyz/spm/wikistatic.git

Les droits sur le dossier

sudo chown   $USER. -R /srv/wikistatic

Lancement “bundle” dans le dossier /srv/wikistatic

cd /srv/wikistatic
bundle install

Créer service jekyll
Le script /srv/wikistatic/start_jekyll.sh contenu dans le service

#!/bin/sh
#lancement jekyll
cd /srv/wikistatic/
# Attente et construction
/usr/local/bin/bundle exec jekyll build --watch

Droits sur le bash

sudo chown $USER. /srv/wikistatic/start_jekyll.sh
chmod +x /srv/wikistatic/start_jekyll.sh

Pour lancer le serveur Jekyll au démarrage, utilisation d’un service systemd
ATTENTION! , remplacer User=utilisateur par votre nom d’utilisateur (echo $USER)

Création d’un service jekyll sous systemd

sudo nano /etc/systemd/system/jekyll.service

Contenu du fichier

[Unit]
Description=jekyll Service
After=network.target

[Service]
Type=simple
User=debadm
ExecStart=/bin/sh /srv/wikistatic/start_jekyll.sh
Restart=on-abort


[Install]
WantedBy=multi-user.target

Lancer le service jekyll :

sudo systemctl daemon-reload
sudo systemctl start jekyll
# Valider le lancement du service jekyll au démarrage
sudo systemctl enable jekyll
#Vérifier
sudo systemctl status jekyll
● jekyll.service - jekyll Service
   Loaded: loaded (/etc/systemd/system/jekyll.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-12-20 06:26:21 CET; 1min 21s ago
 Main PID: 14742 (sh)
   CGroup: /system.slice/jekyll.service
           ├─14742 /bin/sh /srv/wikistatic/start_jekyll.sh
           └─14744 ruby2.3 /usr/local/bin/jekyll build --watch

Dec 20 06:26:21 cinay.xyz systemd[1]: Started jekyll Service.
Dec 20 06:26:22 cinay.xyz sh[14742]: Configuration file: /srv/wikistatic/_config.yml
Dec 20 06:26:22 cinay.xyz sh[14742]:             Source: /srv/wikistatic
Dec 20 06:26:22 cinay.xyz sh[14742]:        Destination: /srv/wikistatic/_site
Dec 20 06:26:22 cinay.xyz sh[14742]:  Incremental build: disabled. Enable with --incremental
Dec 20 06:26:22 cinay.xyz sh[14742]:       Generating...
Dec 20 06:26:57 cinay.xyz sh[14742]:                     done in 34.444 seconds.
Dec 20 06:26:57 cinay.xyz sh[14742]:  Auto-regeneration: enabled for '/srv/wikistatic'

jekyll génére un dossier statique /srv/wikistatic/_site

Installation de l’application “Multi webapp for YunoHost” sur le domaine static.cinay.xyz

yunohost app install https://github.com/YunoHost-Apps/multi_webapp_ynh
WARNING! Installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. Are you willing to take that risk? [Y/N] : Y
Available domains:
- cinay.xyz
- map.cinay.xyz
- blog.cinay.xyz
- liens.cinay.xyz
- static.cinay.xyz
Choose a domain for your Webapp (default: cinay.xyz): static.cinay.xyz
Choose a path for your Webapp (default: /site): /
Available users:
- yannick
Choose the YunoHost user: yannick
Create a database? [yes | no] (default: no): 
Is it a public website ? [yes | no] (default: no): yes
Info: [....................] > Retrieve arguments from the manifest
Info: [#...................] > Check if the app can be installed
Info: [##..................] > Store settings from manifest
Info: [#####...............] > Setup SSOwat
Info: [######..............] > Create final path
Info: The directory /var/www/webapp_yannick already exist, do not recreate it.
Info: [#######.............] > Create a dedicated user
Warning: Reload the service php7.0-fpm
Info: [##########..........] > Configure php-fpm
Info: [###########.........] > Configure nginx
Warning: Reload the service nginx
Info: [############........] > Reload nginx
Info: [####################] > Installation completed
Success! The SSOwat configuration has been generated
Success! Installation complete

Le dossier par défaut de “Multi webapp for YunoHost” /var/www/webapp_yannick/static.cinay.xyz_/

sudo rm -r /var/www/webapp_yannick/static.cinay.xyz_/  # on supprime le dossier par défaut
sudo ln -s /srv/wikistatic/_site /var/www/webapp_yannick/static.cinay.xyz_  # créer le lien

Les dossiers images files et _posts du site statique sont synchronisés par nextcloud dans /home/yannick/statique , il faut créer des liens avec jekyll

tree -L 1 /home/yannick/statique/
/home/yannick/statique/
├── files
├── images
├── liens_pour_editeur_md
└── _posts

Création des liens

sudo rm -r /srv/wikistatic/{files,images,_posts} # suppression des dossiers existants
sudo ln -s /home/yannick/statique/_posts /srv/wikistatic/_posts
sudo ln -s /home/yannick/statique/images /srv/wikistatic/images
sudo ln -s /home/yannick/statique/files /srv/wikistatic/files

Ce qui donne

tree -L 1 /srv/wikistatic/
/srv/wikistatic/
├── 404.html
├── assets
├── categories.html
├── _config.yml
├── feed.xml
├── files -> /home/yannick/statique/files
├── Gemfile
├── Gemfile.lock
├── images -> /home/yannick/statique/images
├── _includes
├── index.html
├── js
├── _layouts
├── _posts -> /home/yannick/statique/_posts
├── README.md
├── _site
├── start_jekyll.sh
├── tags.html
└── wikistatic.json

Changer l’étiquette par “Static” en utilisant l’administration web “Applications”

static-web
Le site statique sur le lien https://static.cinay.xyz

Cartographie (publique map.cinay.xyz)

Cartographie

Yunohost mode administration web

créer le domaine map.cinay.xyz puis les certificats Let’s Encrypt
Installation de l’application “Multi webapp for YunoHost” sur le domaine map.cinay.xyz

yunohost app install https://github.com/YunoHost-Apps/multi_webapp_ynh
WARNING! Installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. Are you willing to take that risk? [Y/N] : Y
Available domains:
- cinay.xyz
- map.cinay.xyz
- blog.cinay.xyz
- liens.cinay.xyz
- static.cinay.xyz
Choose a domain for your Webapp (default: cinay.xyz): map.cinay.xyz
Choose a path for your Webapp (default: /site): /
Available users:
- yannick
Choose the YunoHost user: yannick
Create a database? [yes | no] (default: no): 
Is it a public website ? [yes | no] (default: no): yes
Info: [....................] > Retrieve arguments from the manifest
Info: [#...................] > Check if the app can be installed
Info: [##..................] > Store settings from manifest
Info: [#####...............] > Setup SSOwat
Info: [######..............] > Create final path
Info: The directory /var/www/webapp_yannick already exist, do not recreate it.
Info: [#######.............] > Create a dedicated user
Info: [##########..........] > Configure php-fpm
Warning: Reload the service php7.0-fpm
Warning: Reload the service nginx
Info: [###########.........] > Configure nginx
Info: [############........] > Reload nginx
Info: [####################] > Installation completed
Success! The SSOwat configuration has been generated
Success! Installation complete

Le dossier par défaut de “Multi webapp for YunoHost” /var/www/webapp_yannick/map.cinay.xyz_/

sudo rm -r /var/www/webapp_yannick/map.cinay.xyz_/  # on supprime le dossier par défaut
sudo ln -s /srv/osm-new /var/www/webapp_yannick/map.cinay.xyz_  # créer le lien

Changer l’étiquette par “Cartes” en utilisant l’administration web “Applications”

Synchronisation locale des fichiers gpx

Les fichiers gpx du dossier /srv/osm-new/file ne peuvent pas être utilisés par nextcloud et map pour une question de droits
Pour une utilisation par une application nextcloud dans le dossier /home/yannick/gpx on va le synchroniser avec le dossier /srv/osm-new/file/ par lsyncd

sudo -s
apt install lsyncd # installation
systemctl stop lsyncd  # arrêt du service pour modifier la configuration
mkdir /var/log/lsyncd
touch /var/log/lsyncd/lsyncd.{log,status}
# Configuration file goes on /etc/lsyncd:
mkdir /etc/lsyncd
# le fichier de configuration
echo '
settings = {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status"
}

sync {
default.rsync,
source = "/srv/osm-new/file/",
target = "/home/yannick/gpx",
}
' > /etc/lsyncd/lsyncd.conf.lua
# lancement du service
systemctl restart lsyncd

Vue du fichier lsyncd.log

Tue Dec 24 08:14:12 2019 Normal: recursive startup rsync: /srv/osm-new/file/ -> /home/yannick/gpx/
Tue Dec 24 08:14:14 2019 Normal: Startup of "/srv/osm-new/file/" finished.

Le contenu du dossier /home/yannick/gpx est synchronisé automatiquement avec le dossier /srv/osm-new/file/

IMPORTANT : Cette synchronisation est imposée pour l’utilisation d’une application nextcloud nommée gpxpod

L'application gpxpod ne sait pas traiter les noms de fichiers avec des espaces

, il faut exécuter dans le dossier /home/yannick/gpx , un bash ./remplacer-les-espaces-par_dans-les-noms-de-fichier.sh en mode su

LE PROBLEME EST RESOLU (DECEMBRE 2019)

Cartographie
https://map.cinay.xyz/

Shaarli (publique shaarli.cinay.xyz)

image
Voulez-vous partager les liens que vous découvrez ? Shaarli est un gestionnaire de signets minimaliste et un service de partage de liens que vous pouvez installer sur votre propre serveur. Il est conçu pour être personnel (monoposte), rapide et pratique.

  1. Ajout domaine shaarli.cinay.xz
  2. Certificats Let’s Encrypt pour le domaine
  3. Installer l’application shaarli
    • domaine : shaarli.cinay.xyz
    • Chemin : /
    • Site publique : Oui

ATTENTION!!! PROBLEMES+ de droits et d’installation

En raison des problèmes évoqués, voici la procédure à suivre :

sudo rm -r /var/www/shaarli # suppression appli web shaarli installée par yunohost

Réinstaller shaarli
Télécharger la dernière version de Shaarli depuis la page des versions (Télécharger l’archive shaarli-full pour inclure les dépendances).

wget https://github.com/shaarli/Shaarli/releases/download/v0.11.1/shaarli-v0.11.1-full.tar.gz
unzip shaarli-v0.11.1-full.tar.gz
sudo mv Shaarli /var/www/shaarli
sudo chown shaarli:shaarli -R /var/www/shaarli

Ouvrir le lien https://shaarli.cinay.xyz pour le paramétrage


Après l’installation, se connecter en utilisateur/mot de passe


https://shaarli.cinay.xyz/

Liens extérieurs (publique liens.cinay.xyz)

Création domaine liens.cinay.xyz et certificats SSL
Installation de l’application “Multi webapp for YunoHost” sur le domaine liens.cinay.xyz

yunohost app install https://github.com/YunoHost-Apps/multi_webapp_ynh
WARNING! Installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. Are you willing to take that risk? [Y/N] : Y
Available domains:
- cinay.xyz
- map.cinay.xyz
- blog.cinay.xyz
- liens.cinay.xyz
- static.cinay.xyz
Choose a domain for your Webapp (default: cinay.xyz): liens.cinay.xyz
Choose a path for your Webapp (default: /site): /
Available users:
- yannick
Choose the YunoHost user: yannick
Create a database? [yes | no] (default: no): 
Is it a public website ? [yes | no] (default: no): yes
Info: [....................] > Retrieve arguments from the manifest
Info: [#...................] > Check if the app can be installed
Info: [##..................] > Store settings from manifest
Info: [#####...............] > Setup SSOwat
Info: [######..............] > Create final path
Info: The directory /var/www/webapp_yannick already exist, do not recreate it.
Info: [#######.............] > Create a dedicated user
Info: [##########..........] > Configure php-fpm
Warning: Reload the service php7.0-fpm
Info: [###########.........] > Configure nginx
Warning: Reload the service nginx
Info: [############........] > Reload nginx
Info: [####################] > Installation completed
Success! The SSOwat configuration has been generated
Success! Installation complete

Le dossier par défaut de “Multi webapp for YunoHost” /var/www/webapp_yannick/liens.cinay.xyz_/

sudo rm -r /var/www/webapp_yannick/liens.cinay.xyz_/  # on supprime le dossier par défaut
sudo ln -s /home/debadm/liens /var/www/webapp_yannick/liens.cinay.xyz_  # créer le lien

Contenu

tree -L 2 /var/www/webapp_yannick/liens.cinay.xyz_/
/var/www/webapp_yannick/liens.cinay.xyz_/
├── css
│   ├── full-1.css
│   └── knacss.css
├── fork-awesome
│   ├── css
│   └── fonts
├── images
│   ├── grisfonce_038.jpg
│   ├── intro-bg.jpg
│   └── lighthouse-storm-at-night-wallpaper.jpg
├── index.html
└── README.md

Changer l’étiquette par “Liens” en utilisant l’administration web “Applications”

Blog/Test (publique blog.cinay.xyz)

Yunohost administrateur

  1. Ajout domaine blog.cinay.xz
  2. Certificats Let’s Encrypt pour le domaine
  3. Installer l’application Multi webapp for YunoHost
    • domaine : blog.cinay.xyz
    • Chemin : /
    • Site publique : Oui


Accès site blog/test https://blog.cinay.xyz

Structures

nginx (/etc/nginx)

tree /etc/nginx
/etc/nginx
├── conf.d
│   ├── blog.cinay.xyz.conf
│   ├── blog.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── webapp_blog.cinay.xyz_.conf
│   ├── calibre.cinay.xyz.conf
│   ├── calibre.cinay.xyz.d
│   │   └── 000-acmechallenge.conf
│   ├── cinay.xyz.conf
│   ├── cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   ├── dokuwiki.conf
│   │   ├── nextcloud.conf
│   │   ├── transmission.conf
│   │   ├── ttrss.conf
│   │   └── yunohost_local.conf
│   ├── gitea.cinay.xyz.conf
│   ├── gitea.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── gitea.conf
│   ├── global.conf
│   ├── liens.cinay.xyz.conf
│   ├── liens.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── webapp_liens.cinay.xyz_.conf
│   ├── map.cinay.xyz.conf
│   ├── map.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── webapp_map.cinay.xyz_.conf
│   ├── shaarli.cinay.xyz.conf
│   ├── shaarli.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── shaarli.conf
│   ├── ssowat.conf
│   ├── static.cinay.xyz.conf
│   ├── static.cinay.xyz.d
│   │   ├── 000-acmechallenge.conf
│   │   └── webapp_static.cinay.xyz_.conf
│   ├── yunohost_admin.conf
│   ├── yunohost_admin.conf.inc
│   ├── yunohost_api.conf.inc
│   └── yunohost_panel.conf.inc
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│   ├── 10-mod-http-ndk.conf -> /usr/share/nginx/modules-available/mod-http-ndk.conf
│   ├── 50-mod-http-auth-pam.conf -> /usr/share/nginx/modules-available/mod-http-auth-pam.conf
│   ├── 50-mod-http-cache-purge.conf -> /usr/share/nginx/modules-available/mod-http-cache-purge.conf
│   ├── 50-mod-http-dav-ext.conf -> /usr/share/nginx/modules-available/mod-http-dav-ext.conf
│   ├── 50-mod-http-echo.conf -> /usr/share/nginx/modules-available/mod-http-echo.conf
│   ├── 50-mod-http-fancyindex.conf -> /usr/share/nginx/modules-available/mod-http-fancyindex.conf
│   ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf
│   ├── 50-mod-http-headers-more-filter.conf -> /usr/share/nginx/modules-available/mod-http-headers-more-filter.conf
│   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│   ├── 50-mod-http-lua.conf -> /usr/share/nginx/modules-available/mod-http-lua.conf
│   ├── 50-mod-http-perl.conf -> /usr/share/nginx/modules-available/mod-http-perl.conf
│   ├── 50-mod-http-subs-filter.conf -> /usr/share/nginx/modules-available/mod-http-subs-filter.conf
│   ├── 50-mod-http-uploadprogress.conf -> /usr/share/nginx/modules-available/mod-http-uploadprogress.conf
│   ├── 50-mod-http-upstream-fair.conf -> /usr/share/nginx/modules-available/mod-http-upstream-fair.conf
│   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│   ├── 50-mod-nchan.conf -> /usr/share/nginx/modules-available/mod-nchan.conf
│   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-utf

dossier web (/var/www)

Les applications web sont sous la racine /var/www

tree -L 2 /var/www/
/var/www/
├── dokuwiki
│   ├── bin
│   ├── conf
│   ├── COPYING
│   ├── data
│   ├── doc
│   ├── doku.php
│   ├── feed.php
│   ├── inc
│   ├── index.php
│   ├── install.php
│   ├── lib
│   ├── README
│   ├── vendor
│   └── VERSION
├── html
│   └── index.nginx-debian.html
├── nextcloud
│   ├── 3rdparty
│   ├── apps
│   ├── AUTHORS
│   ├── config
│   ├── console.php
│   ├── COPYING
│   ├── core
│   ├── cron.php
│   ├── index.html
│   ├── index.php
│   ├── lib
│   ├── occ
│   ├── ocm-provider
│   ├── ocs
│   ├── ocs-provider
│   ├── public.php
│   ├── remote.php
│   ├── resources
│   ├── robots.txt
│   ├── settings
│   ├── status.php
│   ├── themes
│   ├── updater
│   └── version.php
├── shaarli
│   ├── application
│   ├── assets
│   ├── AUTHORS
│   ├── cache
│   ├── CHANGELOG.md
│   ├── composer.json
│   ├── composer.lock
│   ├── CONTRIBUTING.md
│   ├── COPYING
│   ├── data
│   ├── doc
│   ├── inc
│   ├── index.php
│   ├── package.json
│   ├── pagecache
│   ├── phpcs.xml
│   ├── plugins
│   ├── README.md
│   ├── shaarli_version.php
│   ├── tmp
│   ├── tpl
│   ├── vendor
│   ├── webpack.config.js
│   └── yarn.lock
├── ttrss
│   ├── api
│   ├── atom-to-html.xsl
│   ├── backend.php
│   ├── cache
│   ├── classes
│   ├── config.php
│   ├── config.php-dist
│   ├── CONTRIBUTING.md
│   ├── COPYING
│   ├── css
│   ├── errors.php
│   ├── feed-icons
│   ├── images
│   ├── include
│   ├── index.php
│   ├── install
│   ├── js
│   ├── lib
│   ├── locale
│   ├── lock
│   ├── messages.pot
│   ├── opml.php
│   ├── plugins
│   ├── plugins.local
│   ├── prefs.php
│   ├── public.php
│   ├── README.md
│   ├── register.php
│   ├── schema
│   ├── templates
│   ├── tests
│   ├── themes
│   ├── themes.local
│   ├── update_daemon2.php
│   ├── update.php
│   ├── update.php.orig
│   ├── utils
│   └── vendor
└── webapp_yannick
    ├── blog.cinay.xyz_
    ├── liens.cinay.xyz_ -> /srv/liens
    ├── map.cinay.xyz_ -> /srv/osm-new
    └── static.cinay.xyz_ -> /srv/wikistatic/_site

Sauvegarde BorgBackup

serveur client cinay.xyz

connexion SSH

Pour une connexion via ssh vous devez ajouter la clé publique cinay_ed25519 du serveur client cinay.xyz au fichier ~/.ssh/authorized_keys du serveur backup xoyaz.xyz

Procédure

ssh usernl@5.2.79.107 -p 55036 -i /home/yannick/.ssh/OVZ-STORAGE-128 # connexion SSH serveur backup
sudo -s # passer en super utilisateur
cat >> /srv/data/borg-backups/.ssh/authorized_keys

Copier/coller le contenu du fichier du fichier de clef publique (fichier /root/.ssh/cinay_ed25519.pub de la machine à sauvegarder cinay.xyz ) dans ce terminal, et presser [Ctrl]+[D] pour valider.

Test depuis le serveur client (c’est lui qui possède la clé privée)

AU PREMIER passage une question est posée , saisir oui ou yes

sudo -s
ssh -p 55036 -i /root/.ssh/cinay_ed25519 borg@xoyaz.xyz
The authenticity of host '[xoyaz.xyz]:55036 ([2a04:52c0:101:7ae::7a5e]:55036)' can't be established.
ECDSA key fingerprint is SHA256:PDXQBhTh4oj0cSzgnjCun+J60JDUEk7VeLH2YHZbwMc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[xoyaz.xyz]:55036,[2a04:52c0:101:7ae::7a5e]:55036' (ECDSA) to the list of known hosts.
Linux backup 2.6.32-042stab134.3 #1 SMP Sun Oct 14 12:26:01 MSK 2018 x86_64
  _               _               
 | |__  __ _  __ | |__ _  _  _ __ 
 | '_ \/ _` |/ _|| / /| || || '_ \
 |_.__/\__,_|\__||_\_\ \_,_|| .__/
                            |_|   
$ pwd
/srv/data/borg-backups
$ 
# saisir exit pour sortir

Création du dépôt distant cinay.xyz (A FAIRE UNE SEULE FOIS)

Dans la terminologie borg, l’emplacement où les sauvegardes sont stockées est appelé le référentiel borg (dépôt).

sudo -s

Créer un fichier avec la passphrase nano /root/.borg/passphrase et copier le résultat de la commande < /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo; dans le fichier

Initialisation dépôt

export BORG_PASSPHRASE="`cat /root/.borg/passphrase`"
export BORG_RSH='ssh -i /root/.ssh/cinay_ed25519'
borg init --encryption=repokey-blake2 ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/cinay.xyz
Remote: Borg 1.0.9: exception in RPC call:
Remote: Traceback (most recent call last):
Remote:   File "/usr/lib/python3/dist-packages/borg/remote.py", line 108, in serve
Remote:     raise InvalidRPCMethod(method)
Remote: borg.remote.InvalidRPCMethod: get_free_nonce
Remote: Platform: Linux backup 2.6.32-042stab134.3 #1 SMP Sun Oct 14 12:26:01 MSK 2018 x86_64
Remote: Linux: debian 9.9 
Remote: Borg: 1.0.9  Python: CPython 3.5.3
Remote: PID: 18282  CWD: /srv/data/borg-backups
Remote: sys.argv: ['/usr/bin/borg', 'serve', '--umask=077']
Remote: SSH_ORIGINAL_COMMAND: None
Remote: 
Please upgrade to borg version 1.1+ on the server for safer AES-CTR nonce handling.

By default repositories initialized with this version will produce security
errors if written to with an older version (up to and including Borg 1.0.8).

If you want to use these older versions, you can disable the check by running:
borg upgrade --disable-tam ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/cinay.xyz

See https://borgbackup.readthedocs.io/en/stable/changes.html#pre-1-0-9-manifest-spoofing-vulnerability for details about the security implications.

IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!
Use "borg key export" to export the key, optionally in printable format.
Write down the passphrase. Store both at safe place(s).

Sauvegarde cinay.xyz → xoyaz.xyz

Le fichier des exclusions

sudo nano /root/.borg/exclusions.xoyaz.xyz
/dev
/proc
/sys
/tmp
/run
/mnt
/media
lost+found
/home/yunohost.multimedia
/home/yunohost.transmission

Créer un bash

sudo -s
nano /root/.borg/borg-backup-xoyaz
#!/bin/sh
#
# Script de sauvegarde.
#
# Envoie les sauvegardes sur un serveur distant, via le programme Borg.
# Les sauvegardes sont chiffrées
#
 
set -e
 
BACKUP_DATE=`date +%Y-%m-%d-%Hh%M`
LOG_PATH=/var/log/borg-backup.log
 
export BORG_PASSPHRASE="`cat ~root/.borg/passphrase`"
export BORG_RSH='ssh -i /root/.ssh/cinay_ed25519'
BORG_REPOSITORY=ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/cinay.xyz
BORG_ARCHIVE=${BORG_REPOSITORY}::${BACKUP_DATE}
 
borg create \
-v --stats --compression lzma,9 \
--exclude-from /root/.borg/exclusions.xoyaz.xyz --exclude-caches \
$BORG_ARCHIVE \
/ \
>> ${LOG_PATH} 2>&1
 
# Nettoyage des anciens backups
# On conserve
# - une archive par jour les 7 derniers jours,
# - une archive par semaine pour les 4 dernières semaines,
# - une archive par mois pour les 6 derniers mois.
 
borg prune \
-v --list --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=6 \
$BORG_REPOSITORY \
>> ${LOG_PATH} 2>&1

Le rendre exécutable

chmod +x /root/.borg/borg-backup-xoyaz

On ajoute la sauvegarde des bases mariaDB sous forme SQL

sudo nano /root/.borg/dumpmysql.sh
#!/bin/bash

# Configuration de base: datestamp e.g. YYYYMMDD
DATE=$(date +"%Y%m%d")

# Dossier où sauvegarder les backups (créez le d'abord!)
BACKUP_DIR="/srv/backup/mysql"

# Identifiants MySQL
MYSQL_USER="root"
MYSQL_PASSWORD=$(cat /etc/yunohost/mysql )
GZIP="$(which gzip)"

# Commandes MySQL (aucune raison de modifier ceci)
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

# Bases de données MySQL à ignorer
SKIPDATABASES="Database|information_schema|performance_schema|mysql"

# Nombre de jours à garder les dossiers (seront effacés après X jours)
RETENTION=14

# ---- NE RIEN MODIFIER SOUS CETTE LIGNE ------------------------------------------
#
# Create a new directory into backup directory location for this date
mkdir -p $BACKUP_DIR/$DATE

# Retrieve a list of all databases
databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`

# Dump the databases in seperate names and gzip the .sql file
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | $GZIP > "$BACKUP_DIR/$DATE/$db.sql.gz"
done

# Remove files older than X days

find $BACKUP_DIR/* -mtime +$RETENTION -delete

Le rendre exécutable

chmod +x /root/.borg/dumpmysql.sh

Programmer les tâches

crontab -e  # ajouter les ligne suivantes en fin de fichier
# Sauvegarde sur serveur de backup distant xoyaz.xyz avec BorgBackup
30 01 * * * /root/.borg/dumpmysql.sh > /dev/null
00 02 * * * /root/.borg/borg-backup-xoyaz > /dev/null

Ajout d’une clé Diffie-Hellman et vérification par SSLlabs

Ajout d’une clé Diffie-Hellman

L’algorithme Diffie-Hellman est un algorithme d’échange de clés, utilisé notamment lors de l’ouverture d’une connexion à un site sécurisé via le protocole SSL/TLS.

Exécuter les instructions suivantes

# passer en mode su
sudo -s
# Générer une clé Diffie Hellman (patienter quelques minutes)
openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048
# Enlever commentaire en début de ligne sur tous les fichiers de configuration nginx
find /etc/nginx/conf.d/ -name "*.conf" -exec sed -i 's/#ssl_dhparam/ssl_dhparam/g' {} \;
# Redémarrer nginx
systemctl restart nginx
# sortie su
exit

Vérification par ssllabs

Ouvrir le lien https://www.ssllabs.com/ssltest/analyze.html?d=cinay.xyz sur un navigateur et patienter…

ssllabs