[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