TP FTP

Transcription

TP FTP
N.GRASSA
RSI
ISET
NOM :
Prénom :
TP Administration - FTP
Installation d’un serveur FTP (exemple ProFTP)




Sur Ubuntu/Debian : apt-get install proftpd
Configuration : lancer proftp en inetd ou indépendamment (standalone) -->
indépendamment
Messages :
- création de l'utilisateur système ftp et son répertoire personnel /home/ftp
- fichier de configuration dans /etc/proftpd.conf et doc dans
/usr/share/doc/proftpd/
Tests
Pour démarrer, stopper, mettre à jour la configuration : /etc/init.d/proftpd
start|stop|reload
Examen des processus : ps aux | grep pro
Examen des ports : nmap localhost --> écoute sur le port 21
Pour vérifier la syntaxe de la configuration : proftpd -t

Documentation : Documentation sur http://www.proftpd.org/lists.html
Installation d’un client FTP (exemple gFTP)



Installation d'un client sur Ubuntu/Debian : apt-get install gftp
Une nouvelle entrée est créée dans le menu Applications -> Internet
Installation d’un client ftp sous Windows : il en existe plusieurs par exemple
Filezilla client (à télécharger sur le net)
Tests de transferts
1. Pour un fonctionnement de base, il n'y a rien à faire !
Par défaut, le serveur utilise les comptes utilisateurs locaux dont les données sont
stockées dans /etc/passwd et /etc/shadow. Un utilisateur possédant un compte sur
le système peut donc s'authentifier avec ce compte à partir d'un client ftp
quelconque
2. Connexion authentifiée A partir d'une station Linux ou Windows, lancer un client
ftp graphique (par exemple gftp) avec le compte stage (mot de passe : stage)
(si on préfère le client ftp d'origine, en mode commande avec le client ftp : ftp ip)
Constatez que la connexion comme root est refusée.
3. Tests de transferts
1
N.GRASSA
RSI
ISET
Effectuer une série de transferts dans et depuis votre répertoire personnel
/home/stage (ou "vos documents")
En particulier, effectuer une mise en ligne de votre site web personnel (c'est-à-dire
dans public_html). Vérifier par connexion http (ajouter des droits si nécessaire
avec le client ftp).
Vérifiez que l'utilisateur stage peut parcourir toute l'arborescence et transférer des
fichiers conformément à l'application des droits système classiques r-w-x
4. Suivi des connexions
La commande ftpwho donne la liste des utilisateurs connectés
La commande ftptop permet de connaitre en temps réel les machines connectées
5. Examen des logs
Examiner le fichier de log du serveur /var/log/xferlog (pour des détails voir man
xferlog.
La distinction du sens de transfert est effectuée par les indications suivantes :
o outgoing , i incoming , d deleted
On distingue aussi le mode d'accès (a anonymous / r authentifié)
La commande ftpstats (voir man ftpstats) fournit un rapport statistiques à partir
de ce fichier.
Paramétrage du système
Commencer prudemment par faire une copie de sauvegarde du fichier de configuration
/etc/proftpd.conf



Il apparait absolument nécessaire de parfaire le paramétrage actuel du serveur.
Les clients authentifiés peuvent se balader partout, en remontant jusqu'à la racine
du système de fichier ! et ils peuvent ainsi pratiquement télécharger tout ce qui
peut se lire.
Pour limiter l'accès des clients du serveur à leur répertoire personnel, ajouter la
ligne :
DefaultRoot ~
Le symbole ~ indique le répertoire utilisateur. Chaque utilisateur aura alors accès
seulement à son répertoire personnel vu comme une racine fictive du système de
fichiers
Ne pas oublier de relancer le service : /etc/init.d/proftpd reload. Vérifier.

Remarque : dans un contexte d'hébergement de sites personnels (cf TP apache2),
on peut limiter l'accès (et donc la mise en ligne de fichiers) aux sous-répertoires
public_html. Pour cela :
DefaultRoot "~/public_html"
2
N.GRASSA

RSI
ISET
Pour empêcher l'accès au serveur à des utilisateurs qui possèdent un compte, on
en dresse explicitement la liste dans le fichier /etc/ftpusers. Tester.
Accès en anonymous
On souhaite permettre le téléchargement de ressources, dans un répertoire dédié à celà
pour des utilisateurs "anonymes" (sans exigence d'authentification)


Il faut créer la section anonymous pour que les clients puissent se connecter
comme anonymous sans authentification, en fait au nom de l'utilisateur ftp. Ce
compte a été créé par le serveur et lui a attribué comme répertoire personnel :
/home/ftp, sans possibilité de se loguer (pas de shell). Pour vérifier, voir
/etc/passwd
L'utilisateur anonymous est défini comme un alias du compte ftp, on limitera à 10
connexions maximum simultanées,
Voici une configuration de base, permettant le téléchargement à partir du rép.
/var/ftp, et les dépots sans droit de lecture (uploads) dans /var/ftp/depot



























<Anonymous ~ftp>
User ftp
Group nogroup
# pour que anonymous soit considéré comme un alias de ftp
UserAlias anonymous ftp
MaxClients 10 "désolé, au maximum %m connexions !"
# pas de shell
RequireValidShell off
# sans mot de passe
AnonRequirePassword off
# PAS de droit d'écriture en général
<Directory /home/ftp>
<Limit WRITE>
DenyAll
</Limit>
</Directory>

Manipulation
1. Compléter /etc/proftpd.conf (voir ci-dessus), et relancer le serveur
# le sous-rép. depot est en écriture seule
<Directory /home/ftp/depot>
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous>
3
N.GRASSA
RSI
ISET
2. Vérifier l'existence du compte ftp
3. Essai de connexion anonymous : quel est le répertoire racine alors
accessible ? peut-on y écrire ?
4. Observer les propriétés et les permissions du sous-rép /home/ftp.
Créer le sous-rép. /home/ftp/depot avec les mêmes permissions que sur
/home/ftp.
5. Tester en anonymous le dépot de document : dans /var/ftp puis dans ses 2
sous-rep.
6. Quelqu'un (anonyme ou authentifié) peut-il récupérer un tel document
déposé ?
7. Alors qui va récupérer ces documents ?
Créer un compte admin/admin (Admin du FTP), qui appartienne au groupe
primaire ftp, et dont le rép. personnel soit /home/ftp.
8. Ouvrir une session FTP comme admin et tester ses prérogatives
4
N.GRASSA
RSI
ISET
ANNEXE
Si l’on veut automatiser l’ouverture d’une connexion FTP et faire le transfert ou
bien la réception d’un fichier ou dossier sur Windows :
On va créer pour cela deux fichier connectFTP.cmd et test.txt
connectFTP.cmd
cls
::On met un titre au shell
@title Envoie le contenu d un repertoire sur un dossier FTP. Ecrase les fichiers
déja existants si des noms sont concordants
::Supprimer les retours écran
@echo off
::#### VARIABLES####
ftp -s:test.txt
:FIN
::On quitte
test.txt
open $HOST
$USER
$PASSWORD
ascii
prompt off
mput C:\monfichier or mget *.pdf
5
N.GRASSA
RSI
ISET
close
quit
Si l’on veut automatiser l’ouverture d’une connexion FTP et faire le transfert ou
bien la réception d’un fichier ou dossier sur LINUX :
On va créer un seul fichier connectFTP.sh
ftp -i -n $HOST << EOF
quote USER $USER
quote PASS $PASSWD
get monfichier
pwd
quit
EOF
Où
ftp -n << EOF
open "$HOST"
quote USER $USER
quote PASS $PASSWD
get monfichier #or put "$1" avec $1 le param à transfèrer
quit
EOF
6

Documents pareils