Forum Linux.debian/ubuntu Problème ftp

Posté par  .
Étiquettes : aucune
0
29
août
2006
bonjour a tous!

Voila, lorsque j'essaie de me connecter a mon serveur ftp (proftp configuré avec mysql) celui ci me répond:

NaBoODiSk:/etc/proftpd# ftp localhost
Connected to localhost.localdomain.
421 Service not available, remote server has closed connection


Est-ce que qqun aurait une idée? pcq la, je sèche!!

Voila mon fichier proftpd.conf:



include /etc/proftpd/modules.conf
######################################################################
# OPTION GLOBAL
######################################################################
ServerName "NaBoOsErVeR"
ServerIdent on "Welcome to my FTP Server"
ServerAdmin naboo1910@hotmail.com
ServerType standalone

# Port du server (default 21).
Port 21
DefaultServer on


######################################################################
# PERSONNALISATION DES OPTIONS GLOBAL
######################################################################

# Set the user and group that the server normally runs at.
User nobody
Group nogroup

# On authorise le FXP
AllowForeignAddress on

# On active le resume
AllowStoreRestart on
AllowRetrieveRestart on

# On ne gere pas les reverse DNS (on gagne ainsi du temps a la connexion)
UseReverseDNS off

# On ne demande pas a recuperer le nom du client FTP (ici aussi on gagne du temps a la connexion)
IdentLookups off

# On ne demande pas de shell valid (nos utilisateurs sont stocker en base de données)
RequireValidShell off

# Pour prevenir des attack DOS on defini le nombre de process
MaxInstances 30

#
MaxLoginAttempts 3

# Nombre maximum de connexion depuis la meme IP
MaxClientsPerHost 3

#Nombre maximum de connexion simultanée au serveur FTP
MaxClients 20

# On definie le timeout
TimeoutNoTransfer 300
TimeoutStalled 600
TimeoutIdle 1200

# On defini le fichier charger au login, et celui au charger lors des acces au nouveau repertoire
#DisplayLogin welcome.msg
#DisplayFirstChdir .message

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
#Umask 022 022

# On respecte la RFC2228
MultilineRFC2228 on

# On desactive le suivi des liens symbolique afin d'éviter aux utilisateurs de créer des liens vers des repertoires auxquels on ne veux pas qu'il ai accès
ShowSymlinks on

# On spécifie un option permettant de lister les fichiers
ListOptions "-l"

# On empeche de remonter au dela tu repertoire de login
DefaultRoot ~


######################################################################
# MYSQL
######################################################################
<Limit LOGIN>
AllowAll


SQLHomedirOnDemand on
SQLAuthTypes Crypt
SQLAuthenticate users*
SQLConnectInfo ftp@Localhost root Hakkodory
SQLUserInfo users login passwd uid gid homedir shell
SQLUserWhereClause "disabled!=1 and never_expire=1"

######################################################################

######################################################################
# Statistiques par Login
######################################################################
# Incremente le champ login_count de 1 a chaque nouvelle connexion
SQLLog PASS logincount
SQLNamedQuery logincount UPDATE "login_count=login_count+1 WHERE login='%u'" users

# Mes à jours le champ last_login avec la derniere date de connexion
SQLLog PASS lastlogin
SQLNamedQuery lastlogin UPDATE "last_login=now() WHERE login='%u'" users

# Incremente le champ dl_bytes de la quatité de données téléchargées
SQLLog RETR dlbytescount
SQLNamedQuery dlbytescount UPDATE "dl_bytes=dl_bytes+%b WHERE login='%u'" users

# Incremente le champ dl_count de 1 a chaque nouveau téléchargement de fichiers
SQLLog RETR dlcount
SQLNamedQuery dlcount UPDATE "dl_count=dl_count+1 WHERE login='%u'" users

# Incremente le champ ul_bytes de la quatité de données uploader
SQLLog STOR ulbytescount
SQLNamedQuery ulbytescount UPDATE "ul_bytes=ul_bytes+%b WHERE login='%u'" users

# Incremente le champ ul_count de 1 a chaque nouveau upload de fichiers
SQLLog STOR ulcount
SQLNamedQuery ulcount UPDATE "ul_count=ul_count+1 WHERE login='%u'" users


