Koozali.org: home of the SME Server

FTP : Limiter l'accès à certains utilisateurs

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« on: May 26, 2007, 12:10:56 PM »
Bonjour

Je suis newbie concernant sme et linux en général.

Je cherche à permettre à un utilisateur, mais pas à tous, d'avoir un accès FTP permettant l'upload. Ceci depuis le web.

- En se connectant avec le login/mdp d'une i-bay configurée pour, on a l'accès mais l'upload est interdit.
- En permettant l'authentification des users depuis le web, on peut faire de l'upload mais cette solution ne me convient pas car tous les utilisateurs sont alors autorisés à se connecter depuis le web.

J'ai lu pas mal de topics concernant des questions similaires mais je n'ai pas trouvé de solution.

Merci de m'avoir lu. Merci d'avance de votre aide.

Bon week end

adili

FTP : Limiter l'accès à certains utilisateurs
« Reply #1 on: May 26, 2007, 03:40:26 PM »
Bonjour,

Net2ftp sait faire tout cela et s'installe facilement sur sme.
AD

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #2 on: May 26, 2007, 08:30:28 PM »
Quote from: "adili"
Bonjour,

Net2ftp sait faire tout cela et s'installe facilement sur sme.
AD


Bonjour

Oups, je me rend compte que je me suis mal exprimé.

Je voulais dire "depuis l'extérieur" et pas depuis le web.

Merci cependant pour cette réponse. Je garde cette référence sous le coude.

a+

adili

FTP : Limiter l'accès à certains utilisateurs
« Reply #3 on: May 26, 2007, 11:06:44 PM »
Ben c'est quoi la différence entre l'extérieur et le web? moi je n'en vois pas.
AD

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #4 on: May 27, 2007, 01:50:36 AM »
Quote from: "adili"
Ben c'est quoi la différence entre l'extérieur et le web? moi je n'en vois pas.
AD


A ce moment là, je ne comprends pas comment Net2ftp peu résoudre mon problème.

Si je comprends bien, Net2ftp propose d'accéder à des fichiers d'un serveur ftp via le protocole http. Est-ce bien celà ?

Ce que je cherche à faire c'est utiliser le protocole FTP. Mais en permettant à certains utilisateurs (et seulement certains) d'uploader. Et je tiens à utiliser le protocole FTP (malgrès son faible niveau de sécurité).
Et sauf incompréhension totale de ma part, ce n'est pas l'objectif de Net2ftp.

Ou alors je n'ai pas compris ce qu'est Net2ftp. Au fait on parle bien de la même chose : http://www.net2ftp.com ?

merci


Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #6 on: May 29, 2007, 11:29:43 AM »
Bonjour

Quote from: "mmccarn"
http://wiki.contribs.org/FTP_Access_to_Ibays
http://babelfish.altavista.com/babelfish/trurl_pagecontent?lp=en_fr&trurl=http%3a%2f%2fwiki.contribs.org%2fFTP_Access_to_Ibays
(faites attention: les numeros 1 & 2 ne sont pas bien traduits...)


Merci de votre réponse.
Mais cette méthode ne répond pas entièrement à ma demande puisqu'elle permet à TOUS les utilisateurs de se connecter en ftp.

Or je veux pouvoir choisir quel utilisateur en a le droit et quel utilisateur n'en a pas le droit.

C'est là, je pense, l'originalité de ma demande.

merci a+

cromeu

FTP : Limiter l'accès à certains utilisateurs
« Reply #7 on: May 29, 2007, 05:23:09 PM »
Pourquoi ne pas creer tout simplement une  Baie d information avec l acces ftp et autoriser qui de droit en lecture/ecriture ??
Tu pourrais gerer les utilisateurs par groupe par la même occasion.

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #8 on: May 29, 2007, 07:50:50 PM »
Quote from: "cromeu"
Pourquoi ne pas creer tout simplement une  Baie d information avec l acces ftp et autoriser qui de droit en lecture/ecriture ??
Tu pourrais gerer les utilisateurs par groupe par la même occasion.


Salut et merci pour ta réponse

