Table des matières
FTP Proxy Cache avec Frox
En quête d'un accélérateur pour accéder a ftp://ftp.dell.com qui est beaucoup trop lent mon goût.
Cache
Frox
est un intéressant “proxy” et “cache” pour serveur FTP.
Par défaut, il peut fonctionner en mode transparent , mais ce n'est pas ce mode que je vais mettre en place.
~~READMORE~~
Installation
# aptitude update # aptitude install frox
Préparer un petit répertoire pour que frox
puisse y travailler.
# mkdir /var/spool/frox # mkdir /var/spool/frox/cache # chown nobody:nogroup /var/spool/frox/cache
Editer la conf /etc/frox.conf
a loisir. Moi j'ai ça:
Listen 192.168.4.14 Port 2121 ResolvLoadHack wontresolve.doesntexist.abc TcpOutgoingAddr 192.168.4.14 User nobody Group nogroup WorkingDir /var/spool/frox PidFile /var/run/frox.pid #APConv yes BounceDefend yes CacheModule local CacheSize 1000 # MB MinCacheSize 65536 # Bytes CacheAll yes DoNTP yes MaxForks 100 MaxForksPerHost 4 ACL Allow * - ftp.dell.com 21 ACL Deny * - *
Listen & TcpOutgoingAddr | Parce que j'ai une conf avec plusieurs interfaces réseau |
ACL | je restreint a ce P*tain de ftp lent |
Autoriser le daemon a demarrer en editant /etc/default/frox
:
RUN_DAEMON=yes
Démarrer:
# /etc/init.d/frox restart
En cas de besoin, pour être sur de tuer tout les daemons (forked) :
# killall frox
Test
Il faut que le client FTP se connecte a Frox
: Ensuite, pour renseigner le serveur FTP a atteindre, il faudra le renseigné sur le champ “user”.
Exemple, pour le Ftp de Dell: anonymous@ftp.dell.com
En pratique, ça donne ( avec “pftp” pour “passive FTP” ) :
$ pftp ftp.dell.com.eez.fr 2121 220 Frox transparent ftp proxy. Login with username[@host[:port]] Name (ftp.dell.com.eez.fr:thierry):
Donc, je tape:
anonymous@ftp.dell.com
Et puis vient la suite:
331 Anonymous access allowed, send identity (e-mail name) as password. Password:
Etc…
Je suis alors connecté via le service “frox”, sur le serveur ftp de Dell.
Les transferts seront cachés localement, comme le dit la conf de Frox.
Mais, si on utilise du NAT et un Firewall, il y a d'autres choses a faire encore…
Pour les autres: ça doit déjà fonctionner.
IpTables
Source:
Si ça ne fonctionne pas , c'est surement parce que l'on utilise le port 2121
qui n'est pas connu pour être un serveur FTP.
En conséquence, malgré que ip_conntrack_ftp
et ip_nat_ftp
soient chargé, ils n'effectuent par le traitement attendu pour un service FTP.
Il convient d'ajouter la liste des ports a “suivre” lors du chargement du module ip_conntrack_ftp
.
Ce qui donne dans /etc/modules
:
ip_conntrack_ftp ports=21,2121 ip_nat_ftp
Ou à la main:
# modprobe ip_conntrack_ftp ports=21,2121
Voila.
Je vous laisse le soin de définir les autres règles IpTables
Squid en cache
On peut aussi utiliser “squid” en cache.
Il suffit de changer la conf du cache en ça:
CacheModule http HTTPProxy 127.0.0.1:3128 MinCacheSize 65536 ForceHTTP no CacheAll yes
Pour “squid” , j'ai juste augmenté maximum_object_size
afin de cacher de “gros” fichiers.
Voila.