Auteur Sujet: Serveur FTP : ProFTPd  (Lu 190 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 1 154
    • Voir le profil
    • La Fibre
Serveur FTP : ProFTPd
« le: 30 mai 2010 à 08:19:03 »
Installation ProFTPd :
# aptitude install proftpd



Liste des utilisateurs interdit de FTP :

Si vous n'avez pas utilité d'un accès anonyme, il est conseillé d'ajouter, anonymous dans le fichier /etc/ftpusers :

# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody
anonymous
vivien


Bien vérifier cette liste après un upgrade du système !

vivien

  • Administrateur
  • *
  • Messages: 1 154
    • Voir le profil
    • La Fibre
Serveur FTP : ProFTPd
« Réponse #1 le: 30 mai 2010 à 08:22:33 »
Ajouter un utilisateur avec accès uniquement en FTP

Attention, tous les utilisateurs se connectant sur le serveur proftpd doivent exister réellement sur le système (avec un uid).

2 solutions :
  • créer les utilisateurs avec un "faux shell" (/bin/false ou /bin/MySecureShell)
  • faire un alias d'un utilisateur n'existant pas vers un utilisateur existant (UserAlias)

Note : /bin/false est déjà installé sur tous les linux. MySecureShell nécessite une installation spécifique, voir tuto dédié pour l'installation : http://iperf.fr/index.php/topic,3963.0.html

Important :
Cas spécifique pour /bin/false (pour /bin/MySecureShell c'est déjà rajouté lors de l'installation de MySecureShell) : Pour que ce shell soit "valide", il faut indiquer dans le fichier /etc/shells la ligne /bin/false si cela n'a pas déjà été fait. Car proftpd par défaut n'accepte pas la connexion si le shell de l'utilisateur n'est pas "valide" donc indiqué dans  /etc/shells (pour modifier ce fonctionnement, il faut utiliser la directive : RequireValidShell off)

Exemple de fichier /etc/shells :
/etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/usr/bin/screen
/bin/bash
/bin/rbash
/bin/MySecureShell

sudo nano -w /etc/shells
rajouter /bin/false a la fin de la liste


Création d'un utilisateur :

Créer l'utilisateur toto, le groupe toto et le dossier /home/toto :
$ sudo adduser --home /home/toto --shell /bin/false toto
$ sudo adduser --home /home/toto --shell /bin/MySecureShell toto
Concernant la création des utilisateurs, il n'est pas utile de créer un groupe pour chaque nouvel utilisateur, il est conseillé de créer un groupe unique qui servira à placer tous les utilisateurs avec le shell /bin/false



Lister les utilisateurs d'un système :

$ cat /etc/passwd | grep /bin/false

vivien

  • Administrateur
  • *
  • Messages: 1 154
    • Voir le profil
    • La Fibre
Serveur FTP : ProFTPd
« Réponse #2 le: 30 mai 2010 à 08:24:24 »
Modifications à faire sur le fichier de configuration de ProFTPd :

sudo nano -w /etc/proftpd/proftpd.conf

# pour éviter le DNS inversé (ajout vieux proftpd)
IdentLookups                    off

Donner un nom au serveur :
ServerName                      "Serveur FTP de Vivien"

Lancement en standalone (par /etc/init.d/proftpd start) ou inetd (chaque connexion au port lance le serveur)
ServerType                      standalone


Pour ne pas donner d'info précise sur le serveur, mettre DeferWelcome a on
DeferWelcome                    on

Enlever le commentaire de DefaultRoot pour limiter le user à son home directory
DefaultRoot                     ~

Changer le port du serveur :
Port                            21

Si il y a du NAT, préciser le range pour les ports passif + votre ip publique :
PassivePorts                  49152 65534
MasqueradeAddress             217.171.24.1


Au dessus de la ligne de log  "TransferLog /var/log/proftpd/xferlog"
(sous la ligne # UseSendFile                   off)

rajouter les directives suivantes :

# limiter le nombre de tentatives de logins a 3
MaxLoginAttempts 3
# Message de Bienvenue
AccessGrantMsg "Bienvenue %u sur lafibre.info...."
# message affiché avant l'authentification
ServerIdent on "Vivien FTP"
# Limite le nombre de clients total
MaxClients 20
# Limite le nombre de clients pour la même personne
MaxClientsPerHost 12
# Utilise le fichier /etc/ftpusers pour définir tous
# les utilisateurs qui n'ont pas accès au service FTP
UseFtpUsers on
# Autoriser au client a indiquer des IP qui ne sont pas les siennes
AllowForeignAddress off

# Bridage IP : pas d'espace, chaque ip séparé par des virgules. pour ouvrir une plage de 255 IP mettre xxx.xxx.xxx.
# 87.88.45.45 Bbox perso Vivien
# 82.242.45.45 FreeBox Philippe
# 64.208.45. 62.23.45. Plage job
<Limit LOGIN>
Order allow,deny
Allow from 82.242.45.45,87.88.45.45,64.208.45.,62.23.45.
Deny from all
</Limit>

vivien

  • Administrateur
  • *
  • Messages: 1 154
    • Voir le profil
    • La Fibre
Serveur FTP : ProFTPd
« Réponse #3 le: 30 mai 2010 à 08:29:26 »
Pour aller plus loin :

Documentation officielle : http://www.proftpd.org/