Il me semble que pour que ta solution fonctionne, il faut que j'autorise "l'accès ftp par mot de passe depuis n'importe où". Or, à partir de ce moment là, n'importe quel utilisateur pourra se connecter en ftp à son home directory et cela depuis l'extérieur.

Et c'est cela dont je ne veux pas.

A moins qu'il n'y ait des finesses de réglage que je n'ai pas capté.

Merci

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #9 on: May 29, 2007, 08:01:08 PM »
Bonjour à tous

J'ai trouvé un moyen de faire ce que je voulais.
Bien sur, ce n'est pas très propre mais ça fera l'affaire dans l'immédiat.
Ensuite, je tacherai d'améliorer cette solution. L'idéal serait d'aboutir à quelque chose d'intégré dans l'interface graphique de sme.
Mais vu mes faibles connaissances, ça va pas être pour tout de suite.

Bien sur, si vous avez des idées pour améliorer ma "solution-bricolage", ce serait très sympa d'en faire part.

Bon, trève de blabla, voilà ce que j'ai fait :

   Première étape, à partir du server-manager :

Dans Sécurité > Accès à distance > Paramètres FTP, j'ai mis :
- Accés FTP : "Permettre l'accès tout public (tout internet)" (histoire d'ouvrir le port 21 quand même)
- Accès FTP par mot de passe : N'autoriser l'authentification que depuis les réseaux locaux (comme ça mes users n'ont pas accès au ftp depuis l'extérieur)

- j'ai crée une i-bay qu'on va appeler "utilisateur", en précisant :
Accès public par le Web ou le protocole FTP anonyme  : Tout internet (Mot de passe requis)
(comme ça, en utilisant le login de l'i-bay, on a accès au ftp. Mais l'upload n'est pas encore autorisé)
(Je pense que les autres caractéristiques de l'i-bay n'ont pas d'importance.)

J'ai ensuite défini un mot de passe pour cette i-bay.

   Deuxième étape, à partir de n'importe où :

Je crée le fichier "ftp.txt" constitué de ces lignes :
"
<Anonymous /home/e-smith/files/ibays/utilisateur/files>
User utilisateur
Group utilisateur
AnonRequirePassword on
UseFtpUsers on
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit LOGIN>
   Order Allow,Deny
   Allow from all
   Deny from all
</Limit>
<Directory *>
   <Limit WRITE>
   AllowAll
   </Limit>

</Directory>
</Anonymous>

"

   Troisième étape, à partir de la console :

- Je crée un répertoire custom-template pour proftpd :
mkdir -p /etc/e-smith/templates-custom/etc/proftpd.conf
- Je rapatrie le fichier texte crée ci-dessus dans ce répertoire (et je le renomme au passage) :
cp EmplacementDeMonFichier/ftp.txt /etc/e-smith/templates-custom/etc/proftpd.conf/60UtilisateurBay

Pour finir, je fais :
- expand-template /etc/proftpd.conf
- service ftp restart


(Quatrième étape : une bière pour se détendre)

Ce qui me chagrine le plus dans cette histoire est que je me retrouve avec un fichier /etc/proftpd.conf qui "se répète" et "se contredit" puisqu'il comporte deux sections "Anonymous" concernant cette i-bay : une qui interdit l'écriture puis une seconde qui l'autorise. Je trouve que c'est pas propre du tout. Et je me demande si ça ne me réservera pas des surprises à l'avenir... qui vivra verra.

J'attends vos réactions avec impatience

a+

Offline mmccarn

  • *
  • 2,626
  • +10/-0
FTP : Limiter l'accès à certains utilisateurs
« Reply #10 on: June 05, 2007, 05:51:12 PM »
Une autre idée:
Code: [Select]
config setprop ftp AllowHosts 1.2.3.4,10.11.12.0/24
expand-template /etc/rc.d/init.d/masq

maintenant, examinez le fichier /etc/rc.d/init.d/masq pour voir les regles nouvelles a propos le service ftp...

Avant:
Code: [Select]
# ftp: TCPPorts: 21, AllowHosts: 0.0.0.0/0, DenyHosts:
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 0.0.0.0/0 --jump ACCEPT


Apres:
Code: [Select]
   # ftp: TCPPorts: 21, AllowHosts: 1.2.3.4,10.11.12.0/24, DenyHosts:
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 1.2.3.4 --jump ACCEPT
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 10.11.12.0/24 --jump ACCEPT

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #11 on: June 05, 2007, 06:01:34 PM »
Bonjour

Quote from: "mmccarn"
Une autre idée:
Code: [Select]
config setprop ftp AllowHosts 1.2.3.4,10.11.12.0/24
expand-template /etc/rc.d/init.d/masq

maintenant, examinez le fichier /etc/rc.d/init.d/masq pour voir les regles nouvelles a propos le service ftp...

Avant:
Code: [Select]
# ftp: TCPPorts: 21, AllowHosts: 0.0.0.0/0, DenyHosts:
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 0.0.0.0/0 --jump ACCEPT


Apres:
Code: [Select]
   # ftp: TCPPorts: 21, AllowHosts: 1.2.3.4,10.11.12.0/24, DenyHosts:
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 1.2.3.4 --jump ACCEPT
    /sbin/iptables -A $NEW_InboundTCP --proto tcp --dport 21 \
        --destination $OUTERNET --src 10.11.12.0/24 --jump ACCEPT


Merci pour votre réponse.

Cependant, je ne connais pas encore iptables et j'ai donc du mal à l'interpréter.
Si je comprends, il s'agit de n'autoriser que certaines adresses IP (1.2.3.4 et 10.11.12.*) à se connecter au serveur FTP. Est-ce bien cela ?
Si oui, cela ne répond pas à ma question puisque je ne cherche pas à faire du filtrage par IP mais par nom d'utilisateur.
Si non, pourriez-vous m'expliquer ce que fait précisemment votre solution.

Merci d'avance

a+

Offline mmccarn

  • *
  • 2,626
  • +10/-0
FTP : Limiter l'accès à certains utilisateurs
« Reply #12 on: June 05, 2007, 08:34:45 PM »
Vous avez raison - ce que je viens de recommander s'agit d'autoriser l'access par IP.

Je reviens donc a ma premier idee d'installer le smeserver-remoteuseraccess - ca vous donne l'abilite de controller exactement qui peut connecter en FTP.  

Imaginer que vous faites:

a) les groupes 'groupa', 'groupb'
b) les ibays 'ibaya', 'ibayb'
c) les utilisateur 'usera', 'userb', 'userc', 'userd'

