_
~ DAMOLAB - Les tambouilles textes, teks et hacks ~
"Les amis sont des compagnons de voyage, qui nous aident à avancer sur le chemin d'une vie plus heureuse." - Pythagore
DAMOLAB (#TAGS) _./._ XBNF blog _./._ Blog _./._

Mettre en place un serveur portable de backup avec SAMBA sur une Linux Mint 17.3


| FR | par DAMO | | 22/02/2022 16h00 | (last update 21/12/2025 18h09) | Commentaires |
#LINUX #DAMOLAB #USB-BOOT #BACKUP #SAMBA #ARCHITECTURE
Utilisation d'un vieux PC/laptop 32bits pour réaliser un serveur de backup sur un disque externe USB
|


[New 20250514] la partie backup fait l'objet de cet autre post.

Nous appelerons tromblon un vieux PC/laptop (en 32bits), l'idée de cette article est faire le bilan des différents
techniques autour du backup des données : samba, booteurs, distributions lives, commandes pratiques, ...

Nous appelerons distro la distribution Live.

/!\\ les aspects securité ne sont pas creusé dans ce billet, juste le cloisonnement à votre réseau LAN interne avec samba.

1) Utilisation d'un vieux tromblon



Sur du vieux matériel, on peut avoir, ces cas de figure :
  • stockage interne H.S. (cad plus IDE, DD, ...) mais un USB OK :
    • un démarrage de la distro live toujours possible depuis un stockage externe : USB, DVD/CDROM, ...
  • à l'inverse, un stockage interne mais pas d'USB
    • le un dongle USB>IDE permet de copier des données pour une install de distro
  • si absence d'affichage (pas d'écran, ni carte graphique) :
    • le booter accessible avec un port série, un cable USB>série et un soft type console " term "
  • absence ou disfonctionnement d'un driver selon la distro


Le principale avantage de réutiliser du vieux matériel est économique à condition de bien étudier vos options.
Les inconvénients sont possiblement : fragilité, consommateur en énergie, lenteur, incompatilité, ...

Toutefois, en cas de problème vous devrez prendre des actions comme hacheter ou empreinter un gros disque-dur,
clef USB en attendant de le remplacer par une belle solution de backup.

2) Considérations sur la résiliance des données



L'utilisation d'un tromblon est particulièrement adapté si l'objectif est juste de mettre à disposition des données non critiques avec un temps d'accès raisonnable (musiques, documents non personnels, ...).
Cad qu'en cas de crash, vous avez un backup de ces données, pas de regrêts en cas de perte, ...

Si l'idée est d'avoir un répliquat des données volumineuses, plus critique en terme d'importance, il faut garder ceci en tête :
  • plus long est le temps d'utilisation du tromblon, plus le risque de la double panne peut se produire (source et backup)
  • pour des backup de données plus critiques, il est donc préférable d'éteindre le tromblon lorsque la sauvegarde est réalisée et de vérifier les données après allumage (voir <tests de consistance>)
  • pour des données plus critiques et fréquement backupés, préférer les stockages type flash (cartes mémoires, clefs USB, ...)
  • un tromblon peut être rangé dans un grenier mais accessible par le réseau, les clefs USB pour transporter les données.


Un crash doit être anticipé, en effet, qu'il s'agisse des données de la source ou du backup,
il faut toujours prévoire une solution de repli afin d'avoir toujours un répliquat.

Mettre en balance selon la fréquence d'utilisation des données, leur volume, le temps d'accès, ...

Lire résiliance des données.


3) Les distributions ancéstrales en Live



Un certain nombre de distributions linux sont disponibles en live cad qu'elles se chargent en mémoire,
avec un desktop, possiblité d'installer des paquets en mémoire, ...

En voici quelques une :
  • Linux Mint
  • Damned Small Linux
  • puppy Linux



4) Booteurs depuis une clef USB



--------

Terminal et port série

Le port série (ou RS-232) permettait d'avoir une connectivité entre un terminal
(ecran clavier) et une machine distante (à travers un modem, téléphone, direct).

Sur un tromblon, un port série permet d'y brancher une console textuelle appelée terminale.

--------

5) Distributions Live




5.1) Distribution Linux Mint


       
5.1.1) Exemple d'installation d'une Mint 17.3/32bits depuis une clef USB


Télécharger l'image linuxmint-17.3-cinnamon-32bit.iso.

Cette distro nécessite un DVD (trop gros pour un CD) ou clef USB.
Pour un DVD, il faut configurer le BIOS.
(vous devrez configurer le lecteur CD/DVD en tant que périphérique autoriser à booter).

Mais pour ma part je lance l'ISO depuis une clef USB sur laquelle j'ai installé un GRUB pas trop ancien (> v2.0.0) (i)

Ici, je configure l'installation pour taper sur un disque-dur : externe ou dongle USB;
l'installation se fait sans problème.

/!\\ il faut bien préciser que le booter/amorçage doit se faire sur le disque externe sinon vous aller "pourrir" votre système courant.

Vous devez bien vérifier les noms de vos devices et bien lancer l'installation sur le "bon" disque ciblé.

