proftpd + mysql + ftpmyadmin

proftpd + mysql + ftpmyadmin - Linux et OS Alternatifs

Marsh Posté le 08-02-2006 à 18:16:18    

Bonjour à tous,
 
Voilà, je me lance enfin dans Linux pour construire mon serveur FTP et j'avoue que j'ai presque réussi...
 
Moi qui suit un abonné Windows, je dois avouer que je prends rapidement goût à cet OS formidable qu'est Linux :D !
 
En gros, j'ai une Debian et j'ai installé dessus proftpd et myFTPAdmin.
 
Pour ceux qui ne connaissent pas : http://baud.homelinux.net/index2.html
 
J'ai tout suivi à la lettre, et ça marche niquel. Mais le truc, c'est que je veux que tous mes utilisateurs aient accès à un répertoire commun dans lequel ils ont tous les droits (sauf celui de supprimer le répertoire de base)...
 
Alors j'ai un peu modifié mon fichier de config, mais rien à faire...
 
Quand je me connecte en admin : tout fonctionne, mais je ne peux pas créer de répertoire et transférer des fichiers... en gros, j'ai le droit de me ballader
Quand je me connecte en user : j'arrive à me connecter, mais impossible de lister le contenu du répertoire, on m'interdit les commandes suivante : PWD, PORT, PASV...
 
Par contre, si je créée le répertoire user dans le répertoire de base, ça fonctionne ;)...
 
Donc pour vous simplifier les choses pour comprendre.. car c'est dur à expliquer, je vous montre mon proftpd.conf
 

