MySQL HA and Security
Upcoming SlideShare
Loading in...5
×
 

MySQL HA and Security

on

  • 329 views

MySQL HA and Security Slides of SLAC 2013 in Berlin

MySQL HA and Security Slides of SLAC 2013 in Berlin

Statistics

Views

Total Views
329
Views on SlideShare
329
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MySQL HA and Security MySQL HA and Security Presentation Transcript

  • www.fromdual.com1 / 51MySQL HA & SecuritySLAC 20135. - 7. Juni 2013, BerlinOli SennhauserSenior MySQL Berater, FromDual GmbHoli.sennhauser@fromdual.com
  • www.fromdual.com2 / 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/openwww.fromdual.com
  • www.fromdual.com3 / 51Wir suchen noch:●MySQL Enthusiast/in für Support / remote-DBA / Beratungund● C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)
  • www.fromdual.com4 / 51InhaltHA Solutions➢Read scale-out➢Replication set-up for HA➢Active/passive fail-over➢MySQL Cluster➢Replication Cluster➢Storage-Engine-ReplicationMySQL 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) ClusterMySQL Security...
  • www.fromdual.com5 / 51MySQL Scale-Out vs Scale-UpScale-Out● Kosten● MySQL Design● Physische FlaschenhälseScale-Up● „Relaxation of Constraints“
  • www.fromdual.com6 / 51...Master – Slave ReplikationApplicationMasterlog_bin = onserver_id = 42Slave● Wir brauchen:● Binary Log● Server Id● User für die Replikation (auf dem Master)● Konsistentes Backup MIT Binary Log Positionbin-log.m bin-log.n relay-log.m relay-log.n...IO_threadSQL_thread
  • www.fromdual.com7 / 51High-Availability mit ReplikationApplicationMasterSlave BackupSlave ReportingrtwLoad balancerread onlySlave 1Slave 2Slave 3 ...async!Slave M● Fail-over?VIP
  • www.fromdual.com8 / 51Replikation Fail-overApplicationMasterSlave BackupLoad balancerSlave 1Slave ReportingSlave 2Slave 3rtwread only...async!Slave MVIP
  • www.fromdual.com9 / 51Vorteile / NachteileEinfaches „standard“ Set-upSehr gut wenn r >> wFail-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 transparentWenn Master stirbt→ welcher Slave wird neuere Master?Switch → viel Arbeit, etwas heikel!Es gibt Tools die helfen (MMM v1/v2, MHA, Tungsten, ...)
  • www.fromdual.com10 / 51Master-Master ReplikationApp App AppM1Slave1Slave2SlaveBackupLoad balancer (LB)M2VIPSlave3
  • www.fromdual.com11 / 51Master-Master ReplikationApp App AppM1Slave1Slave2SlaveBackupLoad balancer (LB)M2VIPSlave3
  • www.fromdual.com12 / 51Vorteile / NachteileNur wenig komplexer als Master/SlaveSehr gut wenn r >> wFail-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 transparentMan erhält dadurch NICHT mehr I/O Durchsatz!Ein wenig komplizierter (wieder-)aufzusetzen
  • www.fromdual.com13 / 51Aktiv/passiv fail-over mit SANApp App AppMSANSlave1Slave2Slave3Load balancing (LB)MVIP
  • www.fromdual.com14 / 51Aktiv/passiv fail-over mit SAN● SPOF 2! App App AppMSANSlave1Slave2Slave3Load balancing (LB)MVIP!!!
  • www.fromdual.com15 / 51Vorteile / NachteileSynchrone ReplikationI/O Durchsatz hängt vom SAN (I/O System) abKeine Daten IN-Konsistenzen möglichNur eine mögliche DatenquelleSlaves werden automatisch und sauber geschwenktSAN und Filesystem sind SpoFs!Teuer wenn SAN noch nicht vorhanden ist.SANs sind nicht einfach richtig zu betreiben!Andere Seite ist kalt nach Fail-over!Hälfte der Hardware ideltWesentlich komplexer aufzusetzen
  • www.fromdual.com16 / 51Aktiv/passiv fail-over mit DRBDApp App AppMSlave1Slave2Slave3Load balancing (LB)MVIPDRBD“Poor mans SAN”
  • www.fromdual.com17 / 51Activ/passiv fail-over mit DRBDApp App AppMSlave1Slave2Slave3Load balancing (LB)MVIPDRBD“Poor mans SAN”● SPOF 1!
  • www.fromdual.com18 / 51Vorteile / NachteileSynchrone ReplikationKeine Daten IN-Konsistenzen möglichNur eine mögliche DatenquelleSlaves werden automatisch und sauber geschwenktFilesystem ist SpoF!I/O Durchsatz tendenziell geringer als mit SANAndere Seite ist kalt nach Failover!Hälfte der Hardware ideltWesentlich komplexer aufzusetzen
  • www.fromdual.com19 / 51Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep wsrep
  • www.fromdual.com20 / 51Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2Node 1wsrepGalera replicationwsrepNode 3wsrep
  • www.fromdual.com21 / 51Vorteile / NachteileSynchrone ReplikationAktiv-aktiv multi-Master TopologieLesen und Schreiben auf alle Cluster-Knoten (KEIN r/w Split notwendig)Automatische KnotenverwaltungEchtes paralleles Replizieren auf ZeilenebeneKein Hinterherhinken des SlavesKeine verlorene TransaktionenLese-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 DeadlocksVoll-Synchronisation (SST) blockiert Lesen und Schreiben → 3 Koten
  • www.fromdual.com22 / 51Load balancing (LB)MySQL (NDB) ClusterMySQLServerNDB Cluster(Data nodes)MySQLServerMySQLServerndbd ndbdndbdndbdmgmdMGM clientSQL nodesmgmdMGM clientApp App AppNG0NG1Data nodes /Mgmt nodesLoad balancing (LB)Load balancing (LB)
  • www.fromdual.com23 / 51Vorteile / NachteileSynchrone ReplikationNur eine mögliche DatenquelleKeine Daten IN-Konsistenzen möglichExtrem hoher Durchsatz (wenn richtig gemacht)Skaliert sehr gut für Lesen UND Schreiben (wenn richtig gemacht)Wartung im „laufenden Betrieb“ möglichKein drop-in Ersatz für InnoDB/MyISAM!Hoher Bedarf an RAM (in-memory DB) und NetzwerkMindestens 3 Server (besser 4) sind erforderlich.Neue Datenbank zu lernen (MySQL Cluster != MySQL!)Komplexer aufzusetzen und zu betreiben als normales MySQLSchlecht für Joins (Network Database, Push Down Joins in v7.2)
  • www.fromdual.com24 / 51MySQL Security
  • www.fromdual.com25 / 51InhaltHA Solutions➢Read scale-out➢Replication set-up for HA➢Active/passive fail-over➢MySQL Cluster➢Replication Cluster➢Storage-Engine-ReplicationMySQL HA➢...MySQL Security➢Was ist Security?➢Probleme, Anforderungen, Konsequenzen, Massnahmen➢Vertraulichkeit➢Integrität➢Verfügbarkeit➢Informationsquellen
  • www.fromdual.com26 / 51Was ist Security/Sicherheit?● Vertraulichkeit● Zugriff nur durch autorisierte Nutzer● Integrität● Veränderung der Daten● Nachvollziehbarkeit● Verfügbarkeit● Verhinderung von Systemausfällen
  • www.fromdual.com27 / 51Sicherheitsprobleme (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
  • www.fromdual.com28 / 51Sicherheitsprobleme (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-CDs in D)● Externer Angriff (Zerstörung, DoS, Datenklau)● Gemäss Statistiken kommt interne Angriffe häufiger vorals externe...?
  • www.fromdual.com29 / 51Sicherheitsanforderungen● 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äterzurückzukriegen?● Wer hat Zugriff auf welche Daten?
  • www.fromdual.com30 / 51Konsequenzen● Wenn man nicht vorbereitet ist:● Firma muss geschlossen werden● Rechtliche Konsequenzen● Finanzieller Schaden €€€● (fristlose) Entlassung● Reputationsschaden
  • www.fromdual.com31 / 51Massnahmen● 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
  • www.fromdual.com32 / 51Vertraulichkeit
  • www.fromdual.com33 / 51Warum 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
  • www.fromdual.com34 / 51Zugriffsbeschränkung● Betriebssystem (root user)● Zugriff aufs DB Filesystem!● DB Zugriff● root von remote?● Passwörter: leer, default, gleich, ändern● Privilegien: ALL ON *.*
  • www.fromdual.com35 / 51Abwehrmassnahmen● MySQL Konfiguration● .history oder .mysql_history● Datenbank NIE Internet aussetzen → DMZ● Firewall● SQL-Firewall gegen Angriff aus der Applikation● Bekannte Angriffsziele meiden: phpMyAdmin
  • www.fromdual.com36 / 51phpMyAdminhttp://www.phpmyadmin.net/home_page/security/
  • www.fromdual.com37 / 51Upgrades● Upgrade Strategie?
  • www.fromdual.com38 / 51Warum Upgrade Demo
  • www.fromdual.com39 / 51Integrität
  • www.fromdual.com40 / 51Datenintegrität● Binary Log● General Query Log● Logon Trigger (init_connect)● Audit Log Plugin (Enterprise Feature)● McAfee MySQL Audit Plugin
  • www.fromdual.com41 / 51Verfügbarkeit
  • www.fromdual.com42 / 51Backup + Restore● Backup + Binary-Logging● Point-in-Time-Recovery (PiTR)● Restore-Tests um Überraschungen zuvermeiden
  • www.fromdual.com43 / 51Point-in-Time-Recovery (PITR)Application ApplicationApplicationmysqldbin-log.1 bin-log.2 bin-log.n...log_bin = ontfullbackup02:00 14:00
  • www.fromdual.com44 / 51Warum Restore Test Demo
  • www.fromdual.com45 / 51HA 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!
  • www.fromdual.com46 / 51Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep wsreprwrwsynchrone Replikation
  • www.fromdual.com47 / 51Galera Cluster für MySQLApp App AppLoad balancing (LB)Node 2 Node 3Node 1wsrepGalera replicationwsrep wsrep● Hardware-Ausfall● Wartungsarbeiten● HW/OS/DB Upgrade
  • www.fromdual.com48 / 51Demo Galera Cluster
  • www.fromdual.com49 / 51Informationen● http://www.fromdual.com/security● MySQL/MariaDB/Percona: Release-Notes● Oracle CPU● MySQL Dokumentation: Security● CVE● RedHat Security Advisors● full-disclosure@lists.grok.org.uk● MySQL Security Forum● GreenSQL: MySQL SQL Firewallhttp://www.greensql.com● McAfee: MySQL Audit Pluginhttps://github.com/mcafee/mysql-audit/downloads
  • www.fromdual.com50 / 51Wir suchen noch:●MySQL Enthusiast/in für Support / remote-DBA / Beratungund● C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)
  • www.fromdual.com51 / 51Q & AFragen ?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● Schulungwww.fromdual.com/presentations