Dans ce tutoriel, vous allez apprendre à installer un serveur FTP Fedora (ici proftpd) et à configurer cet environnement en fonction de vos besoins.
Pour installer l'environnement nous commençons par installer le service ftp sur le serveur
sudo dnf install proftpd
Une fois le service installer, autorisez le et démarrez le
sudo systemctl enable --now proftpd
Je vais ensuite me rendre sur mon client installer filezilla & tester la connexion
Pour installer le client FTP filezilla rendez-vous sur ce site
Téléchargez le client
Version Windows 64bits
Version sans manuel (ou avec peu importe tant que c'est pas la version pro)
Ouvrir le fichier
J'accepte la politique de confidentialité
Pas besoin du companion web
Pour tous les users
J'ajoute l'icone de bureau
Je laisse le chemin par défaut
J'installe
Je coche le démarrage maintenant
L'application est lancé !
Je renseigne l'ip de mon serveur, l'identifiant de mon utilisateur et le mot de passe (autre que root) pour tester l'accès.
J'accepte la connexion non sécurisé
Je suis connecté !
Pour installer le client FTP filezilla
sudo apt install filezilla
Pour lancer filezilla utilisez le terminal ou la liste des applications.
ilan@client-debian:~$ filezilla
L'application est lancé !
Je renseigne l'ip de mon serveur, l'identifiant de mon utilisateur et le mot de passe (autre que root) pour tester l'accès
Je coche "ne pas sauvegarder les mots de passe" pour ma part, ceci n'est pas obligatoire à vous d'adapter selon vos souhaits.
J'accepte la connexion non sécurisé
Je suis connecté !
Pour installer le client FTP filezilla
sudo dnf install filezilla
Pour lancer filezilla utilisez le terminal ou la liste des applications.
imartel@client-fedora:~$ filezilla
L'application est lancé !
Je renseigne l'ip de mon serveur, l'identifiant de mon utilisateur et le mot de passe (autre que root) pour tester l'accès
J'accepte la connexion non sécurisé
Je suis connecté !
Si la connexion ne fonctionne pas, il est possible que votre pare-feu bloques les requêtes LIST ou MLSD, pour cela utilisez des ports passifs & configurez les sur votre pare-feu
Modifiez dans /etc/proftpd.conf le contenu de la balise <Global> et ajoutez le contenu suivant
PassivePorts 49152 65535
J'ajoute la règle de pare-feu autorisant les ports dynamiques
sudo iptables -A INPUT -p tcp --match multiport --dports 49152:65535 -j ACCEPT
Pour la configuration de proftp nous allons nous rendre dans le dossier /etc
La majorité de la configuration se fera dans /etc/proftpd mais je reste dans /etc car il y a le fichier de configurer proftpd.conf qui va nous intéresser.
J'ajoute les règles de pare-feu pour autoriser les commandes (port 21) et la data (port 20)
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
Par défaut sur proftpd en environnement type Redhat la "protection" permettant de bloquer les utilisateurs dans leur répertoire home est déjà présente.
Je veux modifier cela pour les bloquer dan un répertoire à la racine nommé /tuto
Je vais d'abord créer un utilisateur "ftpuser" qui sera membre d'une groupe "grp_ftp", ce groupe aura tous les droits sur un dossier à la racine du nom de "tuto" :
sudo groupadd grp_ftp
sudo useradd ftpuser
sudo mkdir /tuto
sudo chmod 776 -R /tuto
ll /
[...]
drwxrwxrw-. 2 root root 6 28 oct. 11:28 tuto
[...]
Je vais ensuite modifier la configuration,pour cela rendez-vous dans le fichier /etc/proftpd.conf
sudo vim /etc/proftpd.conf
Une fois dans le fichier de configuration il faudra modifier la valeur "DefaultRoot"
Valeur de base
# Cause every FTP user except adm to be chrooted into their home directory
DefaultRoot ~ !adm
Valeur modifié
# Cause every FTP user except adm to be chrooted into their home directory
DefaultRoot /tuto !adm
On redémarre proftpd pour appliquer la nouvelle config
sudo systemctl restart proftpd
Je créer un petit fichier "test" dans le dossier /tuto afin de vérifier à la connexion si je suis dans le bon dossier
sudo touch /tuto/test
Je me reconnecte sur depuis le client ftp