OVH vps789461 (1 vCore/2GoRam/20GoSSD) Debian Buster
Serveur VPS OVH
Debian 10
1
2
3
4
5
6
7
8
9
10
11
12
| Debian 10 (Buster) (en version 64 bits)
PARAMETRES D'ACCES:
L'adresse IPv4 du VPS est : 51.77.151.245
L'adresse IPv6 du VPS est : 2001:41d0:0404:0200::01cf
Le nom du VPS est : vps789461.ovh.net
Le compte administrateur suivant a été configuré sur le VPS :
Nom d'utilisateur : root
Mot de passe : LJpgsV0N
|
Connexion SSH en “root”
Réseau
Créer un bash pour désactiver l’initialisation réseau par le cloud sur le VPS OVH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:f5:2d:0e brd ff:ff:ff:ff:ff:ff
inet 51.77.151.245/32 brd 51.77.151.245 scope global dynamic eth0
valid_lft 86242sec preferred_lft 86242sec
inet6 2001:41d0:404:200::1cf/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fef5:2d0e/64 scope link
valid_lft forever preferred_lft forever
|
Droits et exécution
1
| chmod +x initres.sh && ./initres.sh
|
Patienter quelques minutes avant la reconnexion…
Se connecter en root via SSH
Vérifier le réseau ip a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:fc:9a:0d brd ff:ff:ff:ff:ff:ff
inet 51.77.151.245/32 brd 51.77.151.245 scope global dynamic eth0
valid_lft 86360sec preferred_lft 86360sec
inet6 2001:41d0:401:3200::d48/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fefc:9a0d/64 scope link
valid_lft forever preferred_lft forever
|
Locales fr UTF8 : dpkg-reconfigure locales
(facultatif)
Fuseau Europe/Paris : dpkg-reconfigure tzdata
(facultatif)
domaine wgvpn.space
Zone dns OVH
1
2
3
4
5
6
| $TTL 3600
@ IN SOA dns20.ovh.net. tech.ovh.net. (2020022809 86400 3600 3600000 300)
IN NS ns20.ovh.net.
IN NS dns20.ovh.net.
IN A 51.77.151.245
IN AAAA 2001:41d0:404:200::1cf
|
Création utilisateur
Utilisateur userspace
1
| useradd -m -d /home/userspace/ -s /bin/bash userspace
|
Mot de passe userspace
Visudo pour les accès root via utilisateur userspace
1
| echo "userspace ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
Changer le mot de passe root
Mise à jour et reboot
1
| apt update && apt -y upgrade && systemctl reboot
|
OpenSSH, clé et script
connexion avec clé
sur l'ordinateur de bureau
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) nommé kvm-cinay pour une liaison SSH avec le serveur KVM.
1
| ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/kvm-vps789461
|
Envoyer la clé publique sur le serveur KVM
1
| scp ~/.ssh/kvm-vps789461.pub userspace@51.77.151.245:/home/userspace/
|
sur le serveur KVM
On se connecte
1
| ssh userspace@51.77.151.245
|
Copier le contenu de la clé publique dans /home/$USER/.ssh/authorized_keys
Sur le KVM ,créer un dossier .ssh
1
2
3
4
| mkdir .ssh
cat $HOME/kvm-vps789461.pub >> $HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys # et donner les droits
rm $HOME/kvm-vps789461.pub # effacer le fichier de la clé
|
Modifier la configuration serveur SSH
1
| sudo nano /etc/ssh/sshd_config
|
Modifier
1
2
3
| Port 55039
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 # installé par défaut sur debian buster
|
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.
Relancer openSSH
1
| sudo systemctl restart sshd
|
Accès depuis le poste distant avec la clé privée
1
| ssh -p 55039 -i ~/.ssh/kvm-vps789461 userspace@51.77.151.245
|
Installer utilitaires
1
| sudo apt install rsync curl tmux jq figlet git dnsutils tree -y
|
Scripts motd et ssh_rc_bash
Motd
1
| sudo nano /etc/motd # supprimer le contenu avant de copier/coller le contenu ci-dessous
|
1
2
3
4
5
6
7
8
| ____ ___ ___ _ _ __ _
__ __ _ __ ___|__ |( _ )/ _ \| | | / / / |
\ V /| '_ \(_-< / / / _ \\_, /|_ _|/ _ \| |
\_/ | .__//__/ /_/ \___/ /_/ |_| \___/|_|
__ __ __ _|_| __ __ _ __ _ _ ___ _ __ __ _ __ ___
\ V V // _` |\ V /| '_ \| ' \ _ (_-<| '_ \/ _` |/ _|/ -_)
\_/\_/ \__, | \_/ | .__/|_||_|(_)/__/| .__/\__,_|\__|\___|
|___/ |_| |_|
|
Script ssh_rc_bash
ATTENTION!!! Les scripts sur connexion peuvent poser des problèmes pour des appels externes autres que ssh
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
| #!/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)
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;33m$sdx
\e[1;0m
"
|
1
2
| chmod +x ssh_rc_bash # rendre le bash exécutable
./ssh_rc_bash # exécution
|
Hostname
1
| sudo hostnamectl set-hostname wgvpn.space
|
Environnement bureau XFCE
Installer le package TightVNC disponible dans le dépôt officiel debian .
1
| sudo apt install xfce4 xfce4-goodies # goodies pour pouvoir notamment pour la langue
|
Pour avoir xfce en français ajouter les 3 lignes suivantes au fichier /etc/profile
1
2
3
| export LANGUAGE=fr_FR.utf8
export LANG=fr_FR.utf8
export LC_ALL=fr_FR.utf8
|
La prise en compte sera effective après redémarrage
Serveur vnc
Installer le serveur vnc
1
| sudo apt install vnc4server
|
Lancer le serveur vnc pour générer un mot de passe
1
2
3
4
5
6
7
8
9
10
11
12
| You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'wgvpn.space:1 (userspace)' desktop at :1 on machine wgvpn.space
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/userspace/.vnc/wgvpn.space:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/userspace/.vnc/passwd :1 to connect to the VNC server.
|
Si vous avez vu cette option “voir uniquement le mot de passe (view-only password)”, cela signifie que vous n’avez aucun contrôle sur le serveur distant. Vous devrez choisir “n”, afin d’avoir un accès complet.
Tout d’abord, nous devons indiquer à notre serveur VNC quelles commandes effectuer lors de son démarrage. Ces commandes sont situées dans un fichier de configuration appelé xstartup dans le dossier .vnc sous votre répertoire personnel.
Le script de démarrage a été créé lorsque vous avez exécuté vncserver à l’étape précédente, mais nous avons besoin de modifier certaines des commandes pour le bureau Xfce.
Lorsque VNC est configuré pour la première fois, il lance une instance de serveur par défaut sur le port 5901. Ce port s’appelle un port d’affichage et est désigné par VNC comme :1. VNC peut lancer plusieurs instances sur d’autres ports d’affichage, comme :2,:3, etc. Lorsque vous travaillez avec des serveurs VNC, rappelez-vous que :X est un port d’affichage qui fait référence à 5900+X.
Pour modifier la configuration du serveur VNC, nous devrons d’abord arrêter l’instance du serveur VNC en cours d’exécution sur le port 5901.
1
| Killing Xtigervnc process ID 3509... success!
|
Avant de commencer à configurer le nouveau fichier xstartup, sauvegardons l’original (Si EXISTANT).
1
| mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
|
Le fichier xstartup
Collez ces commandes dans le fichier afin qu’elles soient effectuées automatiquement chaque fois que vous démarrez ou redémarrez le serveur VNC, puis enregistrez et fermez le fichier.
1
2
3
| #!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
|
La première commande du fichier, xrdb $HOME/.Xresources, indique au framework GUI de VNC de lire le fichier .Xresources de l’utilisateur du serveur.
.Xresources est l’endroit où un utilisateur peut apporter des modifications à certains paramètres du bureau graphique, comme les couleurs des terminaux, les thèmes du curseur et le rendu des polices.
La seconde commande indique simplement au serveur de lancer l’environnement graphique (xfce,gnome,lxde,etc…), où vous trouverez tous les logiciels graphiques dont vous avez besoin pour gérer votre serveur de façon confortable.
accorder des privilèges exécutables
1
| chmod +x ~/.vnc/xstartup
|
Maintenant, redémarrez le serveur VNC pour le test.
1
2
3
4
5
6
7
| New 'wgvpn.space:1 (userspace)' desktop at :1 on machine wgvpn.space
Starting applications specified in /home/userspace/.vnc/xstartup
Log file is /home/userspace/.vnc/wgvpn.space:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/userspace/.vnc/passwd :1 to connect to the VNC server.
|
Tester le bureau Vnc depuis un poste client
Dans cette étape, nous testerons la connectivité de votre serveur VNC.
Tout d’abord, nous devons créer une connexion SSH sur votre ordinateur local qui remplace de manière sécurisée la connexion localhost pour VNC.
Vous pouvez le faire via le terminal sous Linux ou OS X avec la commande suivante.
1
| ssh -l utilisateur -L 55444:localhost:5901 192.168.1.10 sans clé SSH
|
- c’est l’option
L
(majuscule) qui permet de créer le tunnel ssh
- 55444 sera le nouveau port à utiliser sur sa machine locale
- localhost dans ce cas-ci est la machine à atteindre à partir du serveur distant 192.168.1.10
- 5901 est le port de la machine à atteindre pour la connexion VNC (écran :1), dans ce cas on travail sur localhost car c’est la même machine
- 192.168.1.10 est l’IP de la machine distante ayant sshd (elle pourrait être différente de la machine à atteindre dans un autre cas)
Ensuite, vous pouvez utiliser un client VNC pour tenter une connexion au serveur VNC sur localhost:55444, vous serez invité à vous authentifier.
1
| vncviewer localhost:55444
|
Cas d’un serveur avec clé authentification SSH
1
| ssh -p 55039 -i /home/yannick/.ssh/kvm-vps789461 -L 55444:localhost:5901 -N -f -l userspace 51.77.151.245
|
- Le commutateur
-L
précise les liaisons portuaires. Dans ce cas, nous relions le port 5901 de la connexion à distance au port 55444 de votre machine locale.
- Le commutateur
-C
permet la compression, tandis
- Le commutateur
-N
indique à ssh que nous ne voulons pas exécuter une commande à distance.
- Le commutateur
-l
spécifie le nom de la connexion distante.
Depuis le poste qui a ouvert la session SSH pour le serveur vnc
1
| vncviewer localhost:550444
|
Créer un service vnc sur le serveur
Nous configurons le serveur VNC en tant que service système pour démarrer, arrêter et redémarrer
Créer un nouveau fichier d’unité appelé /etc/systemd/system/vncserver@.service
1
| sudo nano /etc/systemd/system/vncserver@.service
|
Copiez et collez le suivant. Assurez-vous de modifier User et PIDFILE pour correspondre à votre nom d’utilisateur.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| [Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=userspace
Group=userspace
WorkingDirectory=/home/userspace
PIDFile=/home/userspace/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
|
- La commande
ExecStartPre
arrête VNC si elle est déjà en cours d’exécution.
- La commande
ExecStart
lance VNC et définit la profondeur de couleur sur 24 bits avec une résolution de 1280x800. Vous pouvez également modifier ces options de démarrage pour répondre à vos besoins.
Enregistrez et fermez le fichier.
Informer le système du nouveau fichier.
1
| sudo systemctl daemon-reload
|
Activer le fichier système
1
| sudo systemctl enable vncserver@1.service
|
Arrêter l’instance actuelle du serveur VNC (si elle est toujours en cours d’exécution).
Ensuite, démarrer le service
1
| sudo systemctl start vncserver@1
|
Vérifier l’état avec cette commande:
1
| sudo systemctl status vncserver@1
|
1
2
3
4
5
6
7
8
| ● vncserver@1.service - Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-03-26 16:15:25 CET; 2min 8s ago
Process: 469 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS
Process: 532 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCC
Main PID: 540 (Xtigervnc)
Tasks: 53 (limit: 2313)
Memory: 204.8M
|
Votre serveur VNC sera désormais disponible après redémarrage de la machine.
Connexion/Déconnexion vnc depuis un poste client
Ouvrir une fenêtre “terminal”
Connexion
Etablir le tunnel ssh sécurisé
1
| ssh -p 55039 -i /home/yannick/.ssh/kvm-vps789461 -L 55444:localhost:5901 -N -f -l userspace 51.77.151.245
|
-L
précise les liaisons portuaires. Dans ce cas, nous relions le port 5901 de la connexion à distance au port 55444 de votre machine locale.
-C
permet la compression, tandis
-N
indique à ssh que nous ne voulons pas exécuter une commande à distance.
-l
spécifie le nom de la connexion distante.
Puis lancer la connexion VNC
1
| vncviewer localhost:55444
|
Déconnexion
Après fermeture de la session vnc, il faut supprimer le tunnel ssh
Changer le mot de passe
Une fois connecté, il suffit de modifier votre mot de passe, grâce à la commande vncpasswd
1
2
3
4
| Using password file ~/.vnc/passwd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n=
|
Entrez deux fois votre nouveau mot de passe (attention, pour des raisons de sécurité le mot de passe n’apparait pas à l’écran).
Puis répondez ‘n’ à la question Would you like to enter a view-only password, pour dire que vous ne voulez pas de mot de passe “lecture seul”.
Voila votre mot de passe VNC à été modifé.
Parefeu - UFW
Installation
Status
1
2
| sudo ufw status verbose
Status: inactive
|
Les règles
1
2
| sudo ufw allow 55039/tcp # port SSH , 55039
sudo ufw allow DNS # port 53 tcp et udp
|
Activer le parefeu
1
2
| Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
|
Status
1
| sudo ufw status verbose
|
1
2
3
4
5
6
7
8
9
10
11
| Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
55039/tcp ALLOW IN Anywhere
53 (DNS) ALLOW IN Anywhere
55039/tcp (v6) ALLOW IN Anywhere (v6)
53 (DNS (v6)) ALLOW IN Anywhere (v6)
|
Sauvegarde BorgBackup
Préparation de la machine à sauvegarder
On se connecte sur la machine et on passe en mode su
Installer borgbackup
Créer un jeu de clé sur machine à sauvegarder (wgvpn.space)
Créer un utilisateur borg (sans home) dédié aux sauvegardes par BorgBackup :
Générer un jeu de clé sur /root/.ssh
1
2
| mkdir -p /root/.ssh
ssh-keygen -t ed25519 -o -a 100 -f /root/.ssh/wgvpn_space_ed25519
|
Le jeu de clé
1
2
| ls /root/.ssh
wgvpn_space_ed25519 wgvpn_space_ed25519.pub
|
Autoriser utilisateur borg à exécuter /usr/bin/borg uniquement
1
| echo "borg ALL=NOPASSWD: /usr/bin/borg" >> /etc/sudoers
|
Ajout clé publique au serveur backup xoyaz.xyz
Pour une connexion via ssh vous devez ajouter la clé publique wgvpn_space_ed25519.pub du serveur client wgvpn.space au fichier ~/.ssh/authorized_keys du serveur backup xoyaz.xyz
Se connecter au serveur backup xoyaz.xyz depuis un terminal autorisé
1
2
3
| ssh usernl@5.2.79.107 -p 55036 -i /home/yannick/.ssh/OVZ-STORAGE-128 # connexion SSH serveur backup depuis PC1
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/wgvpn_space_ed25519.pub de la machine à sauvegarder cinay.xyz ) dans ce terminal, et presser [Ctrl]+[D] pour valider.
Test depuis le serveur client wgvpn.space (c’est lui qui possède la clé privée).
Si parefeu avec les sorties bloquées sur wgvpn.space , il faut ouvrir en sortie le port TCP 55036.
AU PREMIER passage une question est posée , saisir oui ou yes
1
2
| sudo -s
ssh -p 55036 -i /root/.ssh/wgvpn_space_ed25519 borg@xoyaz.xyz
|
1
2
3
4
5
6
7
8
9
10
11
12
| 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-042stab140.1 #1 SMP Thu Aug 15 13:32:22 MSK 2019 x86_64
_ _
| |__ __ _ __ | |__ _ _ _ __
| '_ \/ _` |/ _|| / /| || || '_ \
|_.__/\__,_|\__||_\_\ \_,_|| .__/
|_|
Last login: Sun Sep 15 15:13:35 2019 from 2a01:e34:eef2:570:2c83:bd30:365a:ff54
$
|
saisir exit
pour sortir
NOTE : /srv/data/borg-backups est le home de l’utilisateur borg sur le serveur backup xoyaz.xyz
Création dépôt et lancement des sauvegardes depuis la machine à sauvegarder
machine cliente wgvpn.space
On se connecte sur la machine et on passe en mode su
Création du dépôt distant sur le serveur backup xoyaz.xyz (A FAIRE UNE SEULE FOIS)
1
2
| export BORG_RSH='ssh -i /root/.ssh/wgvpn_space_ed25519' # ce n'est pas la clé par défaut id_rsa
borg init --encryption=repokey-blake2 ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/wgvpn.space
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Enter new passphrase:
Enter same passphrase again:
Do you want your passphrase to be displayed for verification? [yN]:
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/wgvpn.space
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).
|
Sauvegarder la “passphrase” dans un fichier pour une procédure automatique
1
2
| mkdir -p /root/.borg
nano /root/.borg/passphrase
|
Générer une sauvegarde d’un dossier local vers le dépôt distant pour test (facultatif)
1
| borg create ssh://borg@xoyize.xyz:55029/srv/ssd-two/borg-backups/wgvpn.space::2019-01-11 /home/yanfi
|
1
| Enter passphrase for key ssh://borg@xoyize.xyz:55029/srv/ssd-two/borg-backups/wgvpn.space:
|
Automatiser la procédure de sauvegarde pour le client wgvpn.space
script de sauvegarde (notez l’usage de borg prune pour supprimer les archives trop anciennes)
1
| nano /root/.borg/borg-backup
|
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
| #!/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/wgvpn_space_ed25519'
BORG_REPOSITORY=ssh://borg@xoyaz.xyz:55036/srv/data/borg-backups/wgvpn.space
BORG_ARCHIVE=${BORG_REPOSITORY}::${BACKUP_DATE}
borg create \
-v --stats --compression lzma,9 \
$BORG_ARCHIVE \
/bin /boot /etc /home /lib /lib64 /opt /root /sbin /srv /usr /var \
>> ${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
1
| chmod +x /root/.borg/borg-backup
|
Programmer la tâche à 2h40 du matin
1
2
| # Sauvegarde sur distant avec BorgBackup
40 02 * * * /root/.borg/borg-backup > /dev/null
|