LAMP : 5ème Etape - PROFTPD... [DEBIAN]

DEBIANLINUXFTPTLSUTILISATEURS

PROFTPD : Installation

proftpd

D’abord, vous pouvez voir les serveurs qui sont packagés avec debian en utilisant la commande, en mode console ou via ssh :
apt-cache search ftp-server

Astuce : apt-cache permet de chercher les paquets existants dans le cache qui est chargé avec la commande aptitude.

Un des plus populaires est proftpd et vous pouvez l’installer avec la commande :
apt-get install proftpd

Une fois téléchargé, debconf va vous demander si vous voulez lancer le serveur via inet.d ou en mode standalone . En général, vous choisirez la dernière option.

Après l’installation, le serveur fonctionnera et autorisera l’accès de tous les utilisateurs au host.

Si vous voulez arrêter le serveur, par exemple, pour modifier la config, vous devez lancer la commande suivante :

/etc/init.d/proftpd stop

La configuration de proftpd est conduite par le fichier de configuration suivant :

/etc/proftpd/proftpd.conf.

Attention !, pour pouvoir ajouter des comptes seulement ftp sans accès local, il faudra dire à Debian d’utiliser un shell particulier. Pour celà, il ne faut pas oublier d’éditer le fichier /etc/shells et ajouter la ligne /bin/false.

PROFTPD : Options de sécurité

Vous pouvez activer beaucoup de fonctions de sécurité dans ftpd, la plus importante est d’utiliser TLS security.

Pour utiliser TLS, vous aurez besoin de générer une clé et de mettre à jour votre fichier de configuration serveur pour l’utiliser.

Générer une clé est suffisamment simple avec les commandes openssl, qui sont contenues dans le paquet openssl.

cd /etc/proftpd

PS : la clé est générée pour 1000 jours, à vous de choisir..

Jeu de questions/réponses :
Country Name (2 letter code) [AU] :

Réponse : FR

State or Province Name (full name) [Some-state] :

Réponse : Rhône-Alpes

Locality Name (eg. city) [] :

Réponse : MaVille .. attention, ne pas mettre d’accent ...

Organization Name (eg, Company) [Internet Widgits Pty Ltd]

Réponse : MonEntreprise ... attention les accents....

Organizational Unit Name (eg, section) [] :

Réponse : MonService

Common Name (eg, YOUR name) [] :

Réponse : MonNom

Email-Adress [] :

Réponse : MonAdresseEmail

LE CERTIFICAT TLS est CREE, toutes les connections ftp seront cryptées, mais il faut activer le module TLS.


PROFTPD : Activer le module TLS

Avec les fichiers générés, vous pouvez ajouter le texte suivant à votre fichier de configuration proftpd situé dans /etc/proftpd/proftpd.conf

nano /etc/proftpd/proftpd.conf

A ce stade, il convient de redémarrer le serveur proftpd.

/etc/init.d/proftpd stop
/etc/init.d/proftpd start

ATTENTION !

Il est possible, selon la version de Debian que vous avez, surtout dans les dernières, que le service démarre avec une erreur d’ipv6 du style :

Starting ftp server : proftpd - IPv6 getaddrinfo ’srv-lamp.monsite.com’ error : Name or service not known

La solution est d’aller supprimer dans le fichier de configuration /etc/proftpd/proftpd.conf l’utilisation de l’Ipv6, en changeant la ligne suivante :
UseIPv6 On
en
UseIPv6 Off

Ceci s’explique que le protocole utilisé par votre opérateur (IPV4 ou IPV6), il convient de demander à proftpd d’utiliser le même protocole. Par exemple, Free utilise IPV6, et votre serveur ne va pas générer d’erreur après avoir fait l’installation ci-dessus.

PROFTPD : Création des utilisateurs

Un utilisateur FTP n’est pas nécessairement un utilisateur local. Il s’agit ici de créer les utilisateurs FTP, dans le groupe FTPUSERS que nous allons créer par la commande suivante :

addgroup ftpusers

C’est ce groupe système qui va contenir tous les comptes FTP et chaque compte aura son répertoire personnel.

Pour faciliter la tâche, nous pouvons utiliser webmin, mais la solution la plus simple est de créer un script contenant les instructions suivantes.
Ce script, lancé à chaque création d’utilisateur FTP, permet d’ajouter l’utilisateur au groupe ftpusers avec aucun accès console (—shell /bin/false) et avec un répertoire d’arrivée pour l’accès ftp (—home $home $login).

