nikotinux
Posts: 762
Joined: Sat Feb 02, 2013 2:11 am

Memo stockage S3 local avec acces protégé

Tue Jun 30, 2020 12:03 pm

Les ransomwares le plus dangereux sont capables maintenant d'attaquer non seulement la machine qu'ils ont infecté, mais aussi tous les partages samba présents sur un réseau local. Stocker des sauvegardes sur des partages samba devient donc risqué. J'ai essayé d'utiliser un serveur de stockage objets, MinIO en l’occurrence, avec un logiciel comme Duplicati pour sécuriser des sauvegardes. J'ai un peu galéré pour limiter l’accès au buckets via utilisateur / mot de passe, je partage donc la solution que j'ai trouvée.

J'ai virtualisé mes tests.

D'abord un serveur Windows 2019 et un desktop sous Win 8.1, tous les deux avec Duplicati. Je voulais sauvegarder le serveur sur un bucket nommé win2019-backup avec un acceskey win2019, et le desktop sur un bucket win8-backup et un acceskey win8.

Pour le serveur j'ai utilisé un CentOS 8, installation minimale, avec 5 disques, un pour le système et 4 pour le stockage. Un utilisateur sans privilèges nommé minio créé pour lancer le serveur, a accès a quelques commandes via sudoers

Code: Select all

minio ALL=(ALL) NOPASSWD:/bin/mount,/bin/umount,/usr/bin/firewall-cmd
Pour l'instant je teste avec ce script de lancement trés provisoire :

Code: Select all

#!/bin/bash

export MINIO_ACCESS_KEY=minio_admin
export MINIO_SECRET_KEY=superfuckingcomplicatedpassword

sudo firewall-cmd --zone=public --add-port=9000/tcp

sudo mount -o user /dev/sdb1 /srv/data1
sudo mount -o user /dev/sdc1 /srv/data2
sudo mount -o user /dev/sdd1 /srv/data3
sudo mount -o user /dev/sde1 /srv/data4

./minio server /srv/data{1...4}

sudo firewall-cmd --zone=public --remove-port=9000/tcp

sudo umount /srv/data1
sudo umount /srv/data2
sudo umount /srv/data3
sudo umount /srv/data4

J'ai installé aussi le client mc pour gérer le serveur.
Création des buckets et des utilisateurs.

Code: Select all

./mc mb minio/win2019-backup
./mc mb minio/win8-backup
./mc admin user add minio/ win2019
./mc admin user add minio/ win8
Jusque la c'est classique. Reste a attribuer les droits ! Ce qu'il faut comprendre c'est que la logique par rapport a samba ou ftp est inversé.
Avec samba on attribue un accès a un partage a des utilisateurs. A un partage donné on sait quels utilisateurs ont accès. On ne sait pas a priori a quels partages a accès un utilisateur.
Avec S3 c'est le contraire, on donne accès a un utilisateur a des buckets. A un utilisateur donné on sait a quels buckets il a accès. On ne sait pas a priori quels utilisateurs ont accès a un bucket.
Pour gérer les accés on va créer des policy et on attribue une policy a un utilisateur, qui decrit donc ses droits d'accés. Se sont des fichiers textes au format json.
Par exemple pour l'utilisateur win8 on édite un fichier win8_policy.json avec

Code: Select all

{
 "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
       "s3:ListBucket",
       "s3:GetBucketLocation"
      ],
      "Resource": ["arn:aws:s3:::win8-backup"]
    },
  {
   "Effect": "Allow",
   "Action": [
    "s3:DeleteObject",
    "s3:GetObject",
    "s3:PutObject"
   ],
   "Resource": ["arn:aws:s3:::win8-backup/*"]
  }
 ]
}

on enregiste ensuite cette policy et on l'applique a l'utilisateur

Code: Select all

./mc admin policy add minio/ win8_policy win8_policy.json
./mc admin policy set minio/ win8_policy user=win8
On applique la mème méthode pour chaque utilisateur.
Pour changer les droits d'un utilisateur on édite le fichier correspondant et on réapplique la policy.

En espérant que ça aide ...

totoharibo
Posts: 4435
Joined: Thu Jan 24, 2013 8:43 am

Re: Memo stockage S3 local avec acces protégé

Tue Jun 30, 2020 2:48 pm

moi y en a être linuxien pur et dur :P

Jje n'ai pas de PC sous windows, le ransonware ne peut pas attaquer mes partages samba ?
J'ai tout faux ?

nikotinux
Posts: 762
Joined: Sat Feb 02, 2013 2:11 am

Re: Memo stockage S3 local avec acces protégé

Tue Jun 30, 2020 3:46 pm

Mon soucis de faire des sauvegardes stockées ailleurs que sur des partages samba n'a été qu'un prétexte pour me pencher sur l'utilisation de stockage objets a la mode Amazon. Il y a bien d'autres champs d'utilisation, sous nextcloud par exemple, mais ou la problématique de l’accès protégé aux buckets est la mème.
Et l'attaque dont j'ai été témoin a réussi a crypter des partages sur un serveur debian intégré dans un domaine ... c'est violent.
Sur mon réseau perso j'ai des visiteurs auxquels j'accorde parfois une confiance toute relative, donc je pense que je vais adopter aussi ce genre de sauvegarde. Avec du raspberry en serveur ... https://dl.minio.io/server/minio/release/linux-arm/

Return to “Français”