- Al solito aggiornare la lista pacchetti:
sudo apt update
- Installiamo il server mysql:
sudo apt install mysql-server
- Assicuriamoci che il servizio mysql sia attivo
sudo systemctl status mysql
- Il server mysql ha uno script per migliorare le impostazioni di sicurezza di mysql:
sudo mysql_secure_installation
Queste impostazioni di sicurezza vanno dal settaggio della password di root, alla rimozione degli utenti anonimi (y), alla disabilitazione del login root da remoto (y), rimozione del database test (y), aggiornare le nuove regole.
(Seconda parte) Accediamo a Mysql e facciamo alcune prove
- Autentichiamoci tramite root
sudo mysql -u root -p
- Vediamo gli utenti esistenti:
SELECT user, authentication_string, plugin, host FROM mysql.user;
Vedremo un output simile a questo:
Dalla versione MySQL 5.7+ l’utente root per questioni di sicurezza si autentica tramite il plugin auth_socket (più sicuro rispetto alla normale password).
Quindi se vogliamo autenticarci da un programma esterno (es. phpmyadmin) dobbiamo creare un altro utente che si autentica tramite mysql_native_passwordmysql> CREATE USER 'utentedb'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'utentedb'@'localhost'; mysql> FLUSH PRIVILEGES;
Si dovrebbe ricevere un messaggio del genere:
Query OK, 0 rows affected (0.00 sec)
(Terza parte) Installare phpmyadmin
Installiamo un client come phpmyadmin per accedere a mysql ed esplorare i database:
- Update e installiamo il pacchetto phpmyadmin
sudo apt update sudo apt install phpmyadmin
2. Scegliamo apache2 tramite la barra spaziatrice e poi premiamo ok
3. L’installazione ci chiederà di utilizzare il tool dbconfig-common per settare i database.
premere Yes
4.Inserire una password per phpmyadmin
Adesso possiamo provare ad accedere in localhost:
http://localhost/phpmyadmin
Se invece vogliamo accedere da remoto, bisogna impostare che accediamo tramite mysql_native_password come visto nella seconda parte di questa guida. Inoltre bisogna permettere l’accesso da qualsiasi host in questo modo modificando la colonna host dell’utente da localhost a %:
mysql UPDATE mysql.user SET host='%' WHERE user='utentedb'
Con mysql 8 bisogna cambiare anche il bind-address affinchè permetta a tutti di poter accedere.
Nota: tramite ufw conviene per sicurezza fare un filtraggio ip.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
e modificare il bind-address da 127.0.0.1 a 0.0.0.0
bind-address=0.0.0.0
Infine riavviare il servizio mysql
sudo service mysql restart