Vous trouverez le script ci-dessous en fichier joint à cet article, il suffit de le copier dans un répertoire quelconque d’utilisateur du serveur, de lui donner les droits d’exécution (chmod 750 ftp2) et d’aller en console lancer manuellement le script pour chaque création d’utilisateur.

Par exemple : ./ftp2, puis georges, puis /home/ftp/georges, en réponse au script va créer l’utilisateur ftp georges, et lui attribuer le répertoire d’accueil dans /home/ftp/georges. Ainsi, on gère en même temps l’arborescence des utilisateurs, et les utilisateurs ftp (qui ne sont pas forcément des utilisateurs locaux, auront leur arborescence dans un propre répertoire ftp, situé sous /home de tous les utilisateurs locaux. Cela deviendra plus clair quand vous serez amené à parcourir l’arborescence de tous les utilisateurs et où on pourra distinguer facilement les utilisateurs ftp, parce qu’ils seront situés dans le sous-répertoire ftp. On fait d’une pierre deux coups, on crée et on classe...

Astuce : Pour exécuter un script quelconque, que vous venez d’écrire, il faut vérifier les choses suivantes :
 le script doit avoir les droits d’exécution (par défaut non car il ne s’agit que de fichier texte)

  • chmod 750 fichier
     il s’agit toujours de fichier texte, et pour dire au système qu’il s’agit d’un script, il faut lancer le fichier de la façon suivante :
  • ./ftp2

Pour peaufiner, détails exact du jeu de questions-réponses, retourné par le système à l’exécution du script :

ftp2

Entrez le login du compte à créer :

georges

Entrez le répertoire par défaut de l’utilisateur :

/home/ftp/georges

Enter new Unix password :

MotdePasseGeorges

Retype new Unix Password :

MotdePasseGeorges

Nom Complet :

Georges Dupont

N° Bureau :

2 (on peut ne pas répondre)

Tel professionnel :

04 77 77 77 77

Tel personnel :

04 77 77 77 77

Autres :

Cequel’onveut..

Ces informations sont elles correctes :

o

PROFTPD : Client FTP

Du fait que nous avons créé l’accès FTP (par défaut) et FTPS (TLS), il convient d’imposer à toutes les connexions extérieures l’utilisation du FTPS. Pour celà, il faut bloquer le port 21 en entrée de réseau et ouvrir le 989 et le 990.

En ce qui concerne le client, par exemple, filezilla, il convient de choisir FTPES FTP sur TLS/SSL comme protocole de communication.

PROFTPD : Limiter l’accès des utilisateurs

D’autres options de sécurité sont indispensable, notamment la limitation des utilisateurs à leurs répertoires particuliers.

Pour celà, ajouter les lignes suivantes à la fin de /etc/proftpd/proftpd.conf

Ainsi, tous les utilisateurs arriveront dans leur répertoire, mais n’auront aucun droit sur le système ainsi que tous les répertoires autres que ceux situés en dessous de leur point d’arrivée.

PROFTPD : Permettre les accès anonymes

Enfin, dernière option qu’on utilisera que si besoin et permettant un accès anonyme avec un maximum de sécurité. Cela permet, par exemple, à des utilisateurs distants d’utiliser le ftp pour télécharger des fichiers volumineux depuis votre serveur.

Pour permettre les accès anonymes à votre serveur, vous aurez besoin de décommenter les options de configuration qui sont présente dans le fichier standard /etc/proftpd.conf file.

C’est un bon point de départ :

Ce paramétrage de configuration autorisera les utilisateurs à se connecter à la fois en anonyme ou en ftp en tant qu’utilisateur authentifié, et ils seront capables de lire depuis /home/ftp.

Ils seront incapables d’uploader un nouveau contenu, ou de supprimer des fichiers existants. Ils auront seulement des droits d’accès de lecture seulement sur le serveur.

PROFTPD : Options et messages divers

Il y a quelques autres options que vous souhaiteriez quelquefois changer, par exemple le message de bienvenue.

Pour cela, le message de bienvenue est lu depuis /home/ftp/welcome.msg.

Editez ce fichier pour que le nouveau contenu soit immédiatement envoyé aux utilisateurs.

Enfin le hostname de votre serveur est typiquement affiché aux clients quand ils se connectent - dans le paquet Debian, le message de bienvenue affiche seulement la chaine "Debian", comme vous pouvez le voir dans la session suivante :

user@host : ftp localhost

Connected to localhost.localdomain.

220 ProFTPD 1.2.10 Server (Debian) [127.0.0.1]

Pour changer cette mise à jour, mettez à jour le fichier proftpd en incluant :

ServerName "NomServeur"

Documents joints