Sous linux, pour vérifier les device de stockage détecté par Linux :

lsblk


fdisk -l



6) Samba : montage réseau



6.2) Installation


       
6.2.2) Installation temporaire


Samba peut être installé et configuré temporairement sur une distro live.
--------

       
6.2.3) Installation persistante


 apt-get install samba 


       
6.2.4) Configuration


En tant que root, créer le répertoire cible à partager et l'accès à l'utilisateur nobody et groupe nogroup
(les droits qu'utilise le daemon SAMBA).

# mkdir /DATAS
# chown -R nobody:nogroup /DATAS
# chmod -R 700 /DATAS


Editer le fichier de configuration SAMBA :

# cd /etc/samba/
# cp smb.conf smb.conf.orig
# vi smb.conf
...


Editer smb.conf afin de positionner le répertoire cible à partager sur le réseau.
Ici, on interdit la box (EX: xx.yy.1.1) à se connecter sur le backup serveur,
on n'autorise que le réseau local ou seules les machines connectées à ce réseaux pourront accéder au partage.


[global]

valid users = admin
security = user 

server string = %h backup server
server role = standalone server

# interfaces = {IP}/{mask} eth0
# hosts allow = xx.yy.	EXCEPT {prefix xx.yy}.1.1

...

[datas]
comment = datas backup
path = /DATAS
public = yes
writable = yes
create mask = 0750
browseable = yes



Je commente ces directives car je souhaite limiter au maximum les fonctions non utilisées.

; obey pam restrictions = yes
; unix password sync = yes
; pam password change = yes
; map to guest = user


 # testparm 



Avec l'option valid users, vous pouvez spécifier plusieurs utilisateurs séparés par des espaces.
Avec l'option invalid users dans la section [global], vous pouvez spécifier les utilisateurs interdits.

Vous pouvez spécifier un group Unix en le précédent du caractère @.


       
6.2.5) Démarrage


On redémarre le serveur SAMBA et l'on vérifie que l'on peut y accéder.
Le mot de passe est celui du compte Unix admin

# service smbd restart


Sur slackware, le redémarrage se fait via script :

# /etc/rc.d/rc.samba stop
# /etc/rc.d/rc.samba start

Starting Samba:  /usr/sbin/smbd -D
                 /usr/sbin/nmbd -D


La vérification que le daemon smbd écoute sur le port :

 # netstat -nap| grep smbd 

tcp        0      0 :::139                  :::*                    LISTEN      2650/smbd           
tcp        0      0 :::445                  :::*                    LISTEN      2650/smbd           
unix  2      [ ]         DGRAM                    10085  2650/smbd           


       
6.2.6) Test de l'accès


Tester en local puis sur une machine utilisateur distant

 # smbclient -L \\\\xx.yy.zz.ww\\ -U admin 

Enter admin's password: 

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (desk backup server)
	datas           Disk      datas backup
	print$          Disk      Printer Drivers

	Server               Comment
	---------            -------
	DESK                 desk backup server

	Workgroup            Master
	---------            -------
	WORKGROUP            DESK




       
6.2.7) Gestion d'un utilisateur


L'ajout d'un utilisateur :

#
root@bak:~# smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.


L'option de la section [global] security = user indique que l'authentification repose sur l'utilisateur.
Il est possible d'intéragir avec un AD windows en utilisant domain ou avec server pour déléguer l'authentification à un serveur.

       
6.2.8) Mode debug


/!\\ Par défaut, Samba donne très peu d'information sur son fonctionnement, pour activer le mode debug.


[global]

log level = 5



J'ai souvent au des soucis d'authentification:

# smbclient -L \\\\127.0.0.1\\KBS -U damo
Password for [WORKGROUP\damo]:
session setup failed: NT_STATUS_LOGON_FAILURE

# view /var/log/samba/log.127.0.0.1 
...
 ntlmssp_server_auth_done: Checking NTLMSSP password for WORKGROUP\damo failed: NT_STATUS_NO_SUCH_USER



       
6.2.9) Montage SAMBA depuis un poste client du réseau


On vérifie déja que l'on accède au serveur :

# ping xx.yy.zz.ww



L'opération de montage pour SAMBA se fait maintenant comme ceci :

# mount -t cifs //xx.yy.zz.ww/datas/ /datas -o rw


# watch -n 10 smbstatus


Le protocole CIFS gère le système de fichier au travers du réseau.

Une fois que cela fonctionne, le montage peut être automatisé au démarrage :

#  diff /etc/fstab.20220222 /etc/fstab
18a19
> //xx.yy.zz.ww/datas/ 		/datas 	cifs	rw,user


L'option user autorise un user à monter le répertoire /datas
En lieu et place de l'option user on peut mettre uid=1000.

La commande montage devient simplement :

 USER# mount /datas


Puis tester le droits d'écriture sur depuis le client vers ce nouveau serveur de backup :

#  touch /datas/test

#  ls -lart /datas

total 1028
...
-rwxr-xr-x  1 admin users    0 févr. 22 14:56 test
...



Sous Windows, le point de montage sur le lecteur n: se faire simplement :

