mysql ha and security

51
www.fromdual.com 1 / 51 MySQL HA & Security SLAC 2013 5. - 7. Juni 2013, Berlin Oli Sennhauser Senior MySQL Berater, FromDual GmbH [email protected]

Upload: fromdual-gmbh

Post on 09-May-2015

152 views

Category:

Technology


2 download

DESCRIPTION

MySQL HA and Security Slides of SLAC 2013 in Berlin

TRANSCRIPT

Page 1: MySQL HA and Security

www.fromdual.com

1 / 51

MySQL HA & Security

SLAC 2013

5. - 7. Juni 2013, Berlin

Oli SennhauserSenior MySQL Berater, FromDual GmbH

[email protected]

Page 2: MySQL HA and Security

www.fromdual.com

2 / 51

Über FromDual GmbH

● FromDual bietet neutral und unabhängig:● Beratung für MySQL● Support für MySQL und Galera Cluster● Remote-DBA Dienstleistungen für MySQL● MySQL Schulungen

● Oracle Silver Partner (OPN)● Mitglied bei SOUG, DOAG /ch/open

www.fromdual.com

Page 3: MySQL HA and Security

www.fromdual.com

3 / 51

Wir suchen noch:

● MySQL Enthusiast/in für Support / remote-DBA / Beratung

und● C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)

Page 4: MySQL HA and Security

www.fromdual.com

4 / 51

Inhalt

HA Solutions

➢ Read scale-out➢ Replication set-up for HA➢ Active/passive fail-over➢ MySQL Cluster➢ Replication Cluster➢ Storage-Engine-Replication

MySQL HA

➢ Scale-Out vs. Scale-Up➢ Master/Slave Replikation➢ Master/Master Replikation➢ Aktiv/passiv failover Cluster mit SAN➢ Aktiv/passiv failover Cluster mit DRBD➢ Galera Cluster für MySQL➢ MySQL (NDB) Cluster

MySQL Security

...

Page 5: MySQL HA and Security

www.fromdual.com

5 / 51

MySQL Scale-Out vs Scale-Up

Scale-Out

● Kosten● MySQL Design● Physische Flaschenhälse

Scale-Up

● „Relaxation of Constraints“

Page 6: MySQL HA and Security

www.fromdual.com

6 / 51

...

Master – Slave Replikation

Application

Master

log_bin = onserver_id = 42

Slave

● Wir brauchen:● Binary Log● Server Id● User für die Replikation (auf dem Master)● Konsistentes Backup MIT Binary Log Position

bin-log.m bin-log.n relay-log.m relay-log.n...

IO_thread

SQL_thread

Page 7: MySQL HA and Security

www.fromdual.com

7 / 51

High-Availability mit Replikation

Application

Master

Slave Backup

Slave Reporting

rtw

Load balancer

read only

Slave 1

Slave 2

Slave 3 ...

async!

Slave M

● Fail-over?

VIP

Page 8: MySQL HA and Security

www.fromdual.com

8 / 51

Replikation Fail-over

Application

Master

Slave Backup

Load balancer

Slave 1

Slave Reporting

Slave 2

Slave 3

rtw

read only

...

async!Slave

M

VIP

Page 9: MySQL HA and Security

www.fromdual.com

9 / 51

Vorteile / Nachteile

Einfaches „standard“ Set-up

Sehr gut wenn r >> w

Fail-over Seite ist bereits warm/heiss!

Zeitversatz Master/Slave (asynchron!)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Daten In-konsistenz (pt­table­checksum/pt­table­sync)

Read/write Split ist mühsam, da nicht transparent

Wenn Master stirbt→ welcher Slave wird neuere Master?

Switch → viel Arbeit, etwas heikel!

Es gibt Tools die helfen (MMM v1/v2, MHA, Tungsten, ...)

Page 10: MySQL HA and Security

www.fromdual.com

10 / 51

Master-Master Replikation

App App App

M1

Slave1

Slave2

SlaveBackup

Load balancer (LB)

M2

VIP

Slave3

Page 11: MySQL HA and Security

www.fromdual.com

11 / 51

Master-Master Replikation

App App App

M1

Slave1

Slave2

SlaveBackup

Load balancer (LB)

M2

VIP

Slave3

Page 12: MySQL HA and Security

www.fromdual.com

12 / 51

Vorteile / Nachteile

