Voici un tutoriel sur l’installation d’un serveur SFTP et d’un serveur SFTP avec base mysql

  • Source : https://www.server-world.info/en/note?os=Debian_9&p=ssh&f=5
  • Etat : Terminé mais a traduire


SFTP - Filezilla


  • Un serveur debian 10

SFTP simple

SFTP only + Chroot2017/06/21
Configure SFTP only + Chroot.
Some users who are applied this settings can access only with SFTP and access to the permitted directories.
[1]For example, Set /home as the Chroot directory.
[2]Try to access with a user and make sure the settings.
debian@www:~$ ssh debian@
debian@’s password:
This service allows sftp connections only.
Connection to closed.     # denied normally debian@www:~$ sftp debian@
Connecting to…
debian@’s password:
sftp> ls -l
drwxr-xr-x 3 1001 1001 4096 Apr 23 03:11 debian drwxr-xr-x 4 1000 1000 4096 Apr 24 12:24 strech sftp> pwd
Remote working directory: /
sftp> exit

SFTP avec base Mysql

Voici quelques notes sur la création d’un SFTP via connexion Mysql

Exemple de fichier


fichier virtualhost



# blabla basique
Include /etc/proftpd/modules.conf
UseIPv6                on
IdentLookups            off
ServerName            « Mon super FTP »
ServerType            standalone
DeferWelcome            off
MultilineRFC2228        on
DefaultServer            on
ShowSymlinks            on
TimeoutNoTransfer        600
TimeoutStalled            600
TimeoutIdle            1200
DisplayLogin                    welcome.msg
DisplayChdir                   .message true
ListOptions                    « -l »
DenyFilter            \*.*/
RequireValidShell        off
<IfModule mod_dynmasq.c>
MaxInstances            30
User                proftpd
Group                nogroup
Umask                22  022
AllowOverwrite            on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
<IfModule mod_ratio.c>
Ratios off
<IfModule mod_delay.c>
DelayEngine on
<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off

# ……

# un virtualhost avec acces securise
<Virtualhost ftpequipe1.toto.com>
DefaultRoot ~
ServerName « Mon super FTP pour equipe 1 »
AuthUserFile        /path/to/equipe1/ftpd.passwd
Group            ftpuser
Port            2001
PassivePorts                  32500 33300
RequireValidShell    off

# ……

#un virtualhost public/acces anonyme

# A basic anonymous configuration, no upload directories.
<VirtualHost ftp.toto.com>
Port 21
ServerName « Welcome to our wonderful FTP! »
RequireValidShell        off
<Limit LOGIN>
<Anonymous /path/to/ftproot>
User                ftp
Group                nogroup
# We want clients to be able to login with « anonymous » as well as « ftp »
UserAlias            anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser    on ftp
DirFakeGroup on ftp
# Limit the maximum number of anonymous logins
MaxClients            25
# We want ‘welcome.msg’ displayed at login, and ‘.message’ displayed
# in each newly chdired directory.
DisplayLogin            welcome.msg
DisplayChdir        .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
<Directory /path/to/ftproot/equipe1>
<Limit ALL>
# ……


# ……

LDAPServer ldap://ldap.toto.com/??sub ldap://ldap2.toto.com/??sub
LDAPBindDN « cn=admin,dc=toto,dc=com » « s3cr3t »
LDAPUsers ou=people,dc=toto,dc=com (&(uid=%u)(objectclass=*))
LDAPSearchScope subtree
LDAPGroups « ou=teams,dc=toto,dc=com » (&(memberUid=%u)(objectClass=posixGroup))
DefaultRoot « /path/to/ftproot/ »
AllowStoreRestart on
AuthOrder    mod_ldap.c
RequireValidShell    off
Port    4000
PassivePorts    49152 50000