SERVER FTP LINUX / UNIX Chapitre 13 RAYMOND

Transcription

SERVER FTP LINUX / UNIX Chapitre 13 RAYMOND
SERVEUR FTP Linux
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
1
Pure-FTPD
 Définition :
Pure-ftp est un serveur ftp (File transfert protocol) performant, fiable et simple à configurer.
Dans ce qui suit la configuration sur le quel nous allons nous appuyer est celui des distributions FEDORA,
RHL, RHEL. (réf pure-ftp fedora).
 Fonction principal disponible sure pure-ftpd:
limite du nombre d’utilisateurs
limitation de la bande passante
chroot des utilisateurs
support du protocole FXP (File eXchange
Protocol)
support de plusieurs types d’authentification
(Unix, PAM, LDAP, MySQL, PostgreSQL,
utilisateurs virtuels)
support des quotas
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
limitation de la connexion en fonction du
créneau horaire
limitation du nombre de connexion par IP
limitation du nombre de connexion par
utilisateurs
log via syslog
autocréation du dossier personnel
ratio upload/download
support de TLS
Administration LINUX / UNIX Chapitre 13
2
Pure -ftpd installation et configuration
1-installation de pure-ftpd :
# yum install pure-ftpd
2-Configuration de pure-ftpd:
# nano /etc/pure-ftpd/pure-ftpd.conf
Dedans on trouvera les lignes de la configuration relatif à:
1-Configuration générale du serveur
2-Manipulations sur les fichiers/dossiers
3-Configuration réseau
4-Configuration de l'authentification
5-Configuration de l'accès anonyme
6-Options pour les utilisateurs authentifiés
7-les utilisateurs virtuelles : authentification /droits/gestion
8- ajout des droits upload
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
3
2-2 MANIPULATION SUR LES FICHIERS ET DOSSIERS
# nano /etc/pure-ftpd/pure-ftpd.conf
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
4
2-2 CONFIGURATION GENERALE DU SERVEUR
# nano /etc/pure-ftpd/pure-ftpd.conf
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
5
2-3 CONFIGURATION RESEAU
# nano /etc/pure-ftpd/pure-ftpd.conf
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
6
2-4 CONFIGURATION DE L’AUTHENTIFICATION
# nano /etc/pure-ftpd/pure-ftpd.conf
Exemple :
Pour une authentification userftp a partir d’un serveur mysql, on
aurait juste qu’a configurer le fichier suivant pour le serveur
d’authenfication mysql:
« /etc/pure-ftpd/pure-ftpd.mysql »
Et idem pour LDAP et PostGresql
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
7
2-5 CONFIGURATION DE L’ACCES ANONYMES
# nano /etc/pure-ftpd/pure-ftpd.conf
il y a 3 types d'utilisateurs d'un serveur ftp:
1. ANONYMOUS (anonyme): pour permettre les accès publics sous le compte anonymous sans
avoir a donner de mot de passe secret. (dans ce cas, seule l'adresse de messagerie suffit
comme mot de passe) . Les utilisateurs connectés en ``anonymes'' se retrouvent apres
connexion dans un espace disque indépendant du file system général présent sur le disque.
2. REAL (réel): pour permettre à de réels utilisateurs de se connecter à leur home directory via le
serveur ftp. (Les utilisateurs ``réels'' sont ceux possédant un compte de connexion sur la
MACHINE SERVEUR ftp, et donc ayant une entrée personnelle dans /etc/passwd)
3. GUEST (Virtuelle): créer un compte ``guest'' est la bonne manière pour permettre à des
utilisateurs ``invités''de se connecter sur la machine serveur avec un mot de passe dans un
espace disque restreint!.
L'utilisateur invité ``guest'' doit posséder un compte sur la machine serveur (donc une entrée dans
/etc/passwd) . La seule différence avec le compte ``real'' ci dessus est que ces utilisateurs invités
se retrouvent après connexion dans un espace disque limité. le serveur effectue un ``chroot(2)''
qui modifie la racine du système de fichier. Comme pour un accès anonymous l'utilisateur invité
se retrouve connecté à partir d'une racine ``/'' virtuelle. Cette racine nouvelle est définie dans le
champs ``home directory'' de l'entrée de l'utilisateur dans /etc/passwd
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
8
2-5 CONFIGURATION DE L’ACCES ANONYMES
# nano /etc/pure-ftpd/pure-ftpd.conf
2-6 OPTIONS POUR LES UTILISATEURS
AUTHENTIFIEES
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
9
2-7- LES UTILISATEUR VIRTUELLES
2-7-1 Les utilisateurs virtuels
L'authentification peut utiliser un intéressant mécanisme s'appuyant sur des utilisateurs virtuels.
On créé de tels utilisateurs qui ne sont pas reconnus par unix mais seulement par le serveur
pureftpd.
Tous ces utilisateurs virtuels devront être mappés sur un utilisateur unix (ex:ftpuser). Ils pourront,
par exemple, être tous mappés sur le même uid(501:ftpuser) et gid (501 :ftpgroup) unix.
Les paramètres de ces utilisateurs virtuels sont stockés dans 2 fichiers :
/etc/pure-tpd/pureftpd.passwd (fichier ASCII) et /etc/pure-ftpd/pureftpd.pdb (fichier binaire).
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
10
2-7- LES UTILISATEUR VIRTUELLES
2-7-1 Les utilisateurs virtuels
L'authentification peut utiliser un intéressant mécanisme s'appuyant sur des utilisateurs virtuels.
On créé de tels utilisateurs qui ne sont pas reconnus par unix mais seulement par le serveur
pureftpd.
Tous ces utilisateurs virtuels devront être mappés sur un utilisateur unix (ex:ftpuser). Ils pourront,
par exemple, être tous mappés sur le même uid(501:ftpuser) et gid (501 :ftpgroup) unix.
Les paramètres de ces utilisateurs virtuels sont stockés dans 2 fichiers :
/etc/pure-tpd/pureftpd.passwd (fichier ASCII) et /etc/pure-ftpd/pureftpd.pdb (fichier binaire).
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
11
2-7- LES UTILISATEUR VIRTUELLES
Méthode standard pour créer un utilisateur virtuel:
Exemple de création manuelle de l'utilisateur virtuel « user » avec /home/user
comme homedir :
# pure-pw useradd user -u 120 -g 120 -d /home/user -m
Le compte est ajouté au fichier /etc/pure-ftpd/pureftpd.passwd qui ressemble
beaucoup à /etc/passwd mais avec plus d'options.
Attention, ce fichier n'est jamais directement utilisé par le daemon pureftpd.
l'option -m permet que cet ajout soit pris en compte tout de suite et soit aussi stocké dans la base
/etc/pure-ftpd/pureftp.pdb (fichier binaire) qui est directement utilisé par le daemon pure-ftpd.
le -d pour un homedir chrooté : l'utilisateur est bloqué dans son répertoire (-D
pour un homedir non chrooté).
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
12
2-7- LES UTILISATEUR VIRTUELLES
2-7- 2 Pour reconstruire la base /etc/pure-ftpd/pureftpd.pdb à partir de
/etc/pureftpd/pureftpd.passwd :
Si on modifie à la main le fichier pureftpd.passwd ou que l'on utilise pure-pw sans l'option -m, il
est nécessaire de mettre à jour pureftpd.pdb pour que les modifications soient prises en compte par
le daemon pure-ftpd (sans même avoir besoin de le redémarrer) :
# pure-pw mkdb
2-7-3 Pour changer le mot de passe de l'utilisateur virtuel « use r » :
# pure-pw passwd user -m
2-7-4 Pour voir les paramètres de l'utilisateur virtuel « use r » :
# pure-pw show user
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
13
2-7- LES UTILISATEUR VIRTUELLES
2-7- 2 Pour reconstruire la base /etc/pure-ftpd/pureftpd.pdb à partir de
/etc/pureftpd/pureftpd.passwd :
Si on modifie à la main le fichier pureftpd.passwd ou que l'on utilise pure-pw sans l'option -m, il
est nécessaire de mettre à jour pureftpd.pdb pour que les modifications soient prises en compte par
le daemon pure-ftpd (sans même avoir besoin de le redémarrer) :
# pure-pw mkdb
2-7-3 Pour changer le mot de passe de l'utilisateur virtuel « use r » :
# pure-pw passwd user -m
2-7-4 Pour voir les paramètres de l'utilisateur virtuel « user » :
# pure-pw show user
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
14
2-7- LES UTILISATEUR VIRTUELLES
2-7-4 Pour voir les paramètres de l'utilisateur virtuel « user » :
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
15
2-7- LES UTILISATEUR VIRTUELLES
2-7-4 Pour modifier un user ftp virtuelle :
# pure-pw usermod user -m
Exemple:
Pour supprimer une option telle que la limitation de bande passante, il faut faire
-t : limitation de la bande passante du téléchargement (il est ici sans valeur donc à 0)
-m : mise à jour automatique de la base de donnée des utilisateurs virtuels
(/etc/pure-ftpd/pureftpd.pdb)
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
16
2-7- LES UTILISATEUR VIRTUELLES
2-7-5 Pour modifier un mots de passe user ftp virtuelle :
# pure-pw passwd user -m
2-7-6 Pour supprimer un user ftp virtuelle :
Exemple ci-dessous (1-on supprime toto) puis (2- on verifie si toto est toujours là)
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
17
2-8- AJOUT UTILISATEUR UPLOAD
2-8-1 Exemple: création d’un utilisateur nommé upload pour l’envoi des fichier (uploader)
Cet utilisateur pourra écrire des fichiers dans le dossier upload du serveur FTP
(/var/ftproot/upload du serveur). Ce sera son dossier d'accueil mais pourra remonter
à la racine du FTP (/var/ftproot).
-D : Ne pas chrooter dans le dossier racine
(la racine sera explicitement définie par /./ dans la ligne de commande)
Le dossier upload est bien autorisé en écriture pour ftpuser.
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
18
3-DEMMARER PURE-FTD
Pour RHEL , fedora:
# service pure-ftpd start
Pour redemarrer:
# service pure-ftpd restart
Pour les autres distributions Linux:
# /etc/init.d/pure-ftpd start
Ou par interface graphique (system-config-service).
Pour activer automatiquement le service au démarrage avec RHEL ,fedora :
# chkconfig pure-ftpd on
Pour activer automatiquement le service au démarrage avec les autres distribution
linux:
# rc-update add pure-ftpd default
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
19
4- MONITORING PURE-FTPD
Pour surveiller les activités du serveur il faut lancer la commande :
# pure-ftpwho
-Dans la sortie on y trouve le PID, l'utilisateur, la durée, la vitesse, son action, le fichier et
l'adresse IP de l'utilisateur.
On trouve également des informations dans /var/log/messages (sauf si syslogd a été
configuré différemment).
Raymond RAZAFIMAMONJY
www.razafimamonjy.fr
Administration LINUX / UNIX Chapitre 13
20