Nur wenig komplexer als Master/Slave

Sehr gut wenn r >> w

Fail-over Seite ist bereits warm/heiss!

Zeitversatz Master/Slave (asynchron!)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Daten In-konsistenz (pt­table­checksum/pt­table­sync)

Wenn Master stirbt, ist die Hälfte der Slaves „out of sync“!

Vorsicht beim Schreiben auf beide Master!

Read/write Split ist mühsam, da nicht transparent

Man erhält dadurch NICHT mehr I/O Durchsatz!

Ein wenig komplizierter (wieder-)aufzusetzen

Page 13: MySQL HA and Security

www.fromdual.com

13 / 51

Aktiv/passiv fail-over mit SAN

App App App

M'

SAN

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

Page 14: MySQL HA and Security

www.fromdual.com

14 / 51

Aktiv/passiv fail-over mit SAN

● SPOF 2! App App App

M'

SAN

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

!!!

Page 15: MySQL HA and Security

www.fromdual.com

15 / 51

Vorteile / Nachteile

Synchrone Replikation

I/O Durchsatz hängt vom SAN (I/O System) ab

Keine Daten IN-Konsistenzen möglich

Nur eine mögliche Datenquelle

Slaves werden automatisch und sauber geschwenkt

SAN und Filesystem sind SpoFs!

Teuer wenn SAN noch nicht vorhanden ist.

SAN's sind nicht einfach richtig zu betreiben!

Andere Seite ist kalt nach Fail-over!

Hälfte der Hardware idelt

Wesentlich komplexer aufzusetzen

Page 16: MySQL HA and Security

www.fromdual.com

16 / 51

Aktiv/passiv fail-over mit DRBD

App App App

M'

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

DRBD“Poor man's SAN”

Page 17: MySQL HA and Security

www.fromdual.com

17 / 51

Activ/passiv fail-over mit DRBD

App App App

M'

Slave1

Slave2

Slave3

Load balancing (LB)

M

VIP

DRBD“Poor man's SAN”

● SPOF 1!

Page 18: MySQL HA and Security

www.fromdual.com

18 / 51

Vorteile / Nachteile

Synchrone Replikation

Keine Daten IN-Konsistenzen möglich

Nur eine mögliche Datenquelle

Slaves werden automatisch und sauber geschwenkt

Filesystem ist SpoF!

I/O Durchsatz tendenziell geringer als mit SAN

Andere Seite ist kalt nach Failover!

Hälfte der Hardware idelt

Wesentlich komplexer aufzusetzen

Page 19: MySQL HA and Security

www.fromdual.com

19 / 51

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2 Node 3Node 1

wsrep

Galera replicationwsrep wsrep

Page 20: MySQL HA and Security

www.fromdual.com

20 / 51

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2Node 1

wsrep

Galera replicationwsrep

Node 3

wsrep

Page 21: MySQL HA and Security

www.fromdual.com

21 / 51

Vorteile / Nachteile

Synchrone Replikation

Aktiv-aktiv multi-Master Topologie

Lesen und Schreiben auf alle Cluster-Knoten (KEIN r/w Split notwendig)

Automatische Knotenverwaltung

Echtes paralleles Replizieren auf Zeilenebene

Kein Hinterherhinken des Slaves

Keine verlorene Transaktionen

Lese-Skalierbarkeit (read Scale-Out!) und mehr Schreiben (+ SSD)

Wartung im „laufenden Betrieb“ möglich (Rolling Restart)

Basiert auf InnoDB Storage Engine (nur auf InnoDB!)

Galera Binaries (nicht Oracle/MySQL)

Achtung vor Hots-Spots auf einzelnen Zeilen (z. B. Sequenzen-Tabelle)

Dadurch höhere Wahrscheinlichkeit von Deadlocks

Voll-Synchronisation (SST) blockiert Lesen und Schreiben → 3 Koten

Page 22: MySQL HA and Security

www.fromdual.com

22 / 51

Load balancing (LB)

MySQL (NDB) Cluster

MySQLServer

NDB Cluster(Data nodes)

MySQLServer

MySQLServer

ndbd ndbd

ndbdndbd

mgmd

MGM client

SQL nodes

mgmd

MGM client

App App App

NG0

NG1Data nodes /Mgmt nodes

Load balancing (LB)Load balancing (LB)

Page 23: MySQL HA and Security