######################################################################
# LOG DANS FICHIERS
######################################################################
SyslogLevel emerg
SystemLog /var/log/proftpd/proftpd.system.log

LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"

# Log file/dir access
ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write
# Record all logins
ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth
# Paranoia logging level....
ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default

######################################################################

######################################################################
# LOG DANS MYSQL
######################################################################
SQLLog RETR,STOR,DELE transfert
SQLNamedQuery transfert INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T',now(), 'ok'" log_transfert

SQLLOG ERR_RETR,ERR_STOR,ERR_DELE errortransfert
SQLNamedQuery errortransfert INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T',now(), 'error'" log_transfert


####################################################################
# LIMITATION DE LA BANDE PASSANTE
####################################################################

# Limite en download (du serveur vers le client)
# Apres avoir downloader 3Mo (3145728 Octets), on limite la bande passante a 256 Kilo Octets
#TransferRate RETR 256:3145728

# Limite en upload (du client vers le serveur)
# Apres avoir uploader 10Mo (10485760 Octets), on limite la bande passante a 512 Kilo Octets
#TransferRate APPE,STOR 512:10485760


J'ai bien décommenté quelques lignes pour vérifier que ca ne venait pas de celles la, mais pour le moment, rien a faire!

AIDEZ MOI !!!

NaBoO
  • # Et dans les logs?

    Posté par  . Évalué à 1.

    Regarde ce que les logs de proftpd ET de mysql disent, typiquement ca pourrait etre que ton serveur ftp n'arrive pas a se connecter a la DB mysql soit parce qu'il n'y a pas d'entrée pour ftp@localhost, soit parce que la version de hashage des passwords n'est pas compatible, soit encore parce qu'il essaye de se connecter en tcp alors que mysql n'ecoute que sur un socket unix...

    Tout ca sera dit dans les logs :)
    • [^] # Re: Et dans les logs?

      Posté par  . Évalué à 1.

      voila le log de proftpd:


      Aug 29 13:30:46 NaBoODiSk proftpd[8571] localhost.localdomain: error setting IPV6_V6ONLY: Protocol not available
      Aug 29 13:30:46 NaBoODiSk proftpd[8571] localhost.localdomain: ProFTPD 1.3.0 (stable) (built Thu Jun 1 20:27:34 CEST 2006) standalone mode STARTUP
      Aug 29 13:43:22 NaBoODiSk proftpd[8571] localhost.localdomain: ProFTPD killed (signal 15)
      Aug 29 13:43:22 NaBoODiSk proftpd[8571] localhost.localdomain: ProFTPD 1.3.0 standalone mode SHUTDOW


      le log de proftpd system


      Aug 29 15:41:34 NaBoODiSk proftpd[6155] localhost.localdomain: ProFTPD killed (signal 15)
      Aug 29 15:41:34 NaBoODiSk proftpd[6155] localhost.localdomain: ProFTPD 1.3.0 standalone mode SHUTDOWN
      Aug 29 15:42:39 NaBoODiSk proftpd[6207] localhost.localdomain: error setting IPV6_V6ONLY: Protocol not available
      Aug 29 15:42:39 NaBoODiSk proftpd[6207] localhost.localdomain: ProFTPD 1.3.0 (stable) (built Thu Jun 1 20:27:34 CEST 2006) standalone mode STARTUP
      Aug 29 15:42:46 NaBoODiSk proftpd[6214] localhost.localdomain (::ffff:127.0.0.1[::ffff:127.0.0.1]): FTP session closed.


      si qqun comprend qqch a tt ca, quil me le dise!!!
      NaBoO
      • [^] # Re: Et dans les logs?

        Posté par  . Évalué à 1.

        Et du coté des logs mysql ? Tu vois une tentative de connection du serveur ftp, une erreur? (decommenter la ligne "log = ...." dans le my.cnf)

        L'erreur d'ipv6 est probablement non critique.
  • # Configuration

    Posté par  . Évalué à 1.

    Dans le fichier /etc/proftpd/modules.conf, qu'est-ce que tu as laissé ?

    Il me semble que si tu ne commentes pas la ligne
    LoadModule mod_sql_postgres.c
    lorsque tu veux utiliser un backend mysql, ça ne marche pas très bien...
  • # RE: logs et module postgresql

    Posté par  . Évalué à 1.

    Bon,après avoir commenter la ligne du module correspondant a postgresql, dans module.conf, rien de nouveau. Ensuite, du coté des logs de mysql, j'ai décommenté la ligne log=... et voila le résutlat
    /usr/sbin/mysqld, Version: 5.0.24-Debian_3-log. started with:
    Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
    Time                 Id Command    Argument
    060830 11:13:49       1 Connect     debian-sys-maint@localhost on
                          1 Quit
                          2 Connect     debian-sys-maint@localhost on
                          2 Quit
                          4 Connect     debian-sys-maint@localhost on
                          4 Query       SHOW DATABASES
                          4 Init DB     ftp
                          4 Query       SHOW TABLES
                          4 Query       CHECK TABLE `log_transfert`  FAST
                          4 Query       CHECK TABLE `users`  FAST
                          4 Init DB     mysql
                          4 Query       SHOW TABLES
                          4 Query       CHECK TABLE `columns_priv`  FAST
                          4 Query       CHECK TABLE `db`  FAST
                          4 Query       CHECK TABLE `func`  FAST
                          4 Query       CHECK TABLE `help_category`  FAST
                          4 Query       CHECK TABLE `help_keyword`  FAST
                          4 Query       CHECK TABLE `help_relation`  FAST
                          4 Query       CHECK TABLE `help_topic`  FAST
                          4 Query       CHECK TABLE `host`  FAST
                          4 Query       CHECK TABLE `proc`  FAST
                          4 Query       CHECK TABLE `procs_priv`  FAST
                          4 Query       CHECK TABLE `tables_priv`  FAST
                          4 Query       CHECK TABLE `time_zone`  FAST
                          4 Query       CHECK TABLE `time_zone_leap_second`  FAST
                          4 Query       CHECK TABLE `time_zone_name`  FAST
                          4 Query       CHECK TABLE `time_zone_transition`  FAST
                          4 Query       CHECK TABLE `time_zone_transition_type`  FAST
                          4 Query       CHECK TABLE `user`  FAST
                          4 Quit
                          3 Connect     debian-sys-maint@localhost on
                          3 Query       show /*!40003 GLOBAL */ variables
                          3 Quit
                          5 Connect     debian-sys-maint@localhost on mysql
                          5 Query       set storage_engine=MyISAM
                          5 Query       CREATE TABLE IF NOT EXISTS func (
      name char(64) binary DEFAULT '' NOT NULL,
      ret tinyint(1) DEFAULT '0' NOT NULL,
      dl char(128) DEFAULT '' NOT NULL,
      type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL,
      PRIMARY KEY (name)
    ) CHARACTER SET utf8 COLLATE utf8_bin
                          5 Query       ALTER TABLE user add File_priv enum('N','Y') COLLATE utf8_general_ci NOT NULL                      5 Quit
    060830 11:16:02       6 Connect     root@localhost on root
    
    Je n'y comprend absolument rien!
    • [^] # Re: RE: logs et module postgresql

      Posté par  . Évalué à 1.

      Et bien dans ces logs, tu as tout ce que fait MySQL. La seule ligne vraiment intéressante (avant, ce sont des opérations de maintenance ?) est la dernière qui signale, à 11h16, une connexion sous le user root (si j'ai bien compris, proftpd utilise le user root avec le mot de passe Hakkodory pour se connecter à la base de données - c'est quoi ton adresse IP ;-))
      Est-ce bien proftpd qui a fait cette connexion ?
      Est-ce qu'il y avait une suite dans cette log ?
      Si oui, tu devrais y voir les requêtes exécutées et peut-être comprendre ce qu'il se passe...

      A part ça :
      - ne laisse pas des log mysql aussi verbeuses en dehors des moments où tu fais des tests sinon tu vas rapidement avoir un fichier énoooorme
      - il serait certainement plus propre et surtout plus sûr d'utiliser un autre user que root pour la connexion de proftpd à la base. Un user quelconque avec un simple droit de lecture sur la base ftp devrait faire l'affaire.

      A+
      JJD

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.