Post

Machine Virtuelle "Debian Stretch" ouestline.net (VirtualBox/PC1)

Machine Virtuelle "Debian Stretch" ouestline.net (VirtualBox/PC1)

Machine virtuelle VirtualBox yunohost sur PC1 (ouestline.net)

Créer une machine “Debian Stretch” sur VirtualBox :
Ram : 1024 Mo
Disque : “Debain Stretch.vmdk” 12 Go
Lecteur optique : (Installation à partir d’une image ISO)
Réseau : Pont enp0s31f6

Debian Stretch

Debian 9

  • Serveur virtuel 64 bits VirtualBox : Debian Stretch
  • machine : dbs
  • domaine :
  • root : ytreu49
  • Utilisateur : dbsuser
  • Mot de passe : dbsuser49
  • Adresse IP : 192.168.0.47
  • Accès
    • SSH : **ssh dbsuser@192.168.0.47**
    • SSH + clé : ssh -i ~/.ssh/vbox-dbs-ed25519 dbsuser@192.168.0.47
    • Transfert de fichier : scp -P 55022 -i ~/.ssh/vbox-dbs-ed25519 fichiera fichierb dbsuser@192.168.0.47:/home/dbsuser

Connexion utilisateur
On vérifie l’adresse ip : ip a
On passe en root et on supprime l’utilisateur

1
2
3
su
cd ~
userdel dbsuser  

On autorise l’accès root via ssh (temporairement ,pour installer yunohost)

1
nano /etc/ssh/sshd_config

PermitRootLogin yes # ligne à modifier

On mofifie le réseau pour l’accès ipv6

1
nano /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
11
12
13
14
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp
# This is an autoconfigured IPv6 interface
iface enp0s3 inet6 static
 address 2a01:e34:ee6a:b274::1
 netmask 64
 post-up ip -6 route add default via fe80::224:d4ff:fea6:aa20 dev enp0s3

On redémarre la machine

1
reboot

Accès root via ssh

1
ssh root@192.168.0.47

Réseau

1
ip a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:a1:75:8e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.47/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 2a01:e34:ee6a:b274::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fea1:758e/64 scope link 
       valid_lft forever preferred_lft forever

Supprimer le dossier utilisateur dbsuser

1
rm -r /home/dbsuser

DNS

**A configurer avant d'installer yunohost**

Le domaine ouestline.net pointe sur l’adresse IPV6 2a01:e34:ee6a:b274::1

depuis un poste distant
ping -6 -c5 2a01:e34:ee6a:b274::1
ping -6 -c5 ouestline.xyz

OVH

1
2
3
4
5
6
$TTL 3600
@	IN SOA dns111.ovh.net. tech.ovh.net. (2018110102 86400 3600 3600000 300)
         3600 IN NS     ns111.ovh.net.
         3600 IN NS     dns111.ovh.net.
         3600 IN AAAA   2a01:e34:ee6a:b274::1
*        3600 IN CNAME  ouestline.net.

Yunohost

Yunohost

Installation Yunohost

Lancer le bash et patienter

