Als je ooit MySQL hebt gebruikt, is de kans groot dat je back-ups van je database hebt gemaakt. Als u back-ups van uw database hebt gemaakt, is de kans groot dat u er minstens één keer over heeft nagedacht hoe u deze kunt beveiligen. In deze blogpost gaan we je vertellen hoe je dat precies doet.
Waarom zou u uw MySQL-back-ups beveiligen?
Voordat we u vertellen hoe u uw MySQL-back-ups moet beveiligen, moeten we u waarschijnlijk vertellen waarom u ze in de eerste plaats moet beveiligen. Wat bedoelen we zelfs met het "beveiligen" van uw MySQL-back-ups? MySQL-back-ups moeten standaard veilig zijn, toch? Helaas is niet alles zo eenvoudig als het lijkt. Om veilige MySQL-back-ups te maken en te onderhouden, moet u rekening houden met het volgende:
-
Maak veilig uw MySQL-back-ups
-
Sla uw MySQL-back-ups veilig op
-
Zet uw MySQL-back-ups veilig over
Dat is natuurlijk makkelijker gezegd dan gedaan, maar we zullen wat algemeen advies geven dat je in de goede richting kan leiden.
MySQL-back-ups beveiligen
-
Om veilig uw MySQL-back-ups te maken door bijvoorbeeld mysqldump te gebruiken, kunt u overwegen de gebruikersnaam en het wachtwoord van uw MySQL-gebruiker in my.cnf. U kunt zelfs een .my.cnf-bestand in uw thuismap maken, de gebruikersnaam en het wachtwoord daar opslaan en vervolgens de optie --defaults-extra-file gebruiken om MySQL te vertellen dit bestand te lezen na het algemene optiebestand:
[mysqldump] user=demo_user password=demo_password
Op deze manier hoeft u uw MySQL-wachtwoord niet langer op te geven wanneer u mysqldump uitvoert - door uw gebruikersnaam en wachtwoord in my.cnf te plaatsen, maakt u uw wachtwoord onzichtbaar voor iemand anders dan DBA's.
-
Overweeg om mysqldump-secure te bekijken:het is een POSIX-compatibel wrapper-script voor mysqldump met encryptiemogelijkheden. De tool kan back-ups maken van databases als afzonderlijke bestanden. Databases kunnen ook op de zwarte lijst worden gezet om een back-up te maken. De tool kan ook uw MySQL-databases versleutelen en het is ook zelfvaliderend, wat betekent dat als er iets misgaat, het u zal vertellen wat er is gebeurd en hoe u het kunt oplossen, dus als u op zoek bent naar een alternatief voor mysqldump, overweeg dan zeker om het een probeer.
-
Als u eenmaal een back-up hebt gemaakt van uw MySQL- of MariaDB-database-instanties, kunt u overwegen deze te versleutelen. De kans is groot dat gegevens een van de kostbaarste activa van uw organisatie zijn en door ze te versleutelen, kunt u ervoor zorgen dat ze goed worden beschermd. Gelukkig is het versleutelen van MySQL-back-ups niet erg ingewikkeld en kan het op een aantal manieren worden gedaan, waaronder het versleutelen van het lokale bestand en het on-the-fly versleutelen van de back-up. Om een lokale kopie van uw back-up te versleutelen, maakt u gewoon een back-up van de gegevens die zijn opgeslagen in MySQL en versleutelt u deze vervolgens met bijvoorbeeld OpenSSL (vervang het wachtwoord door het wachtwoord dat u wilt gebruiken):
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
Uw back-up kan worden gedecodeerd door het volgende uit te voeren:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
U kunt ook overwegen om uw back-ups on-the-fly te versleutelen. Om dat te doen, zou u in het algemeen codering moeten implementeren wanneer de back-up wordt gegenereerd (d.w.z. de back-up genereren, comprimeren en coderen). Hier leest u hoe u dat voor MySQL doet met mysqldump (uw back-up zou versleuteld_backup.xb.enc heten):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
U kunt uw back-ups ook versleutelen met ClusterControl:vink in de laatste fase van de back-up gewoon de vakjes "Compressie gebruiken" en (of) "Encryptie inschakelen" aan en u bent klaar . Ja, zo eenvoudig is het!
Misschien wil je ook eens kijken naar een shellscript genaamd mysql_secure_installation (of mariadb_secure_installation als je MariaDB gebruikt). Met het script kunt u:
-
Stel een wachtwoord in voor de root-accounts van MySQL.
-
Verwijder root-accounts die toegankelijk zijn van buiten de localhost.
-
Verwijder alle anonieme gebruikersaccounts en de testdatabase die toegankelijk is voor anonieme gebruikers.
Als u MySQL of MariaDB implementeert met ClusterControl, iets dat u vrijelijk kunt doen met de Community Edition, zorgt het implementatieproces automatisch voor deze beveiligingsmaatregelen.
Samenvatting
Als het gaat om het beveiligen van uw MySQL-back-ups, is de lijst met dingen die u kunt doen behoorlijk lang. We hopen dat deze blogpost je wat ideeën heeft gegeven over wat je kunt doen om je MySQL- of MariaDB-back-ups te beveiligen:in het algemeen kunnen back-ups worden beveiligd door je wachtwoord onzichtbaar te maken wanneer mysqldump wordt aangeroepen, ook wanneer je je back-ups lokaal of op- vliegensvlug.