Droits samba pour users SFTP

kiko26 Messages postés 6 Date d'inscription   Statut Membre -  
kiko26 Messages postés 6 Date d'inscription   Statut Membre -
bonjour à tous,

c'est une question un peu bizarre, mais je voudrais savoir si c'est possible.

j'ai un serveur samba (linux) avec des users qui se connectent dessus, et des droits sur des rep/fichiers pour chaque user dans smb.conf (jusque là tout est normal)

j'ai un serveur sftp (sur e meme server linux que samba) (ssh configuré et opérationnel), un seul (root) configuré avec ses clés privée et publique. ça fonctionne très bien avec winscp (client sftp sous windows).

je voudrais creer des cles privees/publiques pour chaque user, qui se connecteront sur le sftp avec winscp. Le probleme est le suivant :
est-il possible de repercuter les droits d'acces de chq user dans samba, dans sftp, de maniere a ce que lorsque un user se connecte avec winscp sur le server sftp, il ne voit que ce qu'il a le droit de voir (droits samba de ce user) ?

j'espere avoir ete assez clair dans ma question, en esperant une reponse.
merci à tous

4 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    j'ai un serveur sftp (sur e meme server linux que samba) (ssh configuré et opérationnel)

    Ne fait pas confusion.

    Il n'y a pas de serveur sftp.
    La partie serveur est le programme sftp-server (voir le fichier sshd_config) et le client et le programme sftp.

    En gros il s'agit de SSH + le transfer de fichiers (scp et sftp).

    Il n'y a pas non plus de server linux.

    Linux c'est le kernel, GNU/Linux c'est l'OS et il y a plusieurs distributions.

    Un serveur c'est une machine ou un programme qui offre des services ou ressources à un client.

    lorsque un user se connecte avec winscp sur le server sftp, il ne voit que ce qu'il a le droit de voir (droits samba de ce user) ?

    Je ne crois pas que samba à quelque chose là dédans quand tu te connectes avec Winscp.
    Tu peux remarqué ça en arrêtant le serveur Samba. Tu verras que la connexion avec Winscp functionnera toujours.

    Si tu veux que l'utilisateur ne voie que le répertoire que lui est destiné, avec openssh il y a la possibilité de créer un environnement chrooté.
    En ce cas l'utilisateur en plus de n'avoir accès qu'à son répertoire, sera emprisonner dans un pseudo-système se trouvant à l'intérieur de ton GNU/Linux.
    Si ça ne t'interesses que pour le transfer de fichiers alors c'est de ça que tu as besoin (enfin c'est mon opinion).

    lami20j
    0
  2. kiko26 Messages postés 6 Date d'inscription   Statut Membre
     
    Dans la suite de ce message, je parle de Paul comme d'un user qui a quelques droits sur certains repertoires.

    ---->Il n'y a pas de serveur sftp.
    ---->La partie serveur est le programme sftp-server (voir le fichier sshd_config) et le client et le programme sftp.
    bien vu

    ---->lorsque un user se connecte avec winscp sur le server sftp, il ne voit que ce qu'il a le droit de voir (droits samba de ce user) ?
    Ben le probleme est là justement, il voit tout, absolument tout. Certes il ne peut pas créer de répertoire/fichiers dans des chemins comme /etc, mais par contre il peut récupérer tous les fichiers du serveur sans exception.
    et là c un mega probleme

    ---->Je ne crois pas que samba à quelque chose là dédans quand tu te connectes avec Winscp.
    justement je voudrais que samba dise au sftp ce que PAUL peut voir, sinon il voit tout

    ---->Tu peux remarqué ça en arrêtant le serveur Samba. Tu verras que la connexion avec Winscp functionnera toujours.
    exact, ça fonctionne toujours, et c la le probleme

    ---->Si tu veux que l'utilisateur ne voie que le répertoire que lui est destiné, ...
    oui, je veux qu'il ne puisse voir que ce que je lui ai autorisé a voir dans samba
    exemple, paul peut voir :
    /volume1/bboa
    /volume1/public
    /volume1/photo
    et paul ne peut pas voir :
    /volume1/opt
    /volume1/save
    et le seul endroit dans le système, où ces droits sont gérés, c'est dans smb.conf (le fichier de config de samba) -> d'où ce post

    autre exemple :
    lorsque paul se connecte en ftp avec filezilla sur le serveur ftp, il ne voit que ce que je lui ai autorisé a voir dans samba.
    je voudrais qu'il en soit de même pour sftp (avec winscp)

    j'espere avoir été assez clair.
    Si ce n'est pas possible, tant pis, mais je serai surpris qu'il en soit ainsi.
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    je crois qu'il y a un malentendu quelque part.

    J'ai très bien compris ce que tu veux faire et c'est faisable mais pas comment tu le penses (enfin c'est mon opinon).

    Le serveur Samba utilise le protocol SMB
    Un serveur FTP utilse le protocol FTP
    Le serveur SSH utilie le protocol SSH (version 1 et 2)

    lorsque paul se connecte en ftp avec filezilla sur le serveur ftp, il ne voit que ce que je lui ai autorisé a voir dans samba.


    Oui et c'est normal.
    Mais pas comment tu penses. (enfin tant que je n'ai pas vu les fichiers de configuration de tes serveurs je ne peux pas être sûr de ce que tu va lire, mais dans la logique c'est ça)

    Je m'explique.

    Dans le fichier de configuration de samba tu as donné accèss à certains ressources pour les utilisateurs. Donc ils peuvent se connecter et voir ce que toi a decidé. Jusqu'ici c'est bon.

    En revanche avec le ftp, les utilisateurs voient ce que tu as decidé mais pas parce que dans le fichier samba.conf tu as configureé l'accès aux ressources, mais parce que le serveur ftp (tu utilises quoi comme serveur ftp?) a aussi un fichier de configuration dans lequel on spécifie les droits, les répertoires, etc.. (ce qu'on veut partager)

    Si, ce sont les même que dans samba.conf alors ça s'explique pourquoi tu peux.

    Pour ssh il y a des solutions envisageable que je connais.

    1.
    - limitations des accès avec chroot

    SSH2 a 2 mots clé

    ChRootUsers user

    limiter l'accès au répertoire de compte user

    ChRootGroups groupe1

    s'applique pour tous le comptes d'un group

    Dans les 2 cas on peut ajouter plusieurs utilisateurs ou groupes separré par une virgule sans espace.

    je n'ai pas testé

    2.
    OpenSSH

    pour openssh il y a des patch pour pouvoir créer un environnement chrooté.

    J'ai testé sur debian et ça marche impecable. D'ailleurs je suis en train de préparer un tuto pour ça en utilisant 2 scripts perl pour automatisation.

    A savoir que avec sftp en fait tu te connectes sur un compte pour transfer de fichiers. Une fois le ssh activé de toute façon c'est normal que l'utilsateur accede à son compte (c'est le but de SSH - Le shell securisé)

    lami20j
    0
  4. kiko26 Messages postés 6 Date d'inscription   Statut Membre
     
    Bonjour,
    j'ai effectivement compris tout ce que tu m'as dit.
    comme je n'ai pas trouvé de fichier de config ftp qui resume les droits des users, je me suis dit que le demon ftp recuperait les droits des users dans le fichier de config de samba (que j'ai joint). Plus bas dans ce post apparaissent les fichiers que j'ai trouvé et qui te donneront des infos sur ma config.

    Apparemment, la methode "limitations des accès avec chroot" ne m'interesse pas car chacun de mes users a des droits differents.
    Avec ChRootUsers user, on limite l'accès au répertoire de compte user, ca c pas du tout ce que je veux.
    Avec ChRootGroups groupe1, il faut que je cree plein de groupes et que je mettre les users dedans. pas cool

    le patch pour openssh "créer un environnement chrooté", a l'air interessant, je vais attendre que tu finisses ton tuto pour voir et tester

    Ce que je souhaite :
    paul accède aux repertoires suivants :
    /volume1/public
    /volume1/DL
    /volume1/bboa
    christian accède aux répertoires suivants :
    /volume1/public
    /volume1/web
    /volume1/DL
    /volume1/bboa
    /volume1/HDI

    pour chaque user, il y a une config differente

    merci pour ton aide précieuse

    ***********************
    voila mon fichier de config de samba
    NAS250> cat /usr/syno/etc/smb.conf
    [global]
    socket options=TCP_NODELAY
    workgroup=MSHOME
    realm=*
    printing=lprng
    winbind enum groups=yes
    idmap gid=10000-30000
    passdb backend=smbpasswd
    security=user
    idmap uid=10000-30000
    printcap name=/usr/syno/etc/printcap
    load printers=yes
    winbind enum users=yes
    [public]
    invalid users=nobody,nobody
    valid users=nobody,christian,jonathan,sylvie,paul,admin,nobody
    comment="Partage public"
    path=/volume1/public
    guest ok=yes
    browseable=yes
    read list=nobody,nobody
    write list=nobody,christian,jonathan,sylvie,paul,admin,nobody
    writeable=yes
    [web]
    invalid users=nobody,nobody
    valid users=nobody,christian,admin,nobody
    comment="Site web local"
    path=/volume1/web
    guest ok=yes
    browseable=yes
    read list=nobody,christian,nobody
    write list=nobody,admin,nobody
    writeable=yes
    [DL]
    invalid users=nobody,nobody
    valid users=nobody,Kriss,christian,sectorzero,jonathan,alphavictor,sylvie,jeanclaude,paul,SaveByFTP,admin,mohamed,nobody
    comment="Download"
    path=/volume1/DL
    guest ok=yes
    browseable=yes
    read list=nobody,Kriss,christian,sectorzero,jonathan,alphavictor,sylvie,jeanclaude,mohamed,nobody
    write list=nobody,paul,SaveByFTP,admin,nobody
    writeable=yes
    [save]
    invalid users=nobody,nobody
    valid users=nobody,SaveByFTP,admin,nobody
    comment="Sauvegardes"
    path=/volume1/save
    guest ok=yes
    browseable=yes
    read list=nobody,nobody
    write list=nobody,SaveByFTP,admin,nobody
    writeable=yes
    [bboa]
    invalid users=nobody,nobody
    valid users=nobody,christian,jonathan,sylvie,paul,admin,nobody
    comment="Big Box Of Art"
    path=/volume1/bboa
    guest ok=yes
    browseable=yes
    read list=nobody,christian,jonathan,sylvie,paul,nobody
    write list=nobody,admin,nobody
    writeable=yes
    [HDI]
    invalid users=nobody,nobody
    valid users=nobody,christian,SaveByFTP,admin,nobody
    comment="HirenDemarreurIndispensable"
    path=/volume1/HDI
    guest ok=yes
    browseable=yes
    read list=nobody,christian,nobody
    write list=nobody,SaveByFTP,admin,nobody
    writeable=yes
    [NetBackup]
    invalid users=nobody,nobody
    valid users=nobody,admin,nobody
    comment="System default share"
    path=/volume1/NetBackup
    guest ok=yes
    browseable=yes
    read list=nobody,nobody
    write list=nobody,admin,nobody
    writeable=yes
    [tmp]
    invalid users=nobody,nobody
    valid users=nobody,admin,nobody
    comment=""
    path=/volume1/tmp
    guest ok=yes
    browseable=yes
    read list=nobody,nobody
    write list=nobody,admin,nobody
    writeable=yes
    [opt]
    invalid users=nobody,nobody
    valid users=nobody,admin,nobody
    comment=""
    path=/volume1/opt
    guest ok=yes
    browseable=yes
    read list=nobody,nobody
    write list=nobody,admin,nobody
    writeable=yes
    NAS250>
    ***********************
    paul est dans le group users, comme tous les autres compte d'ailleurs
    NAS250> id -gn paul
    users
    NAS250>
    ***********************
    liste des group
    NAS250> cat /etc/group
    #$_@GID__INDEX@_$65539$

    root:x:0:
    lp:x:7:nobody,lp,nobody
    ftp:x:21:nobody,ftp,nobody
    smmsp:x:25:nobody,smmsp,nobody
    nobody:x:1023:nobody,nobody
    users:x:100:nobody,nobody
    NAS250>
    ***********************
    Fichiers contenant ftp dans leur nom
    je n'arrive pas a determiner quelle version de ftp il s'agit
    il y a juste le demon qui tourne /usr/syno/sbin/ftpd
    NAS250> find / -name ftp*
    /etc/ftpusers
    /usr/syno/sbin/ftpd
    /usr/syno/synoman/tools/ftp.cgi
    ***********************
    seul fichier de config de ftp que j'ai trouvé
    NAS250> cat /etc/ftpusers
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    uucp
    operator
    nobody
    NAS250>
    ***********************
    0