www.fromdual.com

23 / 51

Vorteile / Nachteile

Synchrone Replikation

Nur eine mögliche Datenquelle

Keine Daten IN-Konsistenzen möglich

Extrem hoher Durchsatz (wenn richtig gemacht)

Skaliert sehr gut für Lesen UND Schreiben (wenn richtig gemacht)

Wartung im „laufenden Betrieb“ möglich

Kein drop-in Ersatz für InnoDB/MyISAM!

Hoher Bedarf an RAM (in-memory DB) und Netzwerk

Mindestens 3 Server (besser 4) sind erforderlich.

Neue Datenbank zu lernen (MySQL Cluster != MySQL!)

Komplexer aufzusetzen und zu betreiben als normales MySQL

Schlecht für Joins (Network Database, Push Down Joins in v7.2)

Page 24: MySQL HA and Security

www.fromdual.com

24 / 51

MySQL Security

Page 25: MySQL HA and Security

www.fromdual.com

25 / 51

Inhalt

HA Solutions

➢ Read scale-out➢ Replication set-up for HA➢ Active/passive fail-over➢ MySQL Cluster➢ Replication Cluster➢ Storage-Engine-Replication

MySQL HA

➢ ...

MySQL Security

➢ Was ist Security?➢ Probleme, Anforderungen, Konsequenzen, Massnahmen➢ Vertraulichkeit➢ Integrität➢ Verfügbarkeit➢ Informationsquellen

Page 26: MySQL HA and Security

www.fromdual.com

26 / 51

Was ist Security/Sicherheit?

● Vertraulichkeit● Zugriff nur durch autorisierte Nutzer

● Integrität● Veränderung der Daten● Nachvollziehbarkeit

● Verfügbarkeit● Verhinderung von Systemausfällen

Page 27: MySQL HA and Security

www.fromdual.com

27 / 51

Sicherheitsprobleme (1)

● Technische Sicherheitsprobleme● Sind einfach in den Griff zu bekommen

● Hardware geht kaputt● Gut wenn schnell kaputt● Schlecht wenn langsam kaputt● CPU, RAM, I/O-Controller, NW, Motherboard

● Stromausfall● Disk läuft voll, DB crashed, Replikation bleibt stehen...● Monitoring → Error Log anschauen!● Bugs

Page 28: MySQL HA and Security

www.fromdual.com

28 / 51

Sicherheitsprobleme (2)

● Menschliche Sicherheitsprobleme● Sind etwas schwieriger in den Griff zu bekommen!

● Unfall: Ups!!!

UPDATE emp SET salary = salary + 10000; WHERE position = 'manager';

