Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Gestion accès SFTP sur eole3

De AJLSM
Version datée du 9 avril 2026 à 13:40 par Jlarvers (discussion | contributions) (Page créée avec « == Gestion des accès SFTP sur eole3 == === Objectif === Mettre en place un accès SFTP sécurisé et cloisonné pour les clients, tout en conservant un accès SSH comple... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Gestion des accès SFTP sur eole3

[modifier | modifier le wikicode]

Mettre en place un accès SFTP sécurisé et cloisonné pour les clients, tout en conservant un accès SSH complet pour les administrateurs (ex : utilisateur ajlsm).

Contraintes :

  • 1 client = 1 répertoire dédié
  • accès limité (chroot) pour les clients SFTP
  • accès SSH complet pour les admins
  • compatibilité avec ZFS
  • gestion des droits pour permettre lecture/écriture multi-utilisateurs

---

Architecture existante

[modifier | modifier le wikicode]
  • Données stockées sur ZFS :
/var/data/<client>-data/data/
  • Exemple :
/var/data/ad53-data/data/
/var/data/pleade.com-data/data/
  • Organisation interne :
  • data-private : ajlsm:ajlsm
  • projets : <client>:pleade
  • pleade : <client>:pleade
  • autres dossiers selon besoin

---

Problématique initiale

[modifier | modifier le wikicode]
  • Tous les utilisateurs étaient dans le groupe pleade
  • Configuration SSH :
Match Group pleade
    ChrootDirectory %h
    ForceCommand internal-sftp

Conséquence :

  • l'utilisateur admin ajlsm était forcé en SFTP
  • impossible d'avoir un accès SSH normal

---

Solution : séparation des groupes

[modifier | modifier le wikicode]

Création d’un nouveau groupe dédié SFTP :

groupadd eole3-sftp

Principe :

  • groupe pleade → usage applicatif
  • groupe eole3-sftp → accès SFTP uniquement

---

Configuration des utilisateurs

[modifier | modifier le wikicode]

Utilisateurs SFTP

[modifier | modifier le wikicode]

Exemple :

usermod -aG eole3-sftp pleadecom

Résultat :

  • chroot SFTP actif
  • pas d’accès SSH

Utilisateur admin

[modifier | modifier le wikicode]
id ajlsm
uid=1025(ajlsm) gid=1000(pleade)
  • NE DOIT PAS être dans eole3-sftp
  • conserve accès SSH complet

---

Configuration SSH

[modifier | modifier le wikicode]

Fichier :

/etc/ssh/sshd_config.d/20-eole3-sftp.conf

Contenu :

Match Group eole3-sftp
    ChrootDirectory %h
    ForceCommand internal-sftp -d /data
    AllowTcpForwarding no
    PermitTunnel no
    X11Forwarding no
    PasswordAuthentication yes

Configuration existante conservée :

Match Group pleade
    (à supprimer ou ne plus utiliser pour SFTP)

---

Vérification de la configuration

[modifier | modifier le wikicode]
sshd -t
systemctl reload ssh

Test :

sshd -T -C user=pleadecom,addr=127.0.0.1

Résultat attendu :

  • chroot actif
  • internal-sftp actif

---

Structure des répertoires SFTP

[modifier | modifier le wikicode]

Exemple :

/var/data/pleade.com-data/
    └── data/

Contraintes OpenSSH :

  • répertoire chroot :
chown root:root /var/data/pleade.com-data
chmod 755 /var/data/pleade.com-data
  • données accessibles :
/var/data/pleade.com-data/data/

---

Gestion des droits

[modifier | modifier le wikicode]
chmod 2775 <dir>
  • 2 = setgid
  • héritage du groupe
chmod 664 <file>
  • groupe principal : pleade
  • utilisateurs ajoutés au groupe :
usermod -aG pleade pleadecom

---

Problème rencontré : overwrite SFTP

[modifier | modifier le wikicode]

Symptôme :

put test.pdf → Permission denied

Mais :

put test.pdf test2.pdf → OK

---

SFTP (OpenSSH) :

  • overwrite = ouverture avec O_TRUNC
  • nécessite droits sur le fichier existant

Cas bloquant :

-rw-r--r-- (644)

→ seul le propriétaire peut modifier

---

Solution retenue

[modifier | modifier le wikicode]

Uniformiser les droits :

find /var/data -type f -exec chmod 664 {} ;
find /var/data -type d -exec chmod 2775 {} ;

---

Option avancée : ACL (avec rollback)

[modifier | modifier le wikicode]
getfacl -R /var/data > /root/acl-backups/backup.acl

Application ciblée

[modifier | modifier le wikicode]
setfacl -R -m g:pleade:rwX /var/data/pleade.com-data/data
setfacl -R -d -m g:pleade:rwX /var/data/pleade.com-data/data
setfacl --restore=/root/acl-backups/backup.acl

---

Bonnes pratiques

[modifier | modifier le wikicode]
  • ne pas utiliser chmod 777
  • privilégier :
 * 664 pour fichiers
 * 2775 pour dossiers
  • utiliser ACL uniquement si nécessaire
  • tester sur un client avant généralisation

---

La solution repose sur :

  • séparation des groupes :
 * pleade (applicatif)
 * eole3-sftp (accès SFTP)
  • configuration SSH dédiée
  • gestion rigoureuse des droits Unix
  • compatibilité avec ZFS

Résultat :

  • accès SFTP fonctionnel
  • overwrite possible
  • isolation des clients
  • accès admin préservé

---