[gull] Load Balancer

Daniel Cordey dc at mjt.ch
Wed Mar 14 12:43:02 CET 2012


On Wednesday 14 March 2012 11:22:40 Francois Deppierraz wrote:

> J'ai eu de très bonnes expériences avec haproxy au niveau des
> performances et des possibilités de configuration. Par contre le support
> SSL n'est pas inclu mais il semble possible de l'utiliser avec stunnel
> (pas testé).

OK. je vais regarder plus en detail.

> > J'ai oublie qu'il est essentiel que les adresses IP du client ne soient
> > pas
> > recrites par le "*-proxy"...
> 
> Est-ce réellement nécessaire?

(Helas) oui ! Ayant le besoin de controler les "sessions" d'un utilisateur, et 
la necessite de detecter l'utilisation du meme compte par deux personnes en 
meme temps, nous utilisons la procedure suivante :

Lors du login, un ID se trouve attache a chaque page envoyee par le serveur et 
retourne par toute requete effectuee par le browser. Cet ID est "attache" a 
l'adresse IP au moment du login.  Lors de la reception de toute requete, l'IP 
est comparee au couple ID/IP stocker dans la DB. En cas de difference, la 
session est immediatement invalidee et seul un nouveau login permet a 
l'utilisateur d'utiliser le systeme a nouveau. De plus, toute session est 
automatiquement invalidee au bout d'un certain temps d'inactivite.

Ceci nous a non seulement permit de detecter des utilisations "frauduleuses" 
de notre service, mais aussi le fait que certains proxy d'entreprises avaient 
ete "pirates". En fait, on voyait clairement des requetes qui etaient 
"interceptees" par les proxy des clients, envoyees a une machine dans un 
botnet, envoyee de cette machine vers notre serveur, puis... la requete 
arrivait tranquillement depuis le proxy du client... Nous avons aussi ete 
capable de detecter que le piratage avait evoluer vers plus de subtilite avec 
le temps. 

Donc, nous recevions des requetes dont l'adresse IP ne correspondait pas a 
celle utilisee lors de la procedure de login...

Je precise au passage que ce type de "piratage" est specifiquement destine a 
"voler" des donnees confidentielles...

Il a ensuite fallut expliquer a certains clients que leur proxy (load-
balancing) etait mal configure et ne respectait pas les RFC... Pour d'autre il 
a fallut expliquer que leur proxy avait ete "pirate". 

La conclusion de tout ceci :

- Beaucoup d'entreprises ont out-source leur gestion IT ou reseau a des 
entreprises a l'etranger,  ou les priorites ne sont pas celles de l'entreprise 
mandataire.

- Ces entreprises emploient du personnel relativement incompetent, quoique 
quand meme plus competent que l'enreprise mandataire (ce qui n'est pas tres 
difficile)

- Parmis tous les responsables contactes, et concernes directement par le 
probleme, je n'ai rencontre QUE DES GENS PROFONDEMENT INCOMPETENTS. 
Incompetents au point de ne meme pas comprendre le probleme (dans le tas il y 
a une tres grande banque Suisse). Par contre, toutes ces personnes sont tres 
imbues d'elle-meme et tres attachees a la reconaissance de leur titre et 
entite pour laquelle ils travaillent.

Inutile de contacter MELANI, cette entite n'est qu'un ramassi de  
gens brassant du papier et se donnant beaucoup d'importance aux yeux de ceux 
qui veulent bien les ecouter. Je leur ai mentionne le nom de la banque, decrit 
dans le detail le piratage, fourni les adresse IP... ca ne suffisait pas... il 
fallait que je fasse tout le boulot d'investigation et que je leur fasse un 
rapport et communique tout mon travail... Quand j'ai poliment mentionne le 
fait que je n'etais pas paye par mon employeur pour ce travail, et qu'en plus 
cela concernait directement la confederation et la grande banque, mon 
interlocuteur est encore monte d'un cran dans l'arrogance et m'a dit que 
c'etait a moi de voir si je voulais faire "mon devoir de citoyen"... J'ai 
cesse d'aider ces gens et je ne suis pas pres de recontacter MELANI.

- La grande banque considere que le probleme est chez nous (Grandiose !!!)

- Meme probleme a l'etat de Geneve, qui m'a repondu que "ils ne pouvaient rien 
pour moi" !

C'est pathetique... Face a tant de nullite, je reste pantois... mais continue 
a verifier mes adresses IP :-)

> Si c'est pour des questions de logs, le plus simple est que ton
> load-balancer ajoute un header X-Forwarded-For aux requêtes et que tes
> serveurs web utilise ce header à la place de l'IP source pour les logs,
> le contrôle d'accés, etc.

Hmmm... Je n'aime pas trop les "speciaux" car au bout d'un certain nombre de 
modifications specifique, cela devient vite difficile a maintenir... Neanmoins, je 
vais investigue cette possibilite.

Merci pour les infos

dc


More information about the gull mailing list