PDA

Bekijk Volledige Versie : Mysql security achter een reverse-proxy



Crush
06/10/10, 19:26
Ik heb het volgende probleem. Ik heb een master-master mysql draaien achter een HAproxy. Dit werkt allemaal perfect. Uit veiligheid hebben de gebruikers binnen MySQL een IP restrictie dat alleen vanaf bepaalde IP adressen geconnect kan worden.

Het probleem is nu dat doordat ik nu via de proxy connect MySQL het IP van de proxy door krijgt. Gezien dit binnen het trusted netwerk valt krijg je toegang. MySQL zou eigenlijk het x-forwarded-Ip veld moeten controleren. Ik kan hier alleen geen documentatie over vinden om dit te wijzigen. Iemand hier toevallig ervaring mee?

vDong
06/10/10, 19:39
Ik heb het volgende probleem. Ik heb een master-master mysql draaien achter een HAproxy. Dit werkt allemaal perfect. Uit veiligheid hebben de gebruikers binnen MySQL een IP restrictie dat alleen vanaf bepaalde IP adressen geconnect kan worden.

Het probleem is nu dat doordat ik nu via de proxy connect MySQL het IP van de proxy door krijgt. Gezien dit binnen het trusted netwerk valt krijg je toegang. MySQL zou eigenlijk het x-forwarded-Ip veld moeten controleren. Ik kan hier alleen geen documentatie over vinden om dit te wijzigen. Iemand hier toevallig ervaring mee?

Mysql kan niks met een http header, omdat mysql niks met http doet, bedoel je niet dat je iets van phpmyadmin gebruikt en dat die niet behoorlijk checkt?

QBell
06/10/10, 21:34
Je hebt een semi professionele opstellen met een haproxy server (ik spreek van semi omdat master-master oplossingen ook zo zijn problemen geeft, maar daar kom je vanzelf weer achter). Maar je weet niet hoe je ip's moet blocken?┬┐?

Hoe heb je het ooit voor elkaar gekregen om haproxy en 2 masters goed geïnstalleerd te krijgen vraag ik mij dan af....

Om antwoord op je vraag te geven:
Het antwoord ligt redelijk simpel. Zorg dat mysql een eigen backend in haproxy heeft op een eigen poort en blokkeer die poort dan dmv iptables,

EVT kan ik je een aanbieding doen voor het beheer / installatie ervan, Maar dat mag niet hier ;) (zoals je wel uit mijn post kan halen heb ik redelijk wat ervaringen met deze setups).

Crush
07/10/10, 01:25
Mysql kan niks met een http header, omdat mysql niks met http doet, bedoel je niet dat je iets van phpmyadmin gebruikt en dat die niet behoorlijk checkt?

Je kan gebruikers privileges geven dat ze alleen van een bepaalde host kunnen connecten. Sinds de haproxy er tussen zit "denkt" mysql dat alle connecties altijd van het IP van de haproxy komen. Dit betekend dat iedereen van elk IP kan connecten.


Het antwoord ligt redelijk simpel. Zorg dat mysql een eigen backend in haproxy heeft op een eigen poort en blokkeer die poort dan dmv iptables,


In die richting had ik gewoon nog niet gekeken. Had alleen nog gekeken of MySQL instellingen hiervoor aangepast konden worden.

Op dit moment heeft MySQL al een eigen backend in haproxy met de standaard MySQL port. Wat jij zegt is dat ik gewoon via iptables al het verkeer wat geen intern verkeer is moet blokkeren om te connecten naar die port.

Crush
07/10/10, 01:53
Inmiddels idd opgelost met iptables. Grappig dat ik hier overheen heb gekeken. QBell bedankt voor de tip!

QBell
11/10/10, 18:21
You`re welcome.