Vous êtes ici : Proxy FTP
Frédéric Bourgeois Rennes

Proxy FTP libre:

Téléchargement: Ftp-proxy

Voici les sources de Suse ftp proxy suite, avec quelques améliorations non incluses dans la version Suse officielle.

Un proxy FTP est un serveur où s'exécute un relais transférant les transactions FTP depuis votre client vers un site FTP.

Voici la liste des modifications que j'ai apporté au logiciel Suse ftp-proxy-suite:

- Modification:
Format des logs, ajout d'un champ IP source permettant de suivre une connexion

- Correction:
Faille de sécurité de l'application concernant l'identification Ldap (en cas de mot de passe Ldap blanc la connexion était possible*).

- Ajout:
Vérification de l'appartenance à un groupe LDAP pour l'utilisateur

- Ajout:
Système de filtrage des commandes FTP par ACL (il est possible d'appliquer un filtrage de commandes sur une IP source/destination ou un réseau complet) permettant, par exemple, la création de listes blanches ou/et noires.

Le Proxy FTP modifié inclut maintenant des fonctionnalités de filtrage d'accès avancées, basées sur des ACL, listes de commandes FTP disponibles pour des groupes (clients ou destinations)

Le Proxy FTP intercepte tous les flux à destination des serveurs FTP et bloque immédiatement les sites interdits, les clients interdits, restreint les commandes FTP pour d'autres, ou bien autorise toutes les connections.

Par exemple il est possible d'interdire les commandes PUT et MPUT sur la destination ftpperso.free.fr ou bien d'interdire toute consultation à destination d'une liste de sites FTP ou bien d'appliquer ce type de règles pour toutes requêtes venant de postes clients précis .

Tous mes ajouts sont facultatifs pour le bon fonctionnement de l'application.

Pour compiler Proxy-Suite avec ldap il vous faut les paquets openldap-devel et libwrap-dev ( libldap2-dev et libwrap0-dev suivant les distributions ).

Sous Debian etch il suffit d'installer le paque ftp-proxy et de remplacer le binaire par le mien.
Pour les autres distributions il vous faut recompiler avec les options suivantes:

./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --with-libldap=/usr/lib/libldap.so.2

make

Dans le tar vous avez un exemple de fichier de configuration et un script de lancement de l'application.


Exemple de bloc à ajouter à un ftp-proxy.conf fonctionnel

##### Timeout d'inactivité du client

TimeOut 150

#############################
##### Rules
#############################################
### Liste d'ip et de réseau appartenant à un groupe

### Sample groupe1 : A List of allowed destinations

groupe1 /etc/proxy-suite/groupe1

### Sample groupe2 : A List of banned destinations

groupe2 /etc/proxy-suite/groupe2


##### commandes valides pour les sites ou clients FTP du groupe1

ValidCommands1 ABOR PASS PASV STOR MODE QUIT PORT SYST LIST REST PWD TYPE CWD DELE

##### commandes valides pour les sites ou clients FTP du groupe2

ValidCommands2 QUIT

##### règle par defaut

defaultrules ABOR PASS PASV STOR MODE QUIT SYST
###########################################

# Voir la doc de ftp-proxy pour ldap

LDAPAuthPWType {crypt}7,
LDAPBaseDN ou=People,dc=ldap,dc=kiakodé
LDAPBindDN uid=%s,ou=People,dc=ldap,dc=kiakodé
LDAPIdentifieruid
LDAPServer 192.x.x.x:389
UserAuthType ldap

# Pour vérifier le groupe de l'utilisateur ajouter ici votre requête ldap_search valide
# Exemple pour autoriser seulement les comptes ldap appartenants au groupe5 ou bien au groupe6 (ou les deux).
# ATTENTION ne pas finir la ligne de filtre avec ))

BASE dc=ldap,dc=kiakodé

FILTER (&(|(cn=groupe5)(cn=groupe6))(uniqueMember=uid=
ou pour seulement le groupe5
FITER (&(cn=groupe5)(uniquemember=uid=

# La variable uid et la fin du bloc seront ajoutés automatiquement par le programme

############################################

Exemple fichier de destination (une IP et un réseau):
ATTENTION: Ne fonctionne pas avec des noms DNS, uniquement des IP (plus valables avec la V5, il est possible de mettre directement des noms de domaines).

more /etc/proxy-suite/groupe1

# Destination
192.168.1.12
212.256.x.x
# Users
10.1.1.2

Attention l'application lit les fichiers groupes de haut en bas, une IP au dessus est donc prioritaire sur celles en dessous, idem pour les fichiers, groupe1 est prioritaire sur groupe2, etc ..

------------------------------------------

ftp.proxy supports the following FTP commands:

ABOR, ACCT, APPE, CDUP, CWD, DELE, FEAT, LIST,
MDTM, MKD, MODE, NLIST, NOOP, PASS, PASV, PORT, PWD, QUIT, RETR, REST, RNFR, RNTO, RMD, SITE,SIZE, SMNT, STAT, STOR, SYST, TYPE, USER, XCUP,XCWD, XMKD, XPWD, XRMD

See: http://www.suse.com/en/whitepapers/proxy_suite/ftp_proxy/index.html

------------------------------------------
*
We are trying to use ftp-proxy in our structure and we've noticed the
following behaviour with the simple Bind to the Ldap directory.
The first simple BIND made to the server ldap (Iplanet) returns the
following result according to password.

In Ftp-client:

- With good user and bad password: result=invalid credentials , it's not
ok (normal)

- With good user and password : result= succeed (normal)

- without password (but good user): result = succeed the proxy
continues to process the ftp request (strange!)

I read the code of proxy-suite-1.9.2.2, and i write a correction

In ftp-ldap.c ligne 184:

// Patch Fred Bug mot de passe nul

if (*pwd == '\0') {
syslog_write(U_ERR, "Bad password");
exit(-1);
}

I work on various modifications for ftp-proxy ( ex: identification
with Ldap Group and supports the ability to "filter" the FTP commands it receives
from the client ) and that works correctly.

For sample:

ftpclient -> for all destination IP
->;cmds=ALLO,APPE,DELE,MKD,RMD,RNFR,RNTO,STOR,STOU

And

ftpclient -> 10.0.0.1-> All cmds

And

fclient -> 10.0.0.2 -> ALLO

Etc

------------------------------------------

Mes projets :


Mon Github


e2guardian

Tous les articles

Copinage:


Me payer un café ?

Offer me a coffee ?


Si vous utilisez régulièrement mes logiciels:
- Vrrpd
- Ftp-proxy
- Livemamecab
- DansGuardian
- etc
Vous pouvez participer à l'achat de café et à l'hébergement du site Vous n'avez pas besoin d'un compte Paypal pour faire un don.
Like my work ? Donate !
Easy with or without a PayPal account.


Proverbe aléatoire à méditer, ou pas :
Noël en Décembre, Pâques au Rabanne
- [ Powered by du bricolage en PHP et du café | Thème : Light Blue par Vanquish ] -
© Frédéric Bourgeois Rennes, tous droits réservés - Reproduction interdite.

Administrer
Attention les informations ne sont données qu'à titre indicatif (surtout le proverbe).