cmd> subst n: \\\\xx.yy.zz.ww\\datas



       
6.2.10) Tunnel vers le serveur SAMBA


Un tunnel peut être interressant lorsque vous souhaitez traverser un réseau publique ou d'entreprise.

       
       
6.2.10.1) localhost


Je vais commencer par cloisonner mon serveur samba afin de bloquer toute connexion avec l'extérieur,
l'idée de pouvoir ensuite gérer une redirection TCP/IP:

[global]
...
interfaces = 127.0.0.0/8 eth0
bind interfaces only = yes
...


Après relance de samba, l'interface d'écoute est localhost, donc bien cloisonnée à la machine:
# netstat -nap|grep :445
tcp        0      0 127.0.0.1:445           0.0.0.0:*               LISTEN      69261/smbd          



       
       
6.2.10.2) redirection de flux


J'utilise beaucoup netcat dès que je dois tester des flux ou
dans notre cas pour rediriger un flux TCP/IP.

Ici, je redirige le port 445 de samba en écoute sur l'interface locale avec l'interface externe.
 tail -f /tmp/flux| nc -l 445|nc 127.0.0.1 445 > /tmp/flux 


/!\\ le fichier /tmp/flux va grossir tant que la redirection reste effective,
relancer la commmande va vider le fichier.
/!\\ cette redirection n'est pas sécurisée, pour y remédier vous pouvez utiliser un tunnel SSH depuis l'extérieur.


       
6.2.11) Ramdisque sur le serveur SAMBA


Un ram-disque est un disque stocké en RAM, il a l'avantage d'avoir des performances de loin meilleurs qu'un disque-dur.
(temps d'accès, transfer, ...)

Pour des échange de données temporaires de taille limités mais avec des taux de lecture-écriture importants,
partager un ram-disque au travers de SAMBA peut s'avérer extrêment efficace et pratique pour des échanges entre
plusieurs machines d'un réseau (fichiers temporaires de calcul et parallélisme, ...).

Ainsi avec une machine qui dispose de RAM inutilisé, l'utilisation d'un ramdisque au travers de SAMBA peut être
vraiment pratique pour échanger des données buffers, calcul temporaire partagés, ...

Sous Linux, la création d'un filesystem se fera au travers d'un "loop" :

# mount -t ramfs -o mode=777 /dev/loop0 /ram/


/ram, votre ramdisque fonctionne bien, vous pouvez l'ajouter définitivement afin d'être monté au démarrage du serveur SAMBA.

# cp /etc/fstab /etc/fstab.20230514
# vi /etc/fstab
...
/dev/loop0       /ram         ramfs       mode=777         0   0


/ram sera accessible depuis le réseau après ajout d'une entrée comme précédement dans la configuration SAMBA.

       
6.2.12) Liens de reférence pour aller plus loin




7) Synchronisation des données



7.3) rsync


Cette partie a été déplacée ici

7.4) FreeFileSync


Utilitaire FreeFileSync est graphique, portable et
moins risqué à mettre en oeuvre que rsync.


8) Tests de consistance



8.5) Commandes pratiques

  • find
  • md5sum
  • ...


--------

9) Liens et références



electro-info.ovh - Raspberry Pi - Partager des fichiers



0.1) DamoLab


DamoLab@Sourceforge
DamoLab@DockerHub

0.2) Calculette composants radio


Electro-slide

0.3) Technologies


-- IA --
Mistral IA (le chat) (i)

-- Cyber-securité --
Shodan (i)11
Have I been pwned ? (i)
personal-data-leak-check
Osint
Zataz actualités

-- Adresses IP --
Mes Infos (IP, UA, ...)
info IP: WHOIS,ping,...
info IP: WHOIS,ping,...
info IP: Locallisation
info IP: abus
DNS checker

-- Mails --
GMX
Hushmail - mail temporaire sécurisé

encode/decode email for defeating bots
 $_='mailto: matt@org';s/(.)/chr(ord($1)+5)/eg;$_ 


-- Linux --
News LinuxFr
Mind-map Linux
Tutorials
crontab

-- Blogs Teks --
@TechWorldwithNana
@Cookieconnect
@GoCloudArchitects
@grafikart
@Underscore_
@cybernewsenfrancais


-- Geek Code --

décoder un GC

GCS d>+(---) s- a+ C++$ UL+>$ UOS++$
P++++>$ L++ E W++(++) N(+) o-- K+ w>--- O- M>+ PS+>+++ PE-- Y+@ t-(+) >5 X+ R>+ !tv b+
D---- D+ G e+++ h---- r+++ z+++



Rescue NEO...
(JS by Rezmason)


Nom/surnom:
Message:


revenir sur l'article
#LINUX #DAMOLAB #USB-BOOT #BACKUP #SAMBA #ARCHITECTURE

Aucun commentaire.

dans
une
galaxy
lointaine
Charte du site damolab.zapto.org est motorisé par

"La force est une sorte de fluide crée par tout être vivant, une énergie qui nous entoure et nous pénètre, et qui maintient la galaxie en un tout unique."
- Obi-Wan à Luke Yoda