phpMyAdmin installeren en beveiligen op Ubuntu 18.04 LTS

phpMyAdmin is een gratis en open bron beheerprogramma voor MySQL en MariaDB. phpMyAdmin is een web-gebaseerd programma waarmee je MySQL of MariaDB databases gemakkelijk kunt beheren. Je kunt met phpMyAdmin beheertaken uitvoeren zoals het maken, bewerken of verwijderen van databases, importeren en exporteren van databank back-ups, zoekopdrachten uitvoeren en gebruikers en permissies beheren.

Kenmerken

  • Ondersteuning voor meerdere talen.
  • Importeer gegevens uit CSV en SQL.
  • Live grafieken om de activiteit van de MySQL server te volgen, zoals verbindingen, processen, CPU/geheugen gebruik, enz.
  • Globaal zoeken in een database of een deel ervan.
  • Eenvoudige en gemakkelijk te gebruiken webinterface.
  • Uitvoer van gegevens naar verschillende formaten zoals, CSV, SQL, XML, PDF, Word, Excel, LaTeX, en andere.

In deze zelfstudie gaan we uitleggen hoe je phpMyAdmin op Ubuntu 18.04 server kunt installeren en beveiligen.

Vereisten

    • Een server waarop Ubuntu 18.04 draait.
    • Een niet-root gebruiker met sudo privileges.

Installeer phpMyAdmin

Voor je begint, moet je Apache en MySQL op je server installeren. Je kunt die installeren met het volgende commando:

sudo apt-get install apache2 mysql-server -y

Standaard is phpMyAdmin niet beschikbaar in de Ubuntu 18.04 standaard repository. Je zult dus de PHP repository van derden aan je systeem moeten toevoegen.

Je kunt hem toevoegen door gewoon het volgende commando uit te voeren:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

Zodra de repository is toegevoegd, installeer je phpMyAdmin door het volgende commando uit te voeren:

sudo apt-get install phpmyadmin php-mbstring php-gettext -y

Tijdens de installatie wordt je gevraagd de webserver te kiezen zoals hieronder:

Installeer phpMyAdmin

Kies Apache en klik op de OK knop. Je wordt doorverwezen naar de volgende pagina:

Configureer de database met dbconfig common

Klik nu op de Yes knop. Je zou de volgende pagina moeten zien:

Stel het wachtwoord van de MySQL toepassing in

Bevestig je wachtwoord

Geef hier je MySQL toepassingswachtwoord voor phpMyAdmin op en klik op de OK knop.

Als phpMyAdmin geïnstalleerd is, schakel dan de mbstring PHP uitbreiding in met het volgende commando:

sudo phpenmod mbstring

Herstart vervolgens de Apache dienst om de veranderingen toe te passen:

sudo systemctl restart apache2

Configureer gebruikersauthenticatie

phpMyAdmin maakt automatisch een database gebruiker aan, phpmyadmin genaamd, met het administratieve wachtwoord dat je tijdens de installatie instelde. Maar, het is aan te bevelen een aparte gebruiker aan te maken voor het beheren van databases via de phpMyAdmin webinterface. In de nieuwste versie van MariaDB is de root MySQL gebruiker standaard ingesteld om te authenticeren met de auth_socket plugin. Wil je dus in phpMyAdmin inloggen als je root MySQL gebruiker, dan moet je de authenticatie methode veranderen van auth_socket naar mysql_native_password.

Log eerst in op de MySQL shell met het volgende commando:

sudo mysql

Controleer vervolgens de authenticatiemethode van de MySQL gebruiker met het volgende commando:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Uitvoer:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.01 sec)

In de bovenstaande uitvoer zou je moeten zien dat de root gebruiker de auth_socket plugin gebruikt.

Je kunt de root account instellen om te authenticeren met een wachtwoord door het volgende commando uit te voeren:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Spoel vervolgens de privileges door met het volgende commando:

mysql> FLUSH PRIVILEGES;

Controleer nu de authenticatiemethoden door het volgende commando uit te voeren:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Uitvoer:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.01 sec)

Maak vervolgens een aparte gebruiker aan met de naam phpmyadminuser om verbinding te maken met phpMyAdmin.

Log eerst in op de MySQL shell:

mysql -u root -p

Voer je root wachtwoord in, maak dan een gebruiker aan met het volgende commando:

MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';

Geef vervolgens de juiste rechten aan phpmyadminuser met het volgende commando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Verlaat tenslotte de MySQL shell met het volgende commando:

MariaDB [(none)]> exit;

Open nu je webbrowser en typ de URL http://your-server-ip/phpmyadmin. Je wordt doorverwezen naar de volgende pagina:

phpMyAdmin login

Geef hier je gebruikersnaam en wachtwoord op. Klik dan op de Go knop. Je zou nu het PhpMyAdmin dashboard moeten zien op de volgende pagina:

phpMyAdmin dashboard

PhpMyAdmin beveiligen

phpMyAdmin is nu ge├»nstalleerd en geconfigureerd. Maar, het is aan te bevelen je phpMyAdmin instantie te beveiligen om ongeoorloofde toegang te voorkomen Je kunt phpMyAdmin beveiligen door Apache’s ingebouwde .htaccess authenticatie en autorisatie functionaliteiten te gebruiken.

Schakel daartoe eerst het gebruik van .htaccess bestandsoverrides in door phpmyadmin.conf bestand te bewerken:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Breng de volgende veranderingen aan:

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All

Sla het bestand op en sluit het. Herstart daarna de Apache dienst om de wijzigingen toe te passen:

sudo systemctl restart apache2

Maak vervolgens een .htaccess bestand aan binnen de phpmyadmin directory:

sudo nano /usr/share/phpmyadmin/.htaccess

Voeg de volgende regels toe:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Sla het bestand op en sluit het. Maak dan een gebruiker met de naam admin met het httpasswd hulpprogramma:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin

Output:

New password: 
Re-type new password: 
Adding password for user admin

Je phpMyAdmin instantie is nu beveiligd met een extra laag van authenticatie.

Open nu je webbrowser en typ de URL http://your-server-ip/phpmyadmin. Je wordt nu doorgestuurd naar de extra accountnaam en het wachtwoord die je zojuist instelde, zoals hieronder te zien is:

phpMyAdmin beveiligd met .htaccess

Geef nu je gebruikersnaam en het wachtwoord op en klik op de Log In knop. Je zou nu moeten worden doorverwezen naar de gewone phpMyAdmin authenticatie pagina.

Links