Archives mensuelles : août 2011

Paramétrage de ProFTP avec un utilisateur système dédié

Dans le cadre d’une intervention pour un client, j’ai du mettre en place un serveur FTP avec paramétrage d’un utilisateur unique qui ne pouvait accéder qu’à un dossier, propriété d’un autre utilisateur. Cet utilisateur ne devait pas pouvoir se logguer en SSH ou par un autre moyen. Autre souci, le serveur n’avait pas d’accès au Net et étant distant nous ne pouvions y insérer un CD-ROM avec les sources. Il fallait donc un serveur FTP que nous pouvions installer avec un minimum de RPM.

Installation

Bien que je sois plus habitué à Pure-FTP [link] j’ai choisi ProFTP car il ne présentait qu’un seul fichier RPM sur la configuration du serveur client (Mandriva 2009.0). Pour l’installer, soit vous avez déjà le RPM, soit vous pouvez le télécharger en ligne. Pour les serveurs installés sous Mandriva 2009.0 il s’agit du paquetage proftpd-1.3.2-0.4mdv2009.0.i586.rpm

wget ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2009.0/i586/media/main/updates/proftpd-1.3.2-0.4mdv2009.0.i586.rpm

Procédez ensuite à son installation :

rpm -i proftpd-1.3.2-0.4mdv2009.0.i586.rpm

Vérifiez que les services se lanceront bien automatiquement :

chkconfig –list | grep proftpd

Nous devons alors avoir cet affichage :

proftpd 0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche 5:marche 6:arrêt

Si cela n’est pas le cas, vous pouvez changer les démarrages du service en fonction des niveaux d’init avec la commande suivante :

chkconfig proftpd –level 2345 on

Configuration

Afin de lancer le serveur FTP nous utiliserons l’utilisateur nobody du groupe nobody. Pour cela nous allons vérifier son existence et son appartenance à ce groupe.

cat /etc/group | grep nobody

Si vous n’avez rien d’affiché, exécutez la commande suivante :

groupadd nobody

Ensuite nous vérifions la présence de l’utilisateur en question :

cat /etc/passwd | grep nobody

Si vous n’avez rien d’affiché il est possible de le créer :

useradd nobody -d / -s /bin/false usermod
nobody -g nobody

Nous nous servirons d’une commande similaire pour créer notre utilisateur de connexion en FTP, mais avant il nous faut définir /bin/false dans le fichier /etc/shells. Editez le avec VI (ou votre éditeur préféré) et ajoutez cette entrée en fin de fichier.

Nous créons ensuite notre utilisateur FTP :

useradd ftp-monserveur -s /bin/false -d /home/user-ftp/sauvegardes/ -g user-system1

Nous avons normalement cet affichage lors de sa création car le dossier existe déjà :

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

Nous définissons son mot de passe :

passwd user-ftp

Afin de limiter les connexions en FTP, nous nous arrangeons pour que tout les utilisateurs en dehors de user-ftp soient bien renseignés dans le fichier /etc/ftpusers Nous aurons alors le contenu suivant dans ce fichier :

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

rpm
messagebus
polkituser
vcsa
haldaemon
avahi
avahi-autoipd
postfix
ntp
sshd
mysql
apache
memcached
user-system1
user-system2
ftp

Nous passons ensuite au fichier de configuration de proftp : /etc/proftpd.conf Voici ci dessous les entrées à modifier, nous laisserons les autres par défaut.

# le nom du serveur
ServerName « Mon Serveur FTP »

# Autoriser l’usage de /etc/ftpusers
UseFtpUsers on

# Cantonner les utilisateurs dans leur répertoire personnel (déjà présente mais commentée)
DefaultRoot : ~

PassivePorts 40000 40020

Se servir de drakfirewall afin d’ouvrir les ports du serveur FTP : 21 donné dans la liste par défaut puis 40000:40020/tcp dans la partie avancée.

Nous pouvons maintenant démarrer le service :

service proftpd start

Voici deux liens vers des tutoriaux qui m’ont aidé dans cette configuration. Vous pourrez y constater que je ne me sers de presque rien côté options du serveur FTP et que vous pouvez aussi avec ProFTP  utiliser des utilisateurs virtuels comme avec Pure-FTP.