Serveur HTTP Apache Version 2.5
Description: | Module fournissant le support FTP à
mod_proxy |
---|---|
Statut: | Extension |
Identificateur de Module: | proxy_ftp_module |
Fichier Source: | mod_proxy_ftp.c |
Pour pouvoir fonctionner, ce module requiert le
chargement de mod_proxy
. Il fournit le support du
mandatement des sites FTP. Notez que le support FTP est
actuellement limité à la méthode GET.
Ainsi, pour pouvoir traiter les requêtes FTP mandatées,
mod_proxy
, et mod_proxy_ftp
doivent être chargés dans le serveur.
N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les serveurs mandataires ouverts sont dangereux non seulement pour votre réseau, mais aussi pour l'Internet au sens large.
Ce type particulier de fichier n'est probablement pas défini en
temps que application/octet-stream
dans le fichier
de configuration mime.types de votre mandataire. La ligne suivante
peut y remédier :
application/octet-stream bin dms lha lzh exe class tgz taz
Vous pouvez aussi utiliser la directive ForceType
pour définir par défaut tous les types
de fichiers en tant que fichiers binaires :
ForceType application/octet-stream
Dans les rares siruations où vous devez télécharger un fichier
spécifique en utilisant la méthode de transfert FTP
ASCII
(alors que le mode transfert par défaut est
binary
), vous pouvez modifier le mode de transfert de
mod_proxy
en suffixant la requête avec
;type=a
pour forcer un transfert en mode ASCII (les
listings de répertoires FTP sont cependant quant à eux transmis en
mode ASCII).
Actuellement, seule la méthode GET est supportée pour FTP dans
mod_proxy
. Vous pouvez par contre utiliser le chargement HTTP (POST
or PUT) via un mandataire Apache.
Un URI FTP est considéré comme relatif au répertoire home de
l'utilisateur connecté. Hélas, vous ne pouvez pas utiliser /../
pour atteindre des répertoires de niveau supérieur, car les points
sont interprétés par le navigateur et ne sont donc pas vraiment
envoyés au serveur FTP. Pour traiter ce problème, une méthode
nommée Squid %2f hack a été implémentée dans le
mandataire FTP Apache ; cette solution est aussi utilisée par
d'autres serveurs mandataires courants comme le Cache mandataire Squid. En
préfixant par /%2f
le chemin de votre requête, vous
pouvez faire en sorte que le mandataire modifie le répertoire FTP
racine en /
(au lieu du répertoire home). Par
exemple, pour extraire le fichier /etc/motd
, vous
pourriez utiliser l'URL :
ftp://utilisateur@serveur/%2f/etc/motd
Apache utilise différentes stratégies pour effectuer une connexion à un serveur FTP à l'aide d'un nom d'utilisateur et d'un mot de passe. En l'absence de nom d'utilisateur et de mot de passe dans l'URL, Apache tente une connexion anonyme auprès du serveur FTP comme suit :
utilisateur : anonymous
mot de passe : apache-proxy@
Ceci fonctionne avec tous les serveurs FTP courants configurés pour accepter les connexions anonymes.
Pour une connexion personnalisée avec un nom d'utilisateur spécifique, vous pouvez intégrer ce dernier dans l'URL comme suit :
ftp://nom-utilisateur@serveur/mon-fichier
Si le serveur FTP demande un mot de passe pour ce nom
d'utilisateur (ce qu'il est censé faire), Apache va renvoyer au
client une réponse 401
(Autorisation requise), ce qui
fera afficher au navigateur une boîte de dialogue utilisateur/mot
de passe. Une fois le mot de passe saisi, la connexion est tentée
à nouveau, et si elle réussit, la ressource demandée est
présentée. L'avantage de cette procédure réside dans le fait que
votre navigateur n'affiche pas le mot de passe en clair, ce qu'il
aurait fait si vous aviez utilisé l'URL :
ftp://nom-utilisateur:mot-de-passe@serveur/mon-fichier
Le mot de passe transmis de cette manière n'est pas chiffré lorsqu'il est envoyé. Il transite entre votre navigateur et le serveur mandataire Apache sous la forme d'une chaîne de texte en clair codée en base64, et entre le mandataire Apache et le serveur FTP en texte pur. Vous devez par conséquent réfléchir à deux fois avant d'accéder à votre serveur FTP via HTTP (et d'une manière générale avant d'accéder à vos fichiers personnels via FTP !) sur des canaux non sécurisés, car des oreilles indiscrètes pourraient intercepter votre mot de passe au cours de son transfert.
Apache examine l'URL de la requête afin de permettre la navigation dans les répertoires d'un serveur FTP ainsi que le téléchargement de fichiers. Si elle ressemble à un répertoire, ou contient des caractères génériques ("*?[{~"), alors Apache considère que c'est un listing qui est demandé, et non un téléchargement.
Vous pouvez désactiver le traitement spécial des noms contenant
des caractères génériques. Voir à cet effet la directive
ProxyFtpListOnWildcard
.
Description: | Définit le jeu de caractères des listings FTP mandatés |
---|---|
Syntaxe: | ProxyFtpDirCharset character_set |
Défaut: | ProxyFtpDirCharset ISO-8859-1 |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy_ftp |
Compatibilité: | Déplacé
depuis mod_proxy à partir de la version 2.3.5 d'Apache |
La directive ProxyFtpDirCharset
permet de
définir le jeu de caractères à utiliser pour les listings FTP en
HTML générés par mod_proxy_ftp
.
Description: | Les caractères génériques dans les noms de fichiers doivent-ils être échappés lorsqu'ils sont envoyés au serveur FTP ? |
---|---|
Syntaxe: | ProxyFtpEscapeWildcards on|off |
Défaut: | ProxyFtpEscapeWildcards on |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy_ftp |
Compatibilité: | Disponible depuis la version 2.3.3 du serveur HTTP Apache |
La directive ProxyFtpEscapeWildcards
permet
de déterminer si les caractères génériques ("*?[{~") que contiennent
les noms de fichiers demandés doivent être échappés pas un slash
inversé avant d'être envoyés au serveur FTP. Il s'agit du comportement
par défaut ; cependant, de nombreux serveurs FTP n'ont aucune
connaissance de la notion d'échappement, et tentent de servir le
fichier demandé sous sa forme littérale, en incluant les slashes
inversés dans son nom.
Définissez cette directive à "off" pour permettre le téléchargement de fichiers dont les noms contiennent des caractères génériques depuis des serveurs FTP qui ne connaissent pas l'échappement des caractères génériques.
Description: | Les caractères génériques dans les noms de fichiers demandés doivent-ils déclencher l'affichage d'un listing ? |
---|---|
Syntaxe: | ProxyFtpListOnWildcard on|off |
Défaut: | ProxyFtpListOnWildcard on |
Contexte: | configuration globale, serveur virtuel, répertoire |
Statut: | Extension |
Module: | mod_proxy_ftp |
Compatibilité: | Disponible depuis la version 2.3.3 du serveur HTTP Apache |
La directive ProxyFtpListOnWildcard
permet
de déterminer si les caractères génériques ("*?[{~") que contiennent
les noms de fichiers demandés provoquent l'affichage d'un listing de
fichiers par mod_proxy_ftp
au lieu de télécharger un
fichier. Il s'agit de leur comportement par défaut (valeur on).
Définissez cette directive à "off" pour permettre le téléchargement de fichiers même si leur nom contient des caractères génériques.