Création d'un serveur local avec partage de fichiers Samba et backup des données en externe¶
1. Installation de SSH¶
1.1 Installation¶
sudo apt update
sudo apt install openssh-server
1.2 Configuration du serveur ssh¶
/etc/ssh/sshd_config
# Define a diferent port from default port=22
Port 43000
#
# Opening time of TCP session
LoginGraceTime 20s
#
# Never accept root login
PermitRootLogin no
#
# RestrictMode forces config to be respected
RestrictMode yes
#
# Maximum authentification Tries
#
MaxAuthTries 3
#
# Maximum sessions in same time
#
MaxSessions 1
#
# Authentification by public key
#
PubkeyAuthentication yes
#
# AuthorizedKeysFile
# Place for pubkeys from clients
#
AuthorizedKeysFile .ssh/authorized_keys
#
# Authentication by Password
#
PasswordAuthentication no
#
# Question-Answer between server and client to validate authentication
#
ChallengeResponseAuthentication yes
#
# Allow only some users
AllowUsers ktha
# Message of the day
PrintMotd no
# Language of your local machine
AcceptEnv LANG LC_*
1.3 Démarrage du serveur ssh¶
sudo systemctl restart sshd.service
¶
sudo systemctl restart sshd.service
2. Installation de Samba¶
2.1 Installation¶
sudo apt install samba smbclient
2.2 Configuration du serveur¶
!!! note "/etc/samba/smb.conf"
[global]
workgroup = KTHA-CIE
#name resolve order = bcast host
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
username map = /etc/samba/smbusers
security = user
[toncul]
path = /home/$USER/Documents
available = yes
browseable = yes
writeable = yes
valid users = ktha
comment = Serveur de fichiers Ktha Compagnie
2.2.1 Création d'un mot de passe sur le serveur¶
sudo smbpassword -a $USER
2.3 Configuration des clients¶
Il est nécessaire de configurer le WORKGROUP pour les clients, afin qu'ils soient autorisés à se connecter au serveur Samba:
sudo sed -i 's/WORKGROUP/KTHA-CIE/' /etc/samba/smb.conf
3. Configuration du Backup¶
Installation des dépendances¶
sudo apt install tee rsync
3.2 Création du script de sauvegarde¶
3.2.1 Step 1. Créer la clé d'authentification¶
On créé une variable pour le nom de la clé
KEY_PATH=~/.ssh/owner-of-key_rsa
On génère la clé dans le dossier par défaut pour ne pas avoir à indiquer le chemin de la clé avec -i* lors d'une connexion avec ssh
ssh-keygen -b 4096 -t rsa -N '' -f $KEY_PATH
Step 2. Envoyer la clé publique au serveur¶
ssh-copy-id -i $KEY_PATH $USER@$SERVER_IP
3.2.3 Step 2. Mettre le rsync en cron¶
Script à exécuter:
/etc/cron.daily/backup
#!/bin/bash
rsync -ahv --update --delete --info=backup2,copy2,del2,name1,stats2 --log-file="/home/$USER/backup_log/backup.log.$(date +%Y-%m-%d)" /home/$USER/Documents/ -e 'ssh -p 43000 -i $KEY_PATH $USER@176.151.59.186:/home/$USER/Documents'
N'oubliez pas de rendre le script exécutable:
sudo chmod +x /etc/cron.daily/backup
Définition de la tâche cron:
sudo tee -a /etc/cron.d/backup > /dev/null <<EOT
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
00 04 * * * ktha /etc/cron.daily/backup
EOT