Introductie
MariaDB is een open-source relationeel databasebeheersysteem dat vaak wordt gebruikt als alternatief voor MySQL als het databasegedeelte van de populaire LAMP-stack (Linux, Apache, MySQL, PHP/Python/Perl). Het is bedoeld als een plug-and-play vervanging voor MySQL.
De verkorte versie van deze installatiehandleiding bestaat uit deze drie stappen:
- Werk uw pakketindex bij met
apt
- Installeer het pakket
mariadb-server
metapt
. Het pakket haalt ook gerelateerde tools op om met MariaDB te communiceren - Voer het meegeleverde beveiligingsscript
mysql_secure_installation
uit om de toegang tot de server te beperken
Deze handleiding zal uitleggen hoe MariaDB te installeren op een Ubuntu 22.04-server en controleren of het draait en een veilige initiële configuratie heeft.
Vereisten
- Om deze handleiding te volgen, heb je een server nodig die draait op Ubuntu 22.04. Deze server moet een niet-root-beheerdersgebruiker hebben en een firewall geconfigureerd hebben met UFW. Stel dit in door onze initiële serverinstellingen handleiding voor Ubuntu 22.04 te volgen.
Stap 1 — MariaDB installeren
Op dit moment bevatten de standaard APT repositories van Ubuntu 22.04 MariaDB versie 10.5.12.
Om het te installeren, werk je de pakketindex op je server bij met apt
:
Vervolgens installeer je het pakket:
Deze commando’s zullen MariaDB installeren, maar zullen je niet vragen om een wachtwoord in te stellen of andere configuratiewijzigingen te maken. Omdat de standaardconfiguratie je installatie van MariaDB onveilig laat, gebruik je een script dat door het mariadb-server
-pakket wordt geleverd om de toegang tot de server te beperken en ongebruikte accounts te verwijderen.
Stap 2 — MariaDB configureren
Voor nieuwe MariaDB-installaties is de volgende stap om het meegeleverde beveiligingsscript uit te voeren. Dit script wijzigt enkele van de minder veilige standaardopties voor zaken als externe root-aanmeldingen en voorbeeldgebruikers.
Voer het beveiligingsscript uit:
Dit zal u door een reeks prompts leiden waar u enkele wijzigingen kunt aanbrengen in de beveiligingsopties van uw MariaDB-installatie. De eerste prompt zal u vragen om het huidige wachtwoord van de database root in te voeren. Aangezien u er nog geen hebt ingesteld, drukt u op ENTER
om “geen” aan te geven.
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
U wordt gevraagd of u wilt overschakelen naar Unix-socketauthenticatie. Aangezien u al een beveiligd root-account heeft, kunt u deze stap overslaan. Typ n
en druk vervolgens op ENTER
.
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
De volgende prompt vraagt u of u een wachtwoord voor het database root-account wilt instellen. Op Ubuntu is het root-account voor MariaDB nauw verbonden met geautomatiseerd systeemonderhoud, dus u moet de geconfigureerde authenticatiemethoden voor dat account niet wijzigen.
Als u dit wel doet, kan een pakketupdate het databasesysteem kapotmaken door de toegang tot het beheerdersaccount te verwijderen. Typ n
en druk vervolgens op ENTER
.
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
Later zult u leren hoe u een extra beheerdersaccount kunt instellen voor wachtwoordtoegang als socketauthenticatie niet geschikt is voor uw gebruikssituatie.
Van daaruit kunt u op Y
drukken en vervolgens op ENTER
om de standaardinstellingen te accepteren voor alle daaropvolgende vragen. Hiermee worden enkele anonieme gebruikers en de testdatabase verwijderd, worden externe root-aanmeldingen uitgeschakeld en worden deze nieuwe regels geladen zodat MariaDB onmiddellijk de door u aangebrachte wijzigingen implementeert.
Met dat heb je de initiële beveiligingsconfiguratie van MariaDB voltooid. De volgende stap is optioneel, maar je zou deze moeten volgen als je liever met een wachtwoord authenticeert naar je MariaDB-server.
Stap 3 — (Optioneel) Het aanmaken van een beheerdersaccount dat wachtwoordauthenticatie gebruikt
Op Ubuntu-systemen met MariaDB 10.5 is de MariaDB-gebruiker root standaard ingesteld om te authenticeren met de unix_socket
-plugin in plaats van met een wachtwoord. Dit biedt in veel gevallen meer veiligheid en bruikbaarheid, maar het kan de zaken ook compliceren wanneer je een extern programma (bijv. phpMyAdmin) administratieve rechten wilt geven.
Omdat de server het root-account gebruikt voor taken zoals logrotatie en het starten en stoppen van de server, is het het beste om de authenticatiegegevens van het root-account niet te wijzigen. Het wijzigen van referenties in het configuratiebestand /etc/mysql/debian.cnf
kan in eerste instantie werken, maar pakketupdates kunnen deze wijzigingen mogelijk overschrijven. In plaats van het wijzigen van het root-account, raden de pakketonderhouders aan om een apart administratief account aan te maken voor toegang op basis van wachtwoord.
Om dit te bereiken, zullen we een nieuw account genaamd admin aanmaken met dezelfde mogelijkheden als het root-account, maar geconfigureerd voor wachtwoordauthenticatie. Open de MariaDB-prompt vanuit je terminal:
Vervolgens maak je een nieuwe gebruiker aan met root-rechten en toegang op basis van wachtwoord. Zorg ervoor dat je de gebruikersnaam en het wachtwoord aanpast aan je voorkeuren:
Flush de rechten om ervoor te zorgen dat ze zijn opgeslagen en beschikbaar zijn in de huidige sessie:
Na dit, verlaat je de MariaDB-shell:
Tenslotte, laten we de MariaDB-installatie testen.
Stap 4 — Testen van MariaDB
Wanneer geïnstalleerd vanuit de standaard repositories, zal MariaDB automatisch starten. Om dit te testen, controleer je de status.
Je ontvangt output die vergelijkbaar is met het volgende:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
Als MariaDB niet draait, kun je het starten met het commando sudo systemctl start mariadb
.
Als extra controle kun je proberen verbinding te maken met de database met behulp van het mysqladmin
-hulpprogramma, dat een client is waarmee je administratieve commando’s kunt uitvoeren. Bijvoorbeeld, dit commando zegt om verbinding te maken met MariaDB als root via de Unix-socket en de versie terug te geven:
Je ontvangt output die hierop lijkt:
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
Conclusie
In deze handleiding heb je het MariaDB relationele databasebeheersysteem geïnstalleerd en beveiligd met behulp van het mysql_secure_installation
-script dat ermee is geïnstalleerd. Je had ook de mogelijkheid om een nieuwe beheerdersgebruiker aan te maken die wachtwoordauthenticatie gebruikt voordat je de functionaliteit van de MariaDB-server testte.
Nu je een draaiende en beveiligde MariaDB-server hebt, zijn hier enkele voorbeelden van volgende stappen die je kunt nemen om met de server te werken:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04