Comment configurer et utiliser le serveur FTP dans redhat (server)?
EXEMPLES DE CONFIGURATION
Téléchargement sur un site L'exemple suivant crée un site FTP qui permet à un utilisateur dédié de
télécharger des fichiers. Il crée la structure de répertoires et les
modifications de configuration SELinux requises:
Exécutez la commande *setsebool ftp_home_dir = 1* en tant qu'utilisateur *root* pour autoriser l'accès aux répertoires de
base FTP.
Exécutez la commande *mkdir -p /myftp/pub* en tant qu'utilisateur
root pour créer un nouveau répertoire de niveau supérieur.
Définissez les autorisations Linux sur le répertoire */myftp/pub/*
pour autoriser un accès en écriture à un utilisateur Linux.
Cet exemple modifie le propriétaire et le groupe de la racine en
propriétaire utilisateur1 et groupe racine. Remplacez user1 par
l'utilisateur auquel vous souhaitez accorder un accès en écriture:
*~]# chown user1:root /myftp/pub*
*~]# chmod 775 /myftp/pub*
[10-6 19:04] +228 93 23 64 38: La commande *chown* modifie les autorisations du propriétaire et du
groupe. La commande chmod modifie le mode, permettant à l'utilisateur
user1 de lire, d'écrire et d'exécuter des autorisations, et les membres
du groupe racine de lire, d'écrire et d'exécuter des autorisations.
Tous les autres utilisateurs ont des autorisations de lecture et d’exécution, ce qui permet au serveur HTTP Apache de lire les fichiers
de ce répertoire.
[10-6 19:05] +228 93 23 64 38: Lors de l'exécution de SELinux, les fichiers et les répertoires
doivent être étiquetés correctement pour autoriser l'accès. La
définition des autorisations Linux ne suffit pas. Les fichiers
étiquetés avec le type public_content_t leur permettent d'être
lus par FTP, Apache HTTP Server, Samba et rsync. Les fichiers
étiquetés avec le type *public_content_rw_t* peuvent être écrits par FTP.
D'autres services, tels que Samba, nécessitent que les booléens soient définis avant de pouvoir écrire dans les fichiers étiquetés avec le type *public_content_rw_t*.
Étiquetez le répertoire racine (/myftp/) avec le type public_content_t, pour empêcher que les fichiers copiés ou nouvellement créés sous /myftp/ soient écrits ou modifiés par les services. Exécutez la commande suivante en tant qu'utilisateur root pour ajouter la modification de l'étiquette à la configuration du contexte de fichier:
*~]# semanage fcontext -a -t public_content_t /myftp*
[10-6 19:05] +228 93 23 64 38: Exécutez la commande *restorecon -R -v /myftp/* pour appliquer le
changement de libellé:
~]# restorecon -R -v /myftp/
restorecon reset /myftp context
unconfined_u:object_r:default_t:s0-
>system_u:object_r:public_content_t:s0
[10-6 19:05] +228 93 23 64 38: Confirmer que /myftp est étiqueté avec le type public_content_t
et /myftp/pub/ est étiqueté avec le type default_t:
*~]$ ls -dZ /myftp/drwxr-xr-x. root root system_u:object_r:public_content_t:s0/myftp*
*~]$ ls -dZ /myftp/pub/drwxrwxr-x. user1 root* *unconfined_u:object_r:default_t:s0
/myftp/pub/*
[10-6 19:06] +228 93 23 64 38: FTP doit être autorisé à écrire dans un répertoire avant que les
utilisateurs puissent télécharger des fichiers via FTP. SELinux
permet à FTP d'écrire dans les répertoires étiquetés avec le type
*public_content_rw_t*.
Cet exemple utilise */myftp/pub/* comme le répertoire que FTP peut écrire. Exécutez la commande suivante en tant qu'utilisateur root pour ajouter la modification de l'étiquette à la configuration du contexte de fichier:
*~] # semanage fcontext -a -t public_content_rw_t "/myftp/pub(/.*)?"*
[10-6 19:06] +228 93 23 64 38: Exécutez la commande *restorecon -R -v /myftp/pub* en tant
qu'utilisateur root pour appliquer le changement de libellé:
*~] # restorecon -R -v / myftp / pub*
*restorecon reset / myftp / pub contexte system_u: object_r: default_t: s0-> system_u: object_r: public_content_rw_t: s0*
Le booléen allow_ftpd_anon_write doit être activé pour permettre
à vsftpd d'écrire dans les fichiers étiquetés avec le type *public_content_rw_t*. Exécutez la commande suivante en tant
qu'utilisateur root pour activer cette valeur booléenne:
*~]# setsebool -P allow_ftpd_anon_write on*
*N.B: N'utilisez pas l'option -P si vous ne souhaitez pas que les modifications persistent lors des redémarrages.*
[10-6 19:06] +228 93 23 64 38: L'exemple suivant illustre la connexion via FTP et le téléchargement d'un fichier. Cet exemple utilise l'utilisateur user1 de l'exemple précédent, où user1 est le propriétaire dédié du répertoire / myftp / pub /:
Exécutez la commande cd ~/ pour changer dans votre répertoire
personnel. Ensuite, exécutez la commande *mkdir myftp* pour créer un répertoire dans lequel stocker les fichiers à télécharger via FTP.
Exécutez la commande *cd ~/myftp* pour passer dans le répertoire *~/myftp/*.
Dans ce répertoire, créez un fichier ftpupload. Copiez le contenu suivant dans ce fichier:
*File upload via FTP from a home directory.*
[10-6 19:06] +228 93 23 64 38: Exécutez la commande *getsebool allow_ftpd_anon_write* pour
confirmer que le booléen allow_ftpd_anon_write est activé:
*~]$ getsebool allow_ftpd_anon_write allow_ftpd_anon_write --> on*
Si ce booléen est désactivé, exécutez la commande *setsebool -P allow_ftpd_anon_write* en tant qu'utilisateur root pour l'activer.
N'utilisez pas l'option -P si vous ne souhaitez pas que la modification
persiste lors des redémarrages.
[10-6 19:07] +228 93 23 64 38: Exécutez la commande de service vsftpd start en tant qu'utilisateur root pour démarrer vsftpd:
*~]# service vsftpd start*
*Starting vsftpd for vsftpd: [ OK ]*
Exécutez la commande ftp localhost. Lorsque vous êtes invité à
entrer un nom d'utilisateur, entrez le nom d'utilisateur de l'utilisateur disposant d'un accès en écriture, puis entrez le mot de passe correct pour cet utilisateur:
Commentaires
Enregistrer un commentaire