Ce tutoriel décrit l'installation et la configuration de ProFTPD sur un serveur CentOS 7.2. ProFTPD est un démon FTP pour les systèmes d'exploitation Unix et Linux et distribué sous la licence publique GNU (GPL).
1 Remarque préliminaire
Ce didacticiel est basé sur un serveur CentOS. Vous devez donc configurer une installation de base du serveur CentOS 7.2 avant de poursuivre ce didacticiel. Le système doit avoir une adresse IP statique. J'utilise 192.168.1.100 comme adresse IP dans ce tutoriel et server1.example.com comme nom d'hôte.
2 Installer et configurer ProFTPD
2.1 Installation :
Nous avons besoin du logiciel du référentiel EPEL, activez-le comme suit :
yum -y install epel-release
Importez ensuite la clé GPG EPEL :
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
et mettre à jour les packages :
yum -y update
Nous allons installer ProFTPD et OpenSSL comme suit :
yum install -y proftpd openssl proftpd-utils
Nous devons démarrer le service et lui permettre de démarrer automatiquement au démarrage.
systemctl start proftpd.service
systemctl enable proftpd.service
Si vous avez installé firewalld, configurez le pare-feu avec firewall-cmd pour ouvrir le port FTP :
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Nous pouvons vérifier la version de ProFTPD comme suit :
proftpd -v[[email protected] ~]# proftpd -v
ProFTPD Version 1.3.5b
[[email protected] ~]#
2.2 Création d'utilisateurs ProFTPD
Je vais créer un groupe ftpgroup et un utilisateur tom pour ProFTPD. Je vais définir /ftpshare comme répertoire personnel pour l'utilisateur tom.
groupadd ftpgroup
Ensuite, j'ajouterai l'utilisateur srijan dans ftpgroup :
useradd -G ftpgroup tom -s /sbin/nologin -d /ftpshare
passwd tom
[[email protected] ~]# passwd tom
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
Définissez les autorisations pour le répertoire ftpshare :
chmod -R 1750 /ftpshare/
Nous sommes maintenant prêts pour la connexion ProFTPD. Mais les connexions ne sont pas encore cryptées, nous allons résoudre ce problème dans le chapitre suivant.
3 Activation de TLS dans ProFTPD
Pour activer TLS dans ProFTPD, ouvrez /etc/proftpd/proftpd.conf. Avant de modifier le fichier, il est préférable de sauvegarder le fichier d'origine, puis de modifier le fichier avec nano.
cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Ajoutez et modifiez les lignes comme indiqué en rouge.
[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]
J'ai ajouté les ports 6000 et 6100 pour autoriser le mode passif de ftp, de même j'autoriserai le mode passif via le service de pare-feu CentOS comme suit :
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
Nous pouvons vérifier l'état des ports comme suit :
firewall-cmd --list-ports
[[email protected] ~]# firewall-cmd --list-ports
6000-6100/tcp
[[email protected] ~]#
De plus, nous devons dire à SELINUX d'autoriser la lecture/écriture des fichiers.
setsebool -P allow_ftpd_full_access=1
Pour utiliser TLS, nous devons créer un certificat SSL. Je vais le créer dans /etc/pki/tls/certs, nous pouvons générer le certificat SSL comme suit :
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
[[email protected] certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Générer une clé privée RSA 1024 bits
.........++++++
écriture d'une nouvelle clé privée dans '/etc/pki/tls/certs/proftpd.pem'
- ----
Vous êtes sur le point d'être invité à entrer des informations qui seront incorporées
dans votre demande de certificat.
Ce que vous êtes sur le point d'entrer est ce qu'on appelle un nom distinctif ou un DN .
Il y a pas mal de champs mais vous pouvez laisser des champs vides
Pour certains champs il y aura une valeur par défaut,
Si vous saisissez '.', le champ restera vide.
-----
Nom du pays (code à 2 lettres) [XX] :<--DE
Nom de l'état ou de la province (nom complet) [] :<-- Hambourg
Nom de la localité (par exemple, ville) [Ville par défaut] : <-- Luneberg
Nom de l'organisation (par exemple, société) [Default Company Ltd] :<-- Comment forger
Nom de l'unité organisationnelle (par exemple, section) [] :<-- Développement
Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) [] :<-- server1.example.com
Adresse e-mail [] :<-- [e-mail protégé]
[[email protected] certificats]#
Donnez les valeurs ci-dessus en rouge selon votre choix, je viens de donner un exemple.
Maintenant, pour des raisons de sécurité, je vais rendre les certificats lisibles uniquement comme suit :
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Redémarrez enfin le service ProFTPD comme suit :
systemctl restart proftpd.service
Nous pouvons nous connecter au serveur ProFTPD avec le logiciel Filezilla, vous devez avoir Filezilla installé sur l'ordinateur client pour vous connecter au serveur. Ouvrez Filezilla et donnez les détails comme suit :
Les détails seront :
Hôte =192.168.1.100
Protocole =FTP
Utilisateur = tom
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 au certificat, appuyez sur OK
Il sera connecté au répertoire partagé FTP avec une connexion TLS.
4 Accès ftp anonyme dans ProFTPD
Nous pouvons créer un compte ftp anonyme dans ProFTPD, il suffit d'ajouter ces lignes dans le fichier de configuration de ProFTPD :
nano /etc/proftpd.conf
Et ajoutez ces lignes à la fin du fichier.
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Nous devons maintenant redémarrer le service FTP :
systemctl restart proftpd.service
Connectez-vous maintenant via Filezilla au compte anon 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 Connecter.
Nous sommes connectés avec succès au serveur avec un utilisateur anonyme.
Toutes nos félicitations! Nous avons maintenant configuré avec succès l'environnement de serveur ProFTPD dans CentOS 7.2 :)
5 liens
- CentOS :http://www.centos.org/
- ProFTPD :http://www.proftpd.org/