Bonjour à tous, aujourd'hui, dans ce didacticiel, nous allons compiler et installer PureFTPd à partir des sources sur CentOS 7. Pure-ftpd est un démon FTP léger et stable qui prend en charge divers backends d'authentification comme les utilisateurs du système Linux, puredb, MySQL et PostgeSQL.
1. Installation de Pureftpd
Installez la chaîne d'outils de développement CentOS.
# yum -y groupinstall 'Development Tools'
Installez les fichiers de développement MariaDB.
# yum -y install mariadb-devel
Téléchargez les fichiers source pure-ftpd et décompressez l'archive.
# cd /usr/local/src
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.bz2
# tar xvjpf pure-ftpd-1*.tar.bz2
# cd pure-ftpd-1*
Exécutez la commande configure pour préparer la construction. Pour obtenir un aperçu de toutes les options de compilation, exécutez ./configure --help.
# ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin \
--libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc \
--sharedstatedir=/usr/com --localstatedir=/var --libdir=/usr/lib64 \
--includedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man \
--with-mysql --with-virtualchroot --with-everything
et compilez le binaire pure-ftpd :
# make
# make install
2. Création de fichiers de configuration et de scripts de démarrage
Nous créons d'abord le script de démarrage. Pour cette version, nous utiliserons le script de démarrage de CentOS 6.5 qui fonctionne toujours correctement sur CentOS 7.
# nano /etc/init.d/pure-ftpd
#!/bin/bash
#
# Startup script for the pure-ftpd FTP Server $Revision: 1.1 $
#
# chkconfig: - 85 15
# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd
# processname: pure-ftpd
# pidfile: /var/run/pure-ftpd.pid
# config: /etc/pure-ftpd/pure-ftpd.conf
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is configured.
# [ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
prog="pure-ftpd"
# Path to the pure-ftp binaries.
fullpath=/usr/sbin/pure-ftpd
pureftpwho=/usr/sbin/pure-ftpwho
pure_config=/etc/pure-ftpd/pure-ftpd.conf
pure_launch_script=/usr/sbin/pure-config.pl
start() {
echo -n $"Starting $prog: "
daemon "$pure_launch_script $pure_config --daemonize > /dev/null"
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/pure-ftpd
echo
}
stop() {
echo -n $"Stopping $prog: "
killproc pure-ftpd
RETVAL=$?
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/pure-ftpd
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
echo -n $"Reloading $prog: "
killproc pure-ftpd -HUP
RETVAL=$?
echo
;;
condrestart)
if [ -f /var/lock/subsys/pure-ftpd ] ; then
stop
# avoid race
sleep 3
start
fi
;;
status)
status pure-ftpd
RETVAL=$?
if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
$pureftpwho
fi
;;
*)
echo $"Usage: pure-ftpd {start|stop|restart|reload|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
3. Configuration des autorisations de fichiers
Maintenant, nous devrons fournir les autorisations de fichier requises par les commandes ci-dessous, ce qui inclut la configuration des éléments de post-installation.
# chmod +x /etc/init.d/pure-ftpd
# mkdir /etc/pure-ftpd/
# cp configuration-file/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf
# cp configuration-file/pure-config.pl /usr/sbin/pure-config.pl
# chmod 744 /etc/pure-ftpd/pure-ftpd.conf
# chmod 755 /usr/sbin/pure-config.pl
Ensuite, créez les liens de démarrage du système et démarrez PureFTPd :
# chkconfig --levels 235 pure-ftpd on
# systemctl start pure-ftpd.service
4. Configuration de TLS avec OpenSSL
Nous configurons maintenant PureFTPd pour autoriser les sessions FTP et TLS. FTP sans TLS est un protocole très peu sécurisé car tous les mots de passe et toutes les données sont transférées en texte clair . En utilisant TLS, toute la communication peut être chiffrée , rendant ainsi FTP beaucoup plus sûr.
OpenSSL est requis par TLS ; pour installer OpenSSL, nous exécutons simplement :
# yum -y install openssl
Ouvrez /etc/pure-ftpd/pure-ftpd.conf...
# nano /etc/pure-ftpd/pure-ftpd.conf
Si vous souhaitez autoriser les sessions FTP et TLS, définissez TLS sur 1 :
# Cette option peut accepter trois valeurs :
# 0 :désactive la couche de chiffrement SSL/TLS (par défaut).
# 1 :accepter les sessions traditionnelles et cryptées.
# 2 :refuser les connexions qui n'utilisent pas les mécanismes de sécurité SSL/TLS,
# y compris les sessions anonymes.
# Ne décommentez pas ceci aveuglément. Assurez-vous que :
# 1) Votre serveur a été compilé avec le support SSL/TLS (--with-tls),
# 2) Un certificat valide est en place,
# 3) Seuls les clients compatibles se connecteront.
Pour utiliser TLS, nous devons créer un certificat SSL. Je le crée dans /etc/ssl/private/, donc je crée d'abord ce répertoire :
mkdir -p /etc/ssl/private/
Ensuite, nous pouvons générer le certificat SSL comme suit :
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Modifiez les autorisations du certificat SSL :
# chmod 600 /etc/ssl/private/pure-ftpd.pem
Redémarrez enfin PureFTPd :
# systemctl stop pure-ftpd.service
# systemctl start pure-ftpd.service
Conclusion
Hourra, nous avons installé et configuré avec succès pureftpd. Nous pouvons maintenant profiter du transfert de données FTP avec la sécurité TLS. Veuillez noter que lors de la connexion au serveur FTP, nous devons configurer notre client FTP pour utiliser TLS si vous avez correctement installé et configuré les certificats SSL. Et par défaut, pureftpd ouvrira le port 21 pour communiquer avec le client. Si vous avez des problèmes, des questions ou des questions, veuillez commenter ci-dessous sans hésitation afin que nous puissions mettre à jour et améliorer davantage nos blogs et contenus.