Bonjour,
Proftpd est (ré)installé.
La commande #proftpd -nd6 me donne ceci :
[...]
ubuntu proftpd[5751] ubuntu: deleting existing scoreboard '/var/run/proftpd.scoreboard'
ubuntu proftpd[5751] ubuntu: Failed binding to 0.0.0.0, port 21: Adresse déjà utilisée
ubuntu proftpd[5751] ubuntu: Check the ServerType directive to ensure you are configured correctly.
Je n'y avais pas prêté attention au début (LIGNE 2), lors de la première installation!
Sur un site (http://www.proftpd.de/FAQ.15.0.html), j'ai découvert une solution. Seulement, ni xinetd et inetd sont installés sur le pc. Je ne peut donc pas trouver de moyen de résoudre l'echec de liaison à 0.0.0.0...
Avant de vous donner le rendu de quelques commandes, voici ma configuration pour proftpd:
proftpd.conf
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 off
# If set on you can experience a longer connection delay in many cases.
IdentLookups on
#UseReverseDNS off
ServerName "Server FTP (01)"
ServerType standalone
DeferWelcome off
#ServerIdent: Si off,on cache la version du serveur.
ServerIdent off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 off
# If set on you can experience a longer connection delay in many cases.
IdentLookups on
#UseReverseDNS off
ServerName "Server FTP (01)"
ServerType standalone
DeferWelcome off
#ServerIdent: Si off,on cache la version du serveur.
ServerIdent off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
PassivePorts 5000 5100
# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
MasqueradeAddress 192.168.X.X
# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User proftpd
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Autorise les clients à reprendre les Uploads vers vous.
# AllowStoreRestart on
# Autorise seulement les noms de fichiers normaux (caractères alphanumérique)
PathAllowFilter "[a-zA-Z0-9]"
# Refuse l'upload de fichiers .ftpaccess ou .htaccess
PathDenyFilter "(\.ftp)|(\.hta)[a-z]+$"
# N'autorise pas de passer des printf-Formats.
AllowFilter "^[a-zA-Z0-9@~ /,_.-]*$"
DenyFilter "%"
# Récupère l'ip de la machine de l'utilisateur, si "on".
#IdentLookups off
# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off
# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c
# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on
# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
# Delay engine reduces impact of the so-called Timing Attack described in
# https://www.securityfocus.com/bid/11430/discuss
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
#
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
[...]
Ça m'a l'air bien compliqué pour installer proftpd. À moins que tu aies besoin d'une configuration spécifique, je t'invite à repartir sur des bases saines :
Pour démarrer / arrêter / redémarrer /... proftpd, passe par la commande service (tu n'as jamais à instancier proftpd d'une autre manière) :
sudo service proftpd stop
sudo service proftpd start
sudo service proftpd restart
Par défaut, proftpd est configuré pour que chaque utilisateur linux soit associé à un utilisateur ftp. Ainsi, si par exemple sous linux tu te loggues en "toto" avec le mot de passe "plop", tu peux faire de même via ftp (et tu arriveras dans /home/toto). Il est bien entendu possible de corriger la configuration de proftpd pour avoir d'autres comportements.
Salut, oui c'est pas simple de configurer et d'administrer un serveur. J'ai choisi Proftpd car il a de nombreuses options .
Le problème est toujours là.
Je n'ai pas choisi une utilisation ssh, avec un client ftp et les utilisateurs système. La raison est simple, j'utilise une base de données pour les utilisateurs (Virtuels).
De plus , je souhaites une utilisation avec TLS/SSL .
Je te remercie pour ta réponse.
NB: J'ai déjà réinstallé le serveur , mais sans "aptitude" car je ne le préfère pas;) .J'ai pris l'habitude de apt... Ceci dit, ce n'est pas résolu , même si cela ne semble pas gêner pour une connexion sur mon serveur ftp....
Est-ce que tu peux purger le paquet le réinstaller et me confirmer que dans ce contexte tu arrives à te connecter avec ton profil linux ?
Peu importe que tu utilises aptitude ou autre chose, pour moi il faut que tu repartes d'une configuration propre (ie celle par défaut pour commencer) d'où la purge. Tu peux également faire une purge via apt-get (voir option --purge).
Une fois que ceci sera fait, on verra comment ajouter des utilisateurs virtuels identifiés via une base de données.
Oui je confirme! Je peut utiliser mes profils linux, si je part d'une configuration ,sans mysql, en ssl.
Pour l'utilisation de apt-get purge "le paquet"et réinstaller proftpd, je l'ai fait. Je précises qu'au début proftpd-basic était installé. Mais, lors de la seconde installation , j'ai installé proftpd (non pas la version basique) .
Du moins , c'est ce que je pense.
Pour les utilisateurs virtuels à l'aide d' une bases de données, pourquoi pas le faire! J'ai déjà commencé... Mais, il y a que la table des groupes et des utilisateurs.Je sais qu'on peut mettre des quotas. Mais, je me demande si on peut faire mieux.Ou, si il existe d'autres tables...
Mais, lors de la seconde installation , j'ai installé proftpd (non pas la version basique).
En fait c'est pareil, proftpd est un paquet virtuel qui installe proftpd-basic en cascade.
(mando@aldur) (~) $ aptitude show proftpd
Pas de version courante ou candidate trouvée pour proftpd
Paquet : proftpd
État: n'est pas un paquet réel
Fourni par : proftpd-basic
Si tu veux vérifier ce qui est installé :
dpkg -l | grep "^ii" | grep proftpd
Pour les utilisateurs virtuels à l'aide d' une bases de données, pourquoi pas le faire! J'ai déjà commencé... Mais, il y a que la table des groupes et des utilisateurs.Je sais qu'on peut mettre des quotas. Mais, je me demande si on peut faire mieux.Ou, si il existe d'autres tables...
Alors je l'ai fait il y a pas longtemps avec un serveur postgresql mais je pense que c'est le même principe. Pour le moment je pense que tu dois faire une chose à la fois (d'abord l'authentification avec la base, ensuite ssl) pour éviter de conjuguer d'éventuels problèmes.
aptitude install proftpd-mod-mysql
Ensuite dans l'idée il faut configurer /etc/proftpd/sql.conf (tu as un template dans /usr/share/proftpd/templates/sql.conf si besoin) et activer le support sql dans /etc/proftpd/proftpd.conf. Dans le fichier sql.conf tu devras principalement indiquer le sgbd (mysql dans ton cas), l'utilisateur mysql et son mot de passe, l'adresse du serveur mysql (localhost je suppose dans ton cas ?), le schéma (la base) à utiliser, et la requête mysql qui permet de chopper des informations sur les utilisateurs.
Cette table mysql doit au moins contenir le nom d'utilisateur, son "home" au sens ftp, et son mot de passe. Tu peux éventuellement aussi avoir une colonne pour l'UID et le GID à utiliser lorsqu'il upload des fichiers. Si tu ne veux pas les préciser il est possible de préciser dans sql.conf une valeur par défaut à utiliser. Comme ce n'est pas forcément trivial à déboguer, je t'invite aussi à activer les log sql pour proftpd.
/etc/proftpd/proftpd.conf (extrait)
...
DefaultRoot ~
SQLLogFile /var/log/proftpd/sql.log
...
#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf
Include /etc/proftpd/sql.conf
...
/etc/proftpd/sql.conf (ici avec postgresql)
Dans cet exemple proftpd est configuré pour se connecter à postgresql et permettre à un utilisateur d'uploader des données dans /var/ftp/uploads. Les fichiers uploadés appartiennent à proftpd:nogroup.
#
# Proftpd sample configuration for SQL-based authentication.
#
# (This is not to be used if you prefer a PAM-based SQL authentication)
#
<IfModule mod_sql.c>
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
#SQLBackend mysql
#
#SQLEngine on
#SQLAuthenticate on
# http://blog.sdewitte.net/post/2010/11/24/Utiliser-proftpd-avec-une-base-de-donn%C3%A9es-PostgreSQL
SQLBackend postgres
SQLEngine on
SQLAuthenticate on
#
# Use both a crypted or plaintext password
#SQLAuthTypes Crypt Plaintext
#
# Use a backend-crypted or a crypted password
#SQLAuthTypes Backend Crypt
SQLAuthTypes Crypt Plaintext
#
# Connection
#SQLConnectInfo proftpd@sql.example.com proftpd_user proftpd_password
#
# SQLConnectInfo dbname@host dbuser dbpasswd
SQLConnectInfo mabase@localhost monutilisateursql monpasswordsql
# Describes both users/groups tables
#
#SQLUserInfo users userid passwd uid gid homedir shell
#SQLGroupInfo groups groupname gid members
# We don't store in our postgresql table:
# - the home directory
# - the UID used if a user uploads a file
# - the GID used if a user uploads a file
# => we define default values (Here UID=113 <-> proftpd)
# - SQLDefaultUID : "proftpd" user (see /etc/passwd)
# - SQLDefaultGID : "nogroup" group (see /etc/group)
# - SQLDefaultHomedir : the ftp root directory owned by this user
# http://www.proftpd.org/docs/directives/linked/config_ref_SQLUserInfo.html
SQLDefaultUID 113
SQLDefaultGID 65534
SQLDefaultHomedir /var/ftp/uploads
Dans cet exemple il ne faut évidemment pas oublier de créer le répertoire dans lequel on upload.
Une fois que tu veux tester la configuration, pense à relancer proftpd :
service proftpd restart
Ensuite il ne reste plus qu'à remplir la base et essayer de te connecter. Au préalable affiche les logs dans un terminal :
tail -f /var/log/proftpd/sql.log
... passe quelques lignes en appuyant sur entrée pour t'y retrouver et ne pas être pollué par les messages précédents, puis tente de te connecter dans un autre terminal :
ftp localhost
Si la connexion échoue, regarde ce que racontent les logs.
Le problème est toujours là.
Je n'ai pas choisi une utilisation ssh, avec un client ftp et les utilisateurs système. La raison est simple, j'utilise une base de données pour les utilisateurs (Virtuels).
De plus , je souhaites une utilisation avec TLS/SSL .
Je te remercie pour ta réponse.
NB: J'ai déjà réinstallé le serveur , mais sans "aptitude" car je ne le préfère pas;) .J'ai pris l'habitude de apt... Ceci dit, ce n'est pas résolu , même si cela ne semble pas gêner pour une connexion sur mon serveur ftp....
Peu importe que tu utilises aptitude ou autre chose, pour moi il faut que tu repartes d'une configuration propre (ie celle par défaut pour commencer) d'où la purge. Tu peux également faire une purge via apt-get (voir option --purge).
Une fois que ceci sera fait, on verra comment ajouter des utilisateurs virtuels identifiés via une base de données.
Bonne chance
Pour l'utilisation de apt-get purge "le paquet"et réinstaller proftpd, je l'ai fait. Je précises qu'au début proftpd-basic était installé. Mais, lors de la seconde installation , j'ai installé proftpd (non pas la version basique) .
Du moins , c'est ce que je pense.
Pour les utilisateurs virtuels à l'aide d' une bases de données, pourquoi pas le faire! J'ai déjà commencé... Mais, il y a que la table des groupes et des utilisateurs.Je sais qu'on peut mettre des quotas. Mais, je me demande si on peut faire mieux.Ou, si il existe d'autres tables...