07.06.2023

Comment configurer l'accès FTP sur CentOS 8

Un serveur FTP est utile pour gérer des sites Web et partager des fichiers. Dans ce tutoriel, nous allons configurer l'accès FTP sur CentOS 8 en utilisant vsftpd.

Installation et configuration du serveur FTP

Installons le paquet vsftpd.

dnf installer vsftpd

Démarrez maintenant le service.

systemctl démarrer vsftpd

Et ajoutez-le à l'exécution automatique.

systemctl activer vsftpd

Ouvrez le /etc/vsftpd/vsftpd.conf fichier.
Vérifiez ces parameters pour s'assurer qu'ils ont les valeurs correctes. Nous interdisons actuellement la connexion anonyme et l'autorisons pour les utilisateurs locaux. L'enregistrement FTP est également autorisé.

anonymous_enable = NON
local_enable = OUI
write_enable = OUI

Recherchez et décommentez cette ligne pour restreindre l'accès à tout sauf au répertoire personnel.

chroot_local_user=OUI

Et ajoutez cette ligne à la fin du fichier pour accorder l'accès aux fichiers de modification et d'écriture via FTP.

allow_writeable_chroot=OUI

Maintenant, enregistrez et fermez le fichier et ouvrez /etc/pam.d/vsftpd. Commentez cette ligne dedans :

#auth requis pam_shells.so

Si vous utilisez firewalld ajoutez-y le service FTP.

firewall-cmd --permanent --add-service=ftp
firewall-cmd --recharger

Redémarrez le service FTP.

systemctl redémarrer vsftpd

Création d'un utilisateur pour l'accès FTP

Créez un nouvel utilisateur et définissez son mot de passe.

utilisateurajouter un nouveauftpuser
mot de passe newftpuser

Pour l'empêcher de se connecter via ssh, changer sa coque.

usermod --shell /sbin/nologin newftpuser

Utilisation de SSL/TLS pour un FTP sécurisé

Vous pouvez utiliser SSL/TLS pour chiffrer votre connexion. Pour cela, vous pouvez utiliser Let's Encrypt ou un certificat SSL auto-signé.
Dans le le /etc/vsftpd/vsftpd.conf fichier ajouter les chemins aux clés et activer ssl_activer option.

rsa_cert_file=/etc/letsencrypt/live/domain_name/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/domain_name/privkey.pem
ssl_enable=OUI

Et redémarrez le service.

systemctl redémarrer vsftpd