Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2011-07-18 11:25:36
Size: 596
Editor: Kurgan
Comment:
Revision 7 as of 2018-07-21 07:55:31
Size: 2493
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
=== Configurazione di sicurezza per limitare l'accesso al phpmyadmin === = Mysql (MariaDB) e Phpmyadmin =
Line 3: Line 3:
Modificare /etc/phpmyadmin/apache.conf:
== Rimettiamo la password a root in MariaDB ==

In debian 9 sono state fatte molte modifiche a mysql, tipo che ora e` installato MariaDB al posto di mysql.

La modifica piu` significativa e` che ora l'utente root di mysql si autentica usando ident quando si e` in locale, e NON SI PUO` piu` accedere in altro modo. Questo non va bene se vuoi usare phpmyadmin comodamente. Tuttavia e` possibile rimettere le cose come prima.

Per rimettere una password occorre:
 * Mettere una password '''sicura''' all'utente root di mariadb usando il comando
 {{{
mysqladmin password
}}}
 * Disattivare la funzione di ident dentro mariadb
 {{{
mysql mysql
update user set plugin='' where user='root';
flush privileges;
\q
}}}

Ora se provate di nuovo a entrare in mysql dovrete usare il comando {{{mysql mysql -p}}} e inserire la password dell'utente root come avete sempre fatto.

== Creiamo un utente con tutti i privilegi ==

In alternativa al metodo precedente, possiamo lasciare "root" così com'è e creare un utente con gli stessi privilegi, da usarsi da phpmyadmin.

 * Dal prompt di root, entriamo in mysql
 {{{
mysql mysql
}}}
 * Dentro mysql creiamo un utente che possa connettersi da localhost usando una password e abbia tutti i privilegi:
 {{{
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password-di-admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
flush privileges;
\q
}}}

 * Ora vediamo se funziona: (inserire la password quando richiesta)
 {{{
 mysql -u admin -p
}}}




== Configurazione di sicurezza per limitare l'accesso a phpmyadmin ==


Modificare /etc/phpmyadmin/apache.conf e metterci dentro (in cima, per dire) una di queste due configurazioni
Line 6: Line 55:
{{{
<Location /phpmyadmin>
        AuthType Basic
        AuthName "phpMyAdmin"
        AuthUserFile /etc/phpmyadmin/htpasswd.phpmyadmin
        Require valid-user
</Location>
}}}
Line 7: Line 64:
Ovviamente in questo caso dovremo creare il file con le password, usando il comando
Line 8: Line 66:
<Directory /usr/share/phpmyadmin>

# AuthType Basic
# AuthName Phpmyadmin
# AuthUserFile /etc/apache2/passwd.phpmyadmin
# require valid-user

...
htpasswd -c /etc/phpmyadmin/htpasswd.phpmyadmin <il mio username preferito>
Line 21: Line 71:
Line 23: Line 72:
<Directory /usr/share/phpmyadmin> <Location /phpmyadmin>
Line 29: Line 78:
... </Location>
}}}
Line 31: Line 81:

Per limitare al solo protocollo SSL:
{{{
   
        SSLRequireSSL

Mysql (MariaDB) e Phpmyadmin

Rimettiamo la password a root in MariaDB

In debian 9 sono state fatte molte modifiche a mysql, tipo che ora e` installato MariaDB al posto di mysql.

La modifica piu` significativa e` che ora l'utente root di mysql si autentica usando ident quando si e` in locale, e NON SI PUO` piu` accedere in altro modo. Questo non va bene se vuoi usare phpmyadmin comodamente. Tuttavia e` possibile rimettere le cose come prima.

Per rimettere una password occorre:

  • Mettere una password sicura all'utente root di mariadb usando il comando

    mysqladmin password
  • Disattivare la funzione di ident dentro mariadb
    mysql mysql
    update user set plugin='' where user='root';
    flush privileges;
    \q

Ora se provate di nuovo a entrare in mysql dovrete usare il comando mysql mysql -p e inserire la password dell'utente root come avete sempre fatto.

Creiamo un utente con tutti i privilegi

In alternativa al metodo precedente, possiamo lasciare "root" così com'è e creare un utente con gli stessi privilegi, da usarsi da phpmyadmin.

  • Dal prompt di root, entriamo in mysql
    mysql mysql
  • Dentro mysql creiamo un utente che possa connettersi da localhost usando una password e abbia tutti i privilegi:
    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password-di-admin';
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
    flush privileges;
    \q
  • Ora vediamo se funziona: (inserire la password quando richiesta)
     mysql -u admin -p

Configurazione di sicurezza per limitare l'accesso a phpmyadmin

Modificare /etc/phpmyadmin/apache.conf e metterci dentro (in cima, per dire) una di queste due configurazioni

Per limitare l'accesso con una password di apache:

<Location /phpmyadmin>
        AuthType Basic
        AuthName "phpMyAdmin"
        AuthUserFile /etc/phpmyadmin/htpasswd.phpmyadmin
        Require valid-user
</Location>

Ovviamente in questo caso dovremo creare il file con le password, usando il comando

htpasswd -c /etc/phpmyadmin/htpasswd.phpmyadmin <il mio username preferito>

Per limitare per indirizzo IP:

<Location /phpmyadmin>

       order deny,allow
       deny from all
       allow from 127.0.0.0/255.0.0.0 ::1/128
       allow from 192.168.0.0/255.255.0.0
</Location>

Per limitare al solo protocollo SSL:

        SSLRequireSSL

LinuxDebian/PhpMyAdmin (last edited 2021-06-03 14:30:20 by Kurgan)