DROP auf Produktion anstatt auf Entwicklungssystem :-(

● Interner Datenklau (Schweizer Daten-CD's in D)● Externer Angriff (Zerstörung, DoS, Datenklau)● Gemäss Statistiken kommt interne Angriffe häufiger vor

als externe...?

Page 29: MySQL HA and Security

www.fromdual.com

29 / 51

Sicherheitsanforderungen

● Was sind die Anforderungen?● vs. was sind die Kosten?● Wie lange darf ein Restore/Recovery dauern?

● MTTR

● Welcher Datenverlust kann akzeptiert werden?● Alte Daten, neue Daten?

● Ist es akzeptable, alte Daten erst später zurückzukriegen?

● Wer hat Zugriff auf welche Daten?

Page 30: MySQL HA and Security

www.fromdual.com

30 / 51

Konsequenzen

● Wenn man nicht vorbereitet ist:● Firma muss geschlossen werden● Rechtliche Konsequenzen● Finanzieller Schaden €€€● (fristlose) Entlassung● Reputationsschaden

Page 31: MySQL HA and Security

www.fromdual.com

31 / 51

Massnahmen

● Was können wir für die Sicherheit tun?● Technische Massnahmen:

● Backup + Restore + Restore-Tests● HA-Lösungen● Logging

● Organisatorische Massnahmen● Regelmässige Upgrades (DB, O/S)● Zugriffskontrolle/-beschränkungen

Page 32: MySQL HA and Security

www.fromdual.com

32 / 51

Vertraulichkeit

Page 33: MySQL HA and Security

www.fromdual.com

33 / 51

Warum so pingelig?

● Fuss in der Türe → Hocharbeiten● Denial of Service DoS

● Script Kiddies, Mitbewerber, Erpressung, Schaden

● Reputationsschaden● Datendiebstahl

● Kunden- oder Produktionsdaten,Steuersünder, etc.

● Hoster!● 100e von Nutzern

Page 34: MySQL HA and Security

www.fromdual.com

34 / 51

Zugriffsbeschränkung

● Betriebssystem (root user)

● Zugriff aufs DB Filesystem!● DB Zugriff

● root von remote?

● Passwörter: leer, default, gleich, ändern● Privilegien: ALL ON *.*

Page 35: MySQL HA and Security

www.fromdual.com

35 / 51

Abwehrmassnahmen

● MySQL Konfiguration● .history oder .mysql_history● Datenbank NIE Internet aussetzen → DMZ● Firewall● SQL-Firewall gegen Angriff aus der Applikation● Bekannte Angriffsziele meiden: phpMyAdmin

Page 36: MySQL HA and Security

www.fromdual.com

36 / 51

phpMyAdmin

http://www.phpmyadmin.net/home_page/security/

Page 37: MySQL HA and Security

www.fromdual.com

37 / 51

Upgrades

● Upgrade Strategie?

Page 38: MySQL HA and Security

www.fromdual.com

38 / 51

Warum Upgrade Demo

Page 39: MySQL HA and Security

www.fromdual.com

39 / 51

Integrität

Page 40: MySQL HA and Security

www.fromdual.com

40 / 51

Datenintegrität

● Binary Log● General Query Log

● Logon Trigger (init_connect)

● Audit Log Plugin (Enterprise Feature)● McAfee MySQL Audit Plugin

Page 41: MySQL HA and Security

www.fromdual.com

41 / 51

Verfügbarkeit

Page 42: MySQL HA and Security

www.fromdual.com

42 / 51

Backup + Restore

● Backup + Binary-Logging● Point-in-Time-Recovery (PiTR)● Restore-Tests um Überraschungen zu

vermeiden

Page 43: MySQL HA and Security

www.fromdual.com

43 / 51

Point-in-Time-Recovery (PITR)

Application ApplicationApplication

mysqld

bin-log.1 bin-log.2 bin-log.n...

log_bin = on

t

full

bac

kup

02:00 14:00

Page 44: MySQL HA and Security

www.fromdual.com

44 / 51

Warum Restore Test Demo

Page 45: MySQL HA and Security

www.fromdual.com

45 / 51

HA Lösungen

● RAID für Platten● Cluster-Lösungen

● Master-Slave Replikation● Galera Cluster für MySQL● Aktiv/passiv Failover-Cluster SAN/DRBD● MySQL Cluster

● → Hatten wir ja schon zu Beginn.

● Achtung: NICHT für logische Fehler → Backup!

Page 46: MySQL HA and Security

www.fromdual.com

46 / 51

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2 Node 3Node 1

wsrep

Galera replicationwsrep wsrep

rwrw

synchrone Replikation

Page 47: MySQL HA and Security

www.fromdual.com

47 / 51

Galera Cluster für MySQL

App App App

Load balancing (LB)

Node 2 Node 3Node 1

wsrep

Galera replicationwsrep wsrep

● Hardware-Ausfall● Wartungsarbeiten

● HW/OS/DB Upgrade

Page 48: MySQL HA and Security

www.fromdual.com

48 / 51

Demo Galera Cluster

Page 49: MySQL HA and Security

www.fromdual.com

49 / 51

Informationen

● http://www.fromdual.com/security● MySQL/MariaDB/Percona: Release-Notes● Oracle CPU● MySQL Dokumentation: Security● CVE● RedHat Security Advisors● [email protected]● MySQL Security Forum● GreenSQL: MySQL SQL Firewall

http://www.greensql.com

● McAfee: MySQL Audit Plugin

https://github.com/mcafee/mysql-audit/downloads

Page 50: MySQL HA and Security

www.fromdual.com

50 / 51

Wir suchen noch:

● MySQL Enthusiast/in für Support / remote-DBA / Beratung

und● C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)

Page 51: MySQL HA and Security

www.fromdual.com

51 / 51

Q & A

Fragen ?

Diskussion?

Wir haben Zeit für ein Security Audit...

● FromDual bietet neutral und unabhängig:● Beratung

● Remote-DBA

● Support für MySQL und Galera Cluster

● Schulung

www.fromdual.com/presentations