Dans cette courte configuration, nous allons installer le serveur de fichiers FTP sur RHEL7 Linux en utilisant vsftpd. Nous nous en tiendrons à la configuration vsftpd par défaut qui permet aux comptes d'utilisateurs sur notre système Linux RHEL7 existant de se connecter via FTP à partir d'un emplacement distant, de répertorier et de transférer des fichiers. Commençons par l'installation :
Pour installer le serveur FTP sur Redhat 7 Linux, nous pouvons utiliser soit tftp-server
ou vsftpd
démon. Dans ce guide, nous utilisons vsftpd
:
[root@rhel7 ~]# yum install vsftpd
Ensuite, nous pouvons démarrer le vsftpd
service en utilisant un service
commande :
[root@rhel7 ~]# service vsftpd startRedirection vers /bin/systemctl start vsftpd.service
Pour rendre le démarrage du service FTP persistant après le redémarrage du système, utilisez :
[root@rhel7 ~]# systemctl enable vsftpdln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
Vérifiez et voyez si le port
21
est ouvert. Ne vous inquiétez pas si vous ne voyez pas l'IPv4 de ce port ouvert comme sa liaison IPv6.[root@rhel7 ~]# netstat -tanp | grep ECOUTER
Nous devons également ouvrir le port du pare-feu, sinon nous verrons le message d'erreur suivant lorsque nous essaierons de nous connecter :ftp :connect :aucune route vers hostftp>Pour ouvrir un port 21 sur Linux Redhat 7, utilisez les commandes Linux suivantes. Le port que nous restons ouvert au public même après le redémarrage du système :
[root@rhel7 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanentsuccess[root@rhel7 ~]# firewall-cmd --reloadsuccessÀ ce stade, nous devrions pouvoir nous connecter à partir d'un hôte distant où l'adresse IP de notre service FTP est
10.1.1.110
:$ ftp 10.1.1.110Connecté à 10.1.1.110 (10.1.1.110).220 (vsFTPd 3.0.2)Nom (10.1.1.110:lrendek) :rhel7331 Veuillez spécifier le mot de passe.Mot de passe :230 Connexion réussie.Type de système distant est UNIX.Utilisation du mode binaire pour transférer des fichiers.ftp>La prochaine configuration que nous devons effectuer est d'activer le module iptables
ip_conntrack_ftp
sinon, nous verrons le message d'erreur suivant interroger notre serveur FTP après une connexion réussie :ftp> ls227 Entrée en mode passif (10,1,1,110,166,190).ftp :connect :Aucune route vers hostftp>Comme solution temporaire, nous utilisons
modprobe
pour charger leip_conntrack_ftp
modules :[root@rhel7 ~]# modprobe ip_conntrack_ftpVoir cette page pour une solution plus permanente sur la façon de charger le module ip_conntrack_ftp après le redémarrage.
La dernière configuration que nous devons effectuer est d'activer le contexte FTP selinux pour les répertoires d'utilisateurs actuellement sur le système, sinon nous ne pourrons pas lire/écrire ou transférer des fichiers entre le serveur FTP et le client FTP :
230 Connexion réussie. Le type de système distant est UNIX. Utilisation du mode binaire pour transférer des fichiers. ).553 Impossible de créer le fichier.Pour activer le contexte du répertoire de base FTP selinux pour autoriser les commandes de lecture et d'écriture. Pour cela, nous utilisons
setsebool
commande :[root@rhel7 ~]# setsebool -P ftp_home_dir=1Ce qui précède définira en permanence le contexte du répertoire d'accueil FTP selinux
-P
après le redémarrage.ftp> put ftp-test.txtlocal :ftp-test.txt remote :ftp-test.txt227 Entrée en mode passif (10,1,1,110,174,219).150 OK pour envoyer les données.226 Transfert terminé.Vous avez maintenant configuré votre serveur FTP. Pour plus d'options de configuration, consultez le fichier de configuration principal du serveur FTP vsftpd
/etc/vsftpd/vsftpd.conf
. Lorsque vous apportez des modifications au fichier de configuration, assurez-vous de les appliquer en redémarrant le service FTP :[root@rhel7 ~]# service vsftpd restartRedirection vers /bin/systemctl restart vsftpd.service