ensuite, vous donnez l'access read-write a 'ibaya' a 'groupa', et a 'ibayb' a 'groupb'.

maintenant, ajouter 'usera', 'userb', 'userc' a 'groupa', et 'userc', 'userd' a 'groupb'.

Voila - 'usera', 'userb', 'userc' peuve connecter read-write a ibaya, mais userd ne peut pas connecter.

cependant, 'userc' et 'userd' peuve connecter read-write a ibayb, mais 'usera' et 'userb' ne peuvent pas.

Ce n'est pas ce que vous voulez?

OK, bien - j'ai essayer sur mon SME ce que je vous suggere et j'ai trouve que ca ne marche pas par ce que les 'groups' sont automatiquement ajouter a /etc/ftpusers, ce qui prohibite qu'ils connectent en FTP.  Il faut faire d'autres changements:
Code: [Select]
mkdir -p /etc/e-smith/templates-custom/etc/e-smith/pam/accounts.deny
cd /etc/e-smith/templates-custom/etc/e-smith/pam/accounts.deny
cp /etc/e-smith/templates/etc/e-smith/pam/accounts.deny/10passwordRequired  .
pico -w 10passwordRequired
(faites attention au point '.'  a la fin de la ligne de 'cp...')
maintenant, ajoutez cela entre "my $type = $a->prop..." et "if ( $type...":
Code: [Select]
       next if ( $type =~ /(group)/ );Quand vous etes finit, le fichier semblera:
Code: [Select]
{
    use esmith::AccountsDB;
    my $adb = esmith::AccountsDB->open_ro();

    while ( my $name = getpwent )
    {
        next if ($name eq "admin");
        next if ($name eq "public") and ($ACCOUNTS_DENY_ALLOW_PUBLIC);

        my $a = $adb->get($name);
        next unless defined $a;

        my $type = $a->prop('type') || 'none';
        next if ( $type =~ /(group)/ );
        if ( $type =~ /(user|ibay)/ )
        {
            my $passwordSet = $a->prop('PasswordSet') || 'no';
            next if ($passwordSet eq "yes");

            my $ftpMode = $a->prop('PublicAccess') || 'none';
            next if ($ftpMode eq "local" or $ftpMode eq "global");
        }
        $OUT .= "$name\n";
    }
}


enfin il faut:
Code: [Select]
expand-template /etc/ftpusers

J'ai ouvrit un bug sur bugzilla: http://bugs.contribs.org/show_bug.cgi?id=3043

(Ca arrive a sembler complique...)

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #13 on: June 06, 2007, 08:45:51 PM »
Bonsoir

Merci mmccarn de vous intéresser encore à mon cas.
Malheureusement je ne parviens toujours pas à mes fins. Toutefois, votre message m'a permis une nouvelle fois d'en apprendre un peu plus.

Peut-être que mon problème vient de là :

Quote
Je reviens donc a ma premier idee d'installer le smeserver-remoteuseraccess - ca vous donne l'abilite de controller exactement qui peut connecter en FTP.


En effet, je ne dois pas savoir me servir correctement de remoteuseraccess.
Par exemple, j'ai deux utilisateurs : usera et userb. Comment puis-je faire  pour que usera puisse se connecter en FTP et que userb ne le puisse pas ?


Par ailleurs, je vais essayer de reformuler ma demande initiale car je ne suis pas sur de l'avoir expliquée clairement jusque là :
- J'ai deux utilisateurs : local-usr et remote-usr
- Je veux que remote-usr puisse se connecter, depuis l'extérieur, à une i-bay (appelons-la remote-bay). Je veux aussi qu'il ait le droit d'y uploader des fichiers.
- Je veux que local-usr ait accés en read-write à cette i-bay par le LAN.

Jusque là, je sais faire. Il suffit de mettre les deux users dans un même groupe et de définir ce groupe comme propriétaire de l'i-bay, etc.

- Par contre, je ne veux pas que local-usr puisse se connecter depuis l'extérieur. Ni à remote-bay, ni à son home directory. Ni même à quelque répertoire que ce soit.
En fait, je veux que si remote-usr, entre son login et son pwd depuis l'extérieur, il obtienne un "Access Denied".

Merci encore de votre aide

a+

Offline mmccarn

  • *
  • 2,626
  • +10/-0
FTP : Limiter l'accès à certains utilisateurs
« Reply #14 on: June 07, 2007, 06:03:44 AM »
Eh bien - comment si vous ajutez local-usr au fichier /etc/ftpusers - comme ca, il pourra connecter de l'interieur par Samba, mais il ne pourra pas connecter par ftp - ni de l'interieur, ni de l'exterieur.

Aneurysm

FTP : Limiter l'accès à certains utilisateurs
« Reply #15 on: June 07, 2007, 12:39:38 PM »
Bonjour

Quote from: "mmccarn"
Eh bien - comment si vous ajutez local-usr au fichier /etc/ftpusers - comme ca, il pourra connecter de l'interieur par Samba, mais il ne pourra pas connecter par ftp - ni de l'interieur, ni de l'exterieur.


Malheureusement, j'utilise une application qui nécessite d'utiliser le ftp en local (g4u : outil de clonage / sauvegarde de disques durs).

Bien sur, une solution serait que je trouve une autre application de ce type, qui gère samba. Ou encore que j'utilise un second serveur ftp, sur un poste du LAN (par exemple filezilla server sur un poste windows).
Mais je trouve dommage de ne pas profiter du serveur ftp inclus dans sme.

Je garde cette solution sous le coude, maintenant que vous m'avez indiqué comment modifier ftpusers.

merci, a+