1
bash <(wget -q -O- https://install.yunohost.org/)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
===============================================================================
You should now proceed with Yunohost post-installation. This is where you will
be asked for :
  - the main domain of your server ;
  - the administration password.

You can perform this step :
  - from the command line, by running 'yunohost tools postinstall' as root
  - or from your web browser, by accessing : 
    - https://192.168.0.47/ (local IP, if self-hosting at home)
    - https://78.235.240.223/ (global IP, if you're on a VPS)

If this is your first time with YunoHost, it is strongly recommended to take
time to read the administator documentation and in particular the sections
'Finalizing your setup' and 'Getting to know YunoHost'. It is available at
the following URL : https://yunohost.org/admindoc
===============================================================================

Lancer la “post-installation” ou lancer

1
yunohost tools postinstall   

Main domain: ouestline.net
Mot de passe administrateur

Créer un utilisateur

1
yunohost user create ouest
1
2
3
fullname: ouest line
mail: ouest@ouestline.net
username: ouest

Certificats let’s encrypt pour le domaine

1
yunohost domain cert-install
1
2
Info : Now attempting install of certificate for domain ouestline.net!
Erreur : Aucun enregistrement DNS 'A' n’a été trouvé pour ouestline.net. Vous devez faire pointer votre nom de domaine vers votre machine pour être en mesure d’installer un certificat Let’s Encrypt ! (Si vous savez ce que vous faites, utilisez --no-checks pour désactiver ces contrôles)

l’accès est uniquement IPV6 !!!

Se connecter en admin via ssh

1
ssh admin@192.168.0.47

OpenSSH avec clés

OpenSSH

connexion avec clé
sur l'ordinateur de bureau Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) nommé vbox-ouestline pour une liaison SSH avec le serveur KVM.

1
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/vbox-ouestline   

Envoyer la clé publique sur le serveur KVM

1
scp ~/.ssh/vbox-ouestline.pub admin@192.168.0.47:/home/admin/

sur le serveur KVM On se connecte

1
ssh admin@192.168.0.47

Copier le contenu de la clé publique dans /home/$USER/.ssh/authorized_keys

1
cd ~

Sur le KVM ,créer un dossier .ssh

1
2
mkdir .ssh
cat /home/$USER/vbox-ouestline.pub >> /home/$USER/.ssh/authorized_keys

et donner les droits

1
chmod 600 /home/$USER/.ssh/authorized_keys

effacer le fichier de la clé

1
rm /home/$USER/vbox-ouestline.pub

Modifier la configuration serveur SSH

1
sudo nano /etc/ssh/sshd_config

Modifier

1
2
3
Port = 55040
PermitRootLogin no
PasswordAuthentication no

session SSH ne se termine pas correctement lors d'un "reboot" à distance
Si vous tentez de redémarrer/éteindre une machine distance par ssh, vous pourriez constater que votre session ne se termine pas correctement, vous laissant avec un terminal inactif jusqu’à l’expiration d’un long délai d’inactivité. Il existe un bogue 751636 à ce sujet. Pour l’instant, la solution de contournement à ce problème est d’installer :

1
  sudo apt install libpam-systemd

cela terminera la session ssh avant que le réseau ne tombe.
Veuillez noter qu’il est nécessaire que PAM soit activé dans sshd.

Ouvrir le port 55040 et fermer le port 22

1
2
sudo yunohost firewall allow TCP 55040
sudo yunohost firewall disallow TCP 22

Relancer openSSH

1
sudo systemctl restart sshd

Accès depuis le poste distant avec la clé privée

1
ssh -p 55040 -i ~/.ssh/vbox-ouestline admin@192.168.0.47

Affichage à la connexion ssh

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

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

Créer le fichier ~/ssh_rc_bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash

get_infos() {
    seconds="$(< /proc/uptime)"
    seconds="${seconds/.*}"
    days="$((seconds / 60 / 60 / 24)) jour(s)"
    hours="$((seconds / 60 / 60 % 24)) heure(s)"
    mins="$((seconds / 60 % 60)) minute(s)"
    
    # Remove plural if < 2.
    ((${days/ *} == 1))  && days="${days/s}"
    ((${hours/ *} == 1)) && hours="${hours/s}"
    ((${mins/ *} == 1))  && mins="${mins/s}"
    
    # Hide empty fields.
    ((${days/ *} == 0))  && unset days
    ((${hours/ *} == 0)) && unset hours
    ((${mins/ *} == 0))  && unset mins
    
    uptime="${days:+$days, }${hours:+$hours, }${mins}"
    uptime="${uptime%', '}"
    uptime="${uptime:-${seconds} seconds}"

   if [[ -f "/sys/devices/virtual/dmi/id/board_vendor" ||
                    -f "/sys/devices/virtual/dmi/id/board_name" ]]; then
	model="$(< /sys/devices/virtual/dmi/id/board_vendor)"
	model+=" $(< /sys/devices/virtual/dmi/id/board_name)"
   fi

   if [[ -f "/sys/devices/virtual/dmi/id/bios_vendor" ||
                    -f "/sys/devices/virtual/dmi/id/bios_version" ]]; then
        bios="$(< /sys/devices/virtual/dmi/id/bios_vendor)"
        bios+=" $(< /sys/devices/virtual/dmi/id/bios_version)"
        bios+=" $(< /sys/devices/virtual/dmi/id/bios_date)"
   fi
}

#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
#ipinfo=$(curl -s iplocality.com) 		# 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`

if [[ $GROUPZ == *irc* ]]; then
ENDSESSION=`cat /etc/security/limits.conf | grep "@irc" | grep maxlogins | awk {'print $4'}`
PRIVLAGED="IRC Account"
else
ENDSESSION="Unlimited"
PRIVLAGED="Regular User"
fi
get_infos
logo=$(figlet "`hostname --fqdn`")
meteo=$(curl fr.wttr.in/$ville?0)
lvm_entet="Sys. fichiers\tTaille\tUtilisé\tDispo\tUti%\tMonté sur"
lvm=$(df -h |grep mapper)    # les montages lvm
sdx=$(df -h |grep "/dev/sd") # les montages /dev/sd
distri=$(lsb_release -sd)
distri+=" $(uname -m)"

echo -e "
\e[1;31m$logo
\e[1;35m   \e[1;37mHostname \e[1;35m= \e[1;32m`hostname`
\e[1;35m \e[1;37mWired IpV4 \e[1;35m= \e[1;32m`ip addr show $iplink | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1`
\e[1;35m \e[1;37mWired IpV6 \e[1;35m= \e[1;32m`ip addr show $iplink | grep -E 'inet6' |grep -E 'scope link' | awk '{print $2}' | cut -d/ -f1`
\e[1;35m     \e[1;37mKernel \e[1;35m= \e[1;32m`uname -r`
\e[1;35m    \e[1;37mDistrib \e[1;35m= \e[1;32m$distri
\e[1;35m     \e[1;37mUptime \e[1;35m= \e[1;32m`echo $uptime`
\e[1;35m       \e[1;37mBios \e[1;35m= \e[1;32m`echo $bios`
\e[1;35m      \e[1;37mBoard \e[1;35m= \e[1;32m`echo $model`
\e[1;35m        \e[1;37mCPU \e[1;35m= \e[1;32m`echo $cpuname`
\e[1;35m \e[1;37mMemory Use \e[1;35m= \e[1;32m`free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'`
\e[1;35m   \e[1;37mUsername \e[1;35m= \e[1;32m`whoami`
\e[1;35m   \e[1;37mSessions \e[1;35m= \e[1;32m`who | grep $USER | wc -l`
\e[1;35m\e[1;37mPublic IpV4 \e[1;35m= \e[1;32m`echo $publicip`
\e[1;35m\e[1;37mPublic IpV6 \e[1;35m= \e[1;32m`ip addr show $iplink | grep -m 1 'inet6\b'  | awk '{print $2}' | cut -d/ -f1`
\e[1;35m\e[1;96m$lvm_entet\e[1;35m\e[1;49m
\e[1;35m\e[1;33m$sdx
\e[1;35m\e[1;33m$lvm
\e[1;35m\e[1;32m$meteo
\e[1;0m
"

Le rendre exécutable

1
chmod +x ~/ssh_rc_bash

Recréer motd

1
sudo rm /etc/motd && sudo nano /etc/motd  
1
2
3
4
5
6
7
8
9
     _       _     _                       _       _               _ 
  __| | ___ | |__ (_) __ _  _ _  ___ __ __(_) _ _ | |_  _  _  ___ | |
 / _` |/ -_)| '_ \| |/ _` || ' \|___|\ V /| || '_||  _|| || |/ -_)| |
 \__,_|\___||_.__/|_|\__,_||_||_|     \_/ |_||_|   \__| \_,_|\___||_|
                        _    _  _                           _        
    ___  _  _  ___  ___| |_ | |(_) _ _   ___     _ _   ___ | |_      
   / _ \| || |/ -_)(_-<|  _|| || || ' \ / -_) _ | ' \ / -_)|  _|     
   \___/ \_,_|\___|/__/ \__||_||_||_||_|\___|(_)|_||_|\___| \__|     
                                                                     

Déconnexion puis connexion

PC1 - Service pour démarrer la machine virtuelle

On va créer un service utilisateur pour démaarer la machine virtuelle à la connexion utilisateur
On place l’unit propre à un utilisateur dans le dossier ~/.config/systemd/user, créer le dossier

mkdir -p ~/.config/systemd/user

Le fichier unit debian-virtuel.service

nano ~/.config/systemd/user/debian-virtuel.service

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Debian Stretch vm service
After=network.target vboxdrv.service

[Service]
ExecStart=/usr/bin/vboxheadless -s 'Debian Stretch'
ExecStop=/usr/bin/vboxmanage controlvm 'Debian Stretch' poweroff

[Install]
WantedBy=default.target

Une fois ce fichier placé au bon endroit, il suffit de reloader systemd pour ensuite démarrer le service:

1
2
3
4
systemctl --user daemon-reload
systemctl start --user debian-virtuel.service
systemctl enable --user debian-virtuel.service
systemctl status --user debian-virtuel.service

Certificats SSL letsencrypt (acme)

SSL Letsencrypt

Prérequis

1
sudo apt install socat # prérequis

Installation gestionnaire des certificats Let’s Encrypt

1
2
3
4
cd ~
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install 

Se déconnecter puis se reconnecter pou la prise en compte

Se connecter sur l’api OVH pour les paramètres (clé et secret)

1
2
export OVH_AK="votre application key"
export OVH_AS="votre application secret"

Domaine ouestline.xyz

1
acme.sh --dns dns_ovh --issue --keylength ec-384 -d 'ouestline.net' -d '*.ouestline.net'

Les certificats

1
2
3
4
[Sat Mar 28 12:16:19 CET 2020] Your cert is in  /home/admin/.acme.sh/ouestline.net_ecc/ouestline.net.cer 
[Sat Mar 28 12:16:19 CET 2020] Your cert key is in  /home/admin/.acme.sh/ouestline.net_ecc/ouestline.net.key 
[Sat Mar 28 12:16:19 CET 2020] The intermediate CA cert is in  /home/admin/.acme.sh/ouestline.net_ecc/ca.cer 
[Sat Mar 28 12:16:19 CET 2020] And the full chain certs is there:  /home/admin/.acme.sh/ouestline.net_ecc/fullchain.cer 

On ne peut pas installer des certificats let’s encrypt sans adresse IPV4 ,erreur Aucun enregistrement DNS 'A' n’a été trouvé pour ouestline.net
Solution

Pour contourner le problème , on va créer un dossier de la forme aaaammdd.hhmmss-letsencrypt (en mode su)

1
mkdir -p /etc/yunohost/certs/ouestline.net-history/20200328.131000-letsencrypt

Puis on va créer les liens

Les liens pour les certificats

1
2
sudo ln -s /home/admin/.acme.sh/ouestline.net_ecc/ouestline.net.key /etc/yunohost/certs/ouestline.net-history/20200328.131000-letsencrypt/key.pem     # cert key
sudo ln -s /home/admin/.acme.sh/ouestline.net_ecc/fullchain.cer /etc/yunohost/certs/ouestline.net-history/20200328.131000-letsencrypt/crt.pem   # full chain certs

Enfin on va informer yunohost par un lien que l’on utilise des certificats let’s encrypt

1
2
sudo rm /etc/yunohost/certs/ouestline.net # efface le lien certificat non signé
sudo ln -s /etc/yunohost/certs/ouestline.net-history/20200328.131000-letsencrypt /etc/yunohost/certs/ouestline.net # Création lien sur les certificats let's encrypt 

Structure yunohost pour les certificats

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/etc/yunohost/certs/
├── ouestline.net -> /etc/yunohost/certs/ouestline.net-history/20200328.131000-letsencrypt
├── ouestline.net-history
│   ├── 20200328.094607-selfsigned
│   │   ├── ca.pem -> /etc/ssl/certs/ca-yunohost_crt.pem
│   │   ├── crt.pem
│   │   ├── key.pem
│   │   └── openssl.cnf
│   └── 20200328.131000-letsencrypt
│       ├── crt.pem -> /home/admin/.acme.sh/ouestline.net_ecc/fullchain.cer
│       └── key.pem -> /home/admin/.acme.sh/ouestline.net_ecc/ouestline.net.key
└── yunohost.org
    ├── ca.pem
    ├── crt.pem
    └── key.pem

Redémarrer la machine

1
sudo systemctl reboot

SSL + Diffie-Hellmann + Entêtes

SSL

Toutes les commandes se font en mode su

Générer Diffie-Hellman

1
openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048

Modification fichier de configuration /etc/nginx/conf.d/ouestline.net.conf

  • Décommenter la ligne ssl_dhparam /etc/ssl/private/dh2048.pem;

Le fichier /etc/nginx/conf.d/ouestline.net.conf après les modifications

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 80;
    listen [::]:80;
    server_name ouestline.net;

    access_by_lua_file /usr/share/ssowat/access.lua;

    include /etc/nginx/conf.d/ouestline.net.d/*.conf;

    location /yunohost/admin {
        return 301 https://$http_host$request_uri;
    }

    location /.well-known/autoconfig/mail/ {
        alias /var/www/.well-known/ouestline.net/autoconfig/mail/;
    }

    access_log /var/log/nginx/ouestline.net-access.log;
    error_log /var/log/nginx/ouestline.net-error.log;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name ouestline.net;

    ssl_certificate /etc/yunohost/certs/ouestline.net/crt.pem;
    ssl_certificate_key /etc/yunohost/certs/ouestline.net/key.pem;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;

    
    # As suggested by Mozilla : https://wiki.mozilla.org/Security/Server_Side_TLS and https://en.wikipedia.org/wiki/Curve25519
    ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
    ssl_prefer_server_ciphers on;

    # Ciphers with intermediate compatibility
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=nginx-1.6.2&openssl=1.0.1t&hsts=yes&profile=intermediate
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';

    # Uncomment the following directive after DH generation
    # > openssl dhparam -out /etc/ssl/private/dh2048.pem -outform PEM -2 2048
    ssl_dhparam /etc/ssl/private/dh2048.pem;
    

    # Follows the Web Security Directives from the Mozilla Dev Lab and the Mozilla Obervatory + Partners
    # https://wiki.mozilla.org/Security/Guidelines/Web_Security
    # https://observatory.mozilla.org/ 
    
    more_set_headers "Content-Security-Policy : upgrade-insecure-requests";
    more_set_headers "Content-Security-Policy-Report-Only : default-src https: data: 'unsafe-inline' 'unsafe-eval'";
    more_set_headers "X-Content-Type-Options : nosniff";
    more_set_headers "X-XSS-Protection : 1; mode=block";
    more_set_headers "X-Download-Options : noopen";
    more_set_headers "X-Permitted-Cross-Domain-Policies : none";
    more_set_headers "X-Frame-Options : SAMEORIGIN";


    # Disable gzip to protect against BREACH
    # Read https://trac.nginx.org/nginx/ticket/1720 (text/html cannot be disabled!)
    gzip off;

    access_by_lua_file /usr/share/ssowat/access.lua;

    include /etc/nginx/conf.d/ouestline.net.d/*.conf;

    include /etc/nginx/conf.d/yunohost_admin.conf.inc;
    include /etc/nginx/conf.d/yunohost_api.conf.inc;

    access_log /var/log/nginx/ouestline.net-access.log;
    error_log /var/log/nginx/ouestline.net-error.log;

Vérifier et relancer nginx

1
2
nginx -t
systemctl restart nginx

Vérifier ssl sur le lien https://ouestline.net

SSL
SSL

Ajuster la DNS (messagerie)

Ajout MX ,spf,dmarc et dkim (gestion Mail)
Ajout CAA pour lets’t encrypt

Sur une dns ovh , les ajouts

1
2
3
                       IN MX     10 ouestline.net.
_dmarc                 IN TXT    "v=DMARC1;p=none;"
mail._domainkey        IN TXT    ( "v=DKIM1;h=sha256;k=rsa;p=MKKKJJJ........hgFRD888jk;" )

pour récupérer les paramètres à ajouter

1
yunohost domain dns-conf ouestline.net

Maintenance yunohost

Nextcloud

1
2
3
4
5
6
7
8
9
10
 Avertissements de sécurité & configuration

Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.
Il y a quelques avertissements concernant votre configuration.

    MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pour plus de détails, lisez la page de documentation à ce sujet

Merci de consulter les guides d'installation ↗ et de vérifier les erreurs ou avertissements des logs.

Vérifier la sécurité de votre Nextcloud grâce à notre scan de sécurité ↗	

Corrections MariaDb/nextcloud

Ouvrir 2 terminaux sur le site
Respecter l’ordre des opérations

→ PREMIER TERMINAL

mysql -uroot -p$(cat /etc/yunohost/mysql )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 76
Server version: 10.1.44-MariaDB-0+deb9u1 Debian 9.11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'innodb_file_format';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| innodb_file_format | Antelope |
+--------------------+----------+
1 row in set (0.01 sec)

MariaDB [nextcloud]> SET GLOBAL innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)

MariaDB [nextcloud]> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> quit

→ SECOND TERMINAL

ATTENTION /usr/bin/php7.3 est utilisé pour nextcloud

On passe en mode maintenance

1
2
cd /var/www/nextcloud
sudo -u nextcloud /usr/bin/php7.3 occ maintenance:mode --on

Maintenance mode enabled

Redémarrer mysql suite aux manipulations effectuées dans le premier terminal

1
systemctl restart mysqld

→ PREMIER TERMINAL

1
mysql -uroot -p$(cat /etc/yunohost/mysql )
1
2
3
4
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> quit

Pour éviter l’ERREUR

1
2
An exception occurred while executing ‘ALTER TABLE [TABLE_NAME] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;’:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
1
mysql -uroot -p$(cat /etc/yunohost/mysql ) nextcloud
1
2
3
4
5
6
7
8
MariaDB [nextcloud]> set global innodb_large_prefix=on;
Query OK, 0 rows affected (0.00 sec)

MariaDB [nextcloud]> set global innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)

MariaDB [nextcloud]> quit
Bye

→ SECOND TERMINAL

1
sudo -u nextcloud /usr/bin/php7.3 occ config:system:set mysql.utf8mb4 --type boolean --value="true"    
1
2
3
Nextcloud is in maintenance mode - no apps have been loaded

System config value mysql.utf8mb4 set to boolean true
1
sudo -u nextcloud /usr/bin/php7.3 occ maintenance:repair # patienter

désactiver la maintenance

1
sudo -u nextcloud /usr/bin/php7.3 occ maintenance:mode --off

Maintenance mode disabled

Correction tâche cron

La tâche cron n’est jamais exécuté (normalement tous les 5 minutes) car elle n’existe pas

1
2
3
4
5
6
7
8
9
10
 Avertissements de sécurité & configuration

Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.
Il y a quelques erreurs concernant votre configuration.

    Dernière tâche de fond a fonctionné il y a Il y a 1 heure. Quelque chose s'est mal passé. Vérifier les paramètres des tâches de fond

Merci de consulter les guides d'installation ↗ et de vérifier les erreurs ou avertissements des logs.

Vérifier la sécurité de votre Nextcloud grâce à notre scan de sécurité ↗	

Créer la tâche dans un “scheduleur” cron

1
2
sudo -s
crontab -u nextcloud -e

Ajouter

1
*/5 * * * * /usr/bin/php7.3 -f /var/www/nextcloud/cron.php > /dev/null 2>&1

Vérifier sur le site nextcloud

Cet article est sous licence CC BY 4.0 par l'auteur.