Code :
  1. #
  2. # /etc/proftpd.conf -- Fichier de configuration du serveur FTP ProFTPD.
  3. #
  4. ServerName                      "TEST FTP"
  5. ServerType                      standalone
  6. ServerIdent on                  "Server FTP ready"
  7. DeferWelcome                    on
  8. MultilineRFC2228                on
  9. DefaultServer                   on
  10. ShowSymlinks                    on
  11. UseReverseDNS                   off
  12. IdentLookups                    off
  13. DefaultRoot                     /home/ftpuser/
  14. AllowStoreRestart               on
  15. AllowRetrieveRestart            on
  16. SystemLog                       /var/log/proftpd.log
  17. TransferLog                     /var/log/proftpd/transfer.log
  18. ExtendedLog                     /var/log/proftpd/access.log WRITE,READ write
  19. ExtendedLog                     /var/log/proftpd/auth.log AUTH auth
  20. LogFormat default               "%h %l %u %t \"%r\" %s %b"
  21. LogFormat auth                  "%v [%P] %h %t \"%r\" %s"
  22. LogFormat write                 "%h %l %u %t \"%r\" %s %b"
  23. AllowForeignAddress             on
  24. PassivePorts                    49152 65534
  25. MaxLoginAttempts                3
  26. TimeoutNoTransfer               300
  27. TimeoutStalled                  300
  28. TimeoutIdle                     600
  29. TimeoutStalled                  3600
  30. PathAllowFilter                 "[a-zA-Z0-9]"
  31. PathDenyFilter                  "(\.ftp)|(\.msg)|(\.hta)[a-z]+$"
  32. AllowFilter                     "^[a-zA-Z0-9@~ /,_.-]*$"
  33. DenyFilter                      "%"
  34. ShowSymlinks                    off
  35. ListOptions                     "-l"
  36. DisplayLogin                    welcome.msg
  37. DisplayQuit                     bye.msg
  38. DisplayFirstChdir               .message
  39. Port                            21
  40. MaxClients                      25
  41. MaxClientsPerHost               3
  42. MaxClientsPerUser               3
  43. MaxInstances                    25
  44. User                            ftpuser
  45. Group                           ftpgroup
  46. Umask                           022  022
  47. AllowOverwrite                  on
  48. SQLAuthTypes                    Plaintext Crypt
  49. SQLAuthenticate                 users* groups*
  50. SQLConnectInfo ftp@localhost ftpuser xxxxxxxx
  51. SQLUserInfo users username passwd NULL NULL homedir NULL
  52. SQLGroupInfo groups groupname id username
  53. SQLUserWhereClause "valid = 1"
  54. SQLDefaultGID 100
  55. SQLDefaultUID 500
  56. SQLHomedirOnDemand              on
  57. SQLLog PASS updatelogin
  58. SQLNamedQuery updatelogin UPDATE "count=count+1, lastlogin=NOW() WHERE username = '%u'" users
  59. SQLLog STOR,RETR,ERR_STOR,ERR_RETR logtrafic
  60. SQLNamedQuery logtrafic FREEFORM "INSERT INTO history (username,filename,transfertype,transfersize,transferhost,transfertime,transferdate)
  61. VALUES ('%u', '%F$', '%F', '%m', '%b', '%a', '%T', NOW())"
  62. RootLogin                       off
  63. RequireValidShell               off
  64. <Directory /home/ftpuser>
  65.         <Limit ALL>
  66.                 order Allow, Deny
  67.                 AllowUser admin
  68.                 Deny from All
  69.         </Limit>
  70. </Directory>
  71. <Directory /home/ftpuser/*>
  72. AllowOverwrite                  on
  73. HideFiles                       "(\.msg)$
  74.         <Limit LOGIN>
  75.                 AllowAll
  76.         </Limit>
  77.         <Limit READ WRITE PORT PASV CWD DELE LIST MKD MKDIR MDTM NLST NOOP PWD REST RETR RMD RMDIR RNFR RNTO STAT XCUP XCWD XMKD XPWD XRMD CDUP>
  78.                 AllowAll
  79.         </Limit>
  80. #       <Limit CDUP XCUP>
  81. #               DenyAll
  82. #       </limit>
  83. </Directory>


 
J'ai un peu modifié la version originale vers la fin, pour autoriser des choses... mais sans effet.
 
Merci d'avance pour votre aide.


Message édité par thenab le 08-02-2006 à 18:34:05

---------------
Thenab - Quitte à passer pour un con, passe vite !
Reply

Marsh Posté le 08-02-2006 à 18:16:18   

Reply

Marsh Posté le 08-02-2006 à 21:54:01    

pas mal son site !!
 
j'ai mis en place ca pour ma part:
http://lea-linux.org/cached/index/ [...] mysql.html
 
et j'ai créé des pages web + php pour gerer tout ca tres sommairement: ajout et suppression de users, informations sur les users

Reply

Marsh Posté le 09-02-2006 à 13:55:16    

Ta solution n'est pas très loin de la mienne... mais toi, tu logues tes users dans leur répertoire... moi je veux qu'ils accèdent à un espace partagé ;).
 
Merci pour le lien.


---------------
Thenab - Quitte à passer pour un con, passe vite !
Reply

Marsh Posté le 11-02-2006 à 01:07:34    

Tu as verifier les droits UNIX en plus des droits proftpd ?

Reply

Marsh Posté le 12-02-2006 à 01:35:09    

Exact, c'était uniquement ça ;)...
 
Tout fonctionne ;)...

Reply

Marsh Posté le 13-03-2006 à 22:11:56    

J'ai le meme probleme, mais meme apres avoir modifie les droits unix ca ne marche pas ; chmod 777 /home/ftpuser/
 
je log en admin, je me balade
je log en user, 550 PWD permission denied
 
je comprends vraiment rien/
 
Dis moi quelles sont les manips a faire pour que ca fonctionnne.
 
Merci d'avance

Reply

Marsh Posté le 15-03-2006 à 13:32:38    

Il faut aussi modifier ton fichier de configuration, je te donne le mien ;) :
 

Code :
  1. ServerName                      "SERVEUR FTP"
  2. ServerType                      standalone
  3. ServerIdent on                  "Server FTP ready"
  4. DeferWelcome                    on
  5. MultilineRFC2228                on
  6. DefaultServer                   on
  7. ShowSymlinks                    on
  8. UseReverseDNS                   off
  9. IdentLookups                    off
  10. DefaultRoot                     ~
  11. AllowStoreRestart               on
  12. AllowRetrieveRestart            on
  13. SystemLog                       /var/log/proftpd.log
  14. TransferLog                     /var/log/proftpd/transfer.log
  15. ExtendedLog                     /var/log/proftpd/access.log WRITE,READ write
  16. ExtendedLog                     /var/log/proftpd/auth.log AUTH auth
  17. LogFormat default               "%h %l %u %t \"%r\" %s %b"
  18. LogFormat auth                  "%v [%P] %h %t \"%r\" %s"
  19. LogFormat write                 "%h %l %u %t \"%r\" %s %b"
  20. AllowForeignAddress             on
  21. PassivePorts                    49152 65534
  22. MaxLoginAttempts                3
  23. TimeoutNoTransfer               300
  24. TimeoutStalled                  300
  25. TimeoutIdle                     600
  26. TimeoutStalled                  3600
  27. PathAllowFilter                 "[a-zA-Z0-9]"
  28. PathDenyFilter                  "(\.ftp)|(\.msg)|(\.html)|(\.htm)|(\.xhtml)|(\.php)|(\.php3)|(\.php4)|(\.php5)|(\.hta)[a-z]+$"
  29. AllowFilter                     "^[a-zA-Z0-9@~ /,_.-]*$"
  30. DenyFilter                      "%"
  31. ShowSymlinks                    off
  32. ListOptions                     "-l"
  33. DisplayLogin                    welcome.msg
  34. DisplayQuit                     bye.msg
  35. DisplayFirstChdir               .message
  36. Port                            21
  37. MaxClients                      25
  38. MaxClientsPerHost               3
  39. MaxClientsPerUser               3
  40. MaxInstances                    25
  41. User                            ftpuser
  42. Group                           ftpgroup
  43. Umask                           022  022
  44. AllowOverwrite                  on
  45. SQLAuthTypes                    Plaintext Crypt
  46. SQLAuthenticate                 users* groups*
  47. SQLConnectInfo ftp@localhost ftpuser TON_MOT_DE_PASSE
  48. SQLUserInfo users username passwd NULL NULL homedir NULL
  49. SQLGroupInfo groups groupname id username
  50. SQLUserWhereClause "valid = 1"
  51. SQLDefaultGID 5500
  52. SQLDefaultUID 5500
  53. SQLHomedirOnDemand              on
  54. SQLLog PASS updatelogin
  55. SQLNamedQuery updatelogin UPDATE "count=count+1, lastlogin=NOW() WHERE username = '%u'" users
  56. SQLLog STOR,RETR,ERR_STOR,ERR_RETR logtrafic
  57. SQLNamedQuery logtrafic FREEFORM "INSERT INTO history (username, filename, transfertype, transfersize, transferhost, transfertime, transferdate) VALUES('%u'$
  58. SQLLog ERR_* logevents
  59. SQLNamedQuery logevents FREEFORM "INSERT INTO userevents (username, eventtype, description, eventdate) VALUES ('%u', '%m', '%r', NOW())"
  60. RootLogin                       off
  61. RequireValidShell               off
  62. <Directory /home/ftpuser>
  63.         <Limit ALL>
  64.                 AllowUser admin
  65.         </Limit>
  66. </Directory>
  67. <Directory /home/ftpuser/*>
  68. AllowOverwrite                  on
  69. HideFiles                       "(\.msg|\.ht)$
  70.         <Limit LOGIN>
  71.                 AllowAll
  72.         </Limit>
  73.         <Limit READ WRITE PORT PASV CDUP CWD LIST MKD MKDIR MDTM NLST NOOP PWD REST RETR RNFR RNTO SIZE STAT STOR XCUP XCWD XMKD XPWD XRMD>
  74.                 AllowAll
  75.         </Limit>
  76. </Directory>


 
Bon, bien sûr, j'ai pas mal personnalisé le truc, j'ai un message d'accueil, de déconnexion, j'ai des limites users, j'ai des logs un peu plus poussées... etc... mais à partir de ça, déjà, tu devrais bien t'en sortir.
 
Quant aux droits, ne met pas CHMOD 777, c'est trop dangereux !!! Les droits dr-xr-xr-x suffisent sur ton répertoire /ftpuser
 
Bon courrage :D !


Message édité par thenab le 15-03-2006 à 13:37:08

---------------
Thenab - Quitte à passer pour un con, passe vite !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed