Ce document décrit comment installer et configurer ProFTPD sur un serveur Debian Wheezy, il fonctionnera également sur Ubuntu 14.04. ProFTPD est un démon FTP pour les systèmes d'exploitation Unix et de type Unix. ProFTPD est développé, publié et distribué sous la licence publique GNU (GPL), qui l'établit essentiellement comme un logiciel libre, ce qui signifie qu'il peut être vendu, concédé sous licence et autrement manipulé de la manière souhaitée tant que le code source complet et complet accompagne tout ProFTPD regroupe ou est mis à disposition par tous les sites qui distribuent des binaires précompilés. Le logiciel peut être modifié par n'importe qui à tout moment, tant que toutes les œuvres dérivées sont également sous licence publique GNU.
Ce guide fonctionnera à la fois pour les serveurs Ubuntu et Debian.
1 Remarque préliminaire
Ce didacticiel est basé sur un serveur Debian 7.6, vous devez donc configurer une installation de base du serveur Debian 7.6 avant de poursuivre ce didacticiel. Le système doit avoir une adresse IP statique. J'utilise 192.168.0.100 comme adresse IP dans ce tutoriel et server1.example.com comme nom d'hôte.
2 Installer ProFTPD
2.1 Installation :
Nous allons d'abord installer ProFTPD et OpenSSL comme suit :
apt-get install proftpd openssl
Il vous demandera une question sur ProFTPD, sélectionnez autonome et appuyez sur OK.
Nous pouvons vérifier la version de ProFTPD comme suit :
proftpd -v[email protected] :~# proftpd -v
ProFTPD Version 1.3.4a
[email protected] :~#
2.2 Création d'utilisateurs ProFTPD
Pour cela je vais créer un groupe ftpgroup et l'utilisateur srijan pour ProFTPD. Je vais restreindre l'utilisateur srijan avec le répertoire personnel comme /ftpshare
addgroup ftpgroup
adduser srijan -shell /bin/false -home /ftpshare
[email protected]:~# adduser srijan -shell /bin/false -home /ftpshare
Adding user `srijan' ...
Adding new group `srijan' (1002) ...
Adding new user `srijan' (1001) with group `srijan' ...
Creating home directory `/ftpshare' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: <--ftppassword
Retype new UNIX password: <--ftppassword
passwd: password updated successfully
Changing the user information for srijan
Enter the new value, or press ENTER for the default<--ENTER
Full Name []: <--ENTER
Room Number []: <--ENTER
Work Phone []: <--ENTER
Home Phone []: <--ENTER
Other []: <--ENTER
Is the information correct? [Y/n] <--Y
[email protected]:~#
Nous allons maintenant ajouter l'utilisateur srijan au ftpgroup comme suit :
adduser srijan ftpgroup
Ensuite, nous devons protéger le répertoire contre la suppression et le renommage de son contenu par n'importe quel utilisateur, nous allons donc modifier les autorisations du répertoire comme suit :
chmod -R 1777 /ftpshare/
Ensuite, nous devons configurer ProFTPD comme suit :
nano /etc/proftpd/proftpd.conf
Apportez des modifications comme indiqué
[...]
UseIPv6 off
[...]
<Global>
RootLogin off RequireValidShell off </Global> DefaultRoot ~ <Limit LOGIN> DenyGroup !ftpgroup </Limit>
Je n'utilise pas IPV6 donc je suis parti ci-dessus, je désactive la connexion de l'utilisateur root avec ProFTPD par RootLogon off. DefaultRoot est ajouté pour restreindre l'accès des utilisateurs à leurs dossiers personnels uniquement. DenyGroup n'autorisera que les utilisateurs de ftpgroup à accéder au serveur ftp, toutes les autres connexions seront rejetées.
Redémarrez le service en tant que :
service proftpd restart
Parfois, vous obtiendrez une erreur lors du redémarrage du service, comme
[email protected] :~# service proftpd restart[ ok ] Arrêt du serveur ftp :proftpd.
[....] Démarrage du serveur ftp :proftpdserver1 proftpd[6052] :mod_tls_memcache/0.1 :avis :impossible pour enregistrer le cache de session SSL 'memcache' :la prise en charge de Memcache n'est pas activée
. d'accord
[e-mail protégé] :~#
Nous pouvons surmonter cette erreur en modifiant le fichier /etc/proftpd/modules.conf et en commentant la ligne comme suit :
nano /etc/proftpd/modules.conf
[...]
#LoadModule mod_tls_memcache.c
[...]
Il triera l'erreur.
Maintenant, nous pouvons nous connecter avec l'utilisateur srijan et le mot de passe à ftp://192.168.0.100
3 Activation de TLS dans ProFTPD
Pour activer TLS dans ProFTPD, ouvrez /etc/proftpd/proftpd.conf
nano /etc/proftpd/proftpd.conf
Effectuez les modifications comme suit et décommentez la ligne :
[...]
Include /etc/proftpd/tls.conf
[...]
Nous allons maintenant effectuer la sauvegarde du fichier d'origine, puis modifier le fichier comme indiqué ci-dessous :
cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
cat /dev/null > /etc/proftpd/tls.conf
nano /etc/proftpd/tls.conf
Donnez les entrées comme indiqué
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem TLSVerifyClient off TLSRequired on </IfModule>
Pour utiliser TLS, nous devons créer un certificat SSL. Je vais le créer dans /etc/proftpd/ssl, donc je crée d'abord ce répertoire :
mkdir /etc/proftpd/ssl
Ensuite, nous pouvons générer le certificat SSL comme suit :
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Nom du pays (code à 2 lettres) [AU] : <-- Saisissez le nom de votre pays (par exemple, "DE").
Nom de l'état ou de la province (nom complet) [Some-State] : <-- Saisissez le nom de votre état ou de votre province.
Nom de la localité (par exemple, ville) [] : <-- Entrez votre ville.
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] : <-- Saisissez le nom de votre organisation (par exemple, le nom de votre société).
Nom de l'unité organisationnelle (par exemple, section) [] : <-- Saisissez le nom de votre unité organisationnelle (par exemple, "Service informatique").
Nom commun (par exemple, VOTRE nom) [] : <-- Saisissez le nom de domaine complet du système (par exemple, "server1.example.com").
Adresse e-mail [] : <-- Saisissez votre adresse e-mail.
Maintenant, pour des raisons de sécurité, je vais rendre les certificats lisibles uniquement comme suit :
chmod 0440 /etc/proftpd/ssl/proftpd.key.pem
Redémarrez enfin le service ProFTPD comme suit :
service proftpd restart
Nous pouvons nous connecter au serveur ProFTPD avec le logiciel FileZilla. Vous devez avoir FileZilla installé sur le client pour vous connecter au serveur. Ouvrez FileZilla et donnez-lui les détails comme suit :
Les détails seront
Hôte =192.168.0.100
Protocole =FTP
Utilisateur =srijan
Port =peut être vide si vous ne l'avez pas personnalisé un autre port que 21
Mot de passe =ftppassword (juste créé ci-dessus)
Remarque :Étant donné que nous avons crypté notre connexion à l'étape ci-dessus, nous utiliserons le cryptage avec Exiger un FTP explicite sur TLS
Si vous n'avez pas configuré TLS, vous pouvez utiliser Utiliser le FTP standard
Il demandera de faire confiance aux certificats appuyez sur OK
Il sera connecté au répertoire partagé FTP.
4 Accès FTP anonyme dans ProFTPD
Nous pouvons créer un compte FTP anonyme dans ProFTPD, ajoutez simplement ces entrées dans le fichier de configuration ProFTPD :
nano /etc/proftpd/proftpd.conf
Et ajoutez ces entrées à la fin du fichier,
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group nogroup <Limit LOGIN> AllowAll </Limit> # 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 RequireValidShell off # Limit the maximum number of anonymous logins MaxClients 10 # Limit WRITE everywhere in the anonymous chroot <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous> ~
Connectez-le maintenant via FileZilla comme suit :
Remarque :Étant donné que nous avons crypté notre connexion à l'étape ci-dessus, nous utiliserons le cryptage avec Exiger un FTP explicite sur TLS
Si vous n'avez pas configuré TLS, vous pouvez utiliser Utiliser le FTP standard
Appuyez sur Connect :
Il vous demandera de faire confiance aux certificats, appuyez sur OK
Nous avons réussi à nous connecter au serveur avec un utilisateur anonyme.
Toutes nos félicitations! Nous avons maintenant configuré avec succès l'environnement de serveur ProFTPD dans Debian Wheezy :)
5 liens
- Debian :https://www.debian.org/
- Ubuntu :http://www.ubuntu.com/
- ProFTPD :http://www.proftpd.org/