Cómo instalar phpMyAdmin de forma segura

Contenuti

php MyAdmin

phpMyAdmin è un ottimo strumento per gestire un database MySQL, ma mettere l'accesso al tuo database dietro un'interfaccia web è un grosso ostacolo alla sicurezza. Ecco alcune alternative per mitigare i rischi legati all'esecuzione di phpMyAdmin.

Perché phpMyAdmin è un ostacolo alla sicurezza??

Generalmente, avresti un database che verrebbe eseguito sul tuo server e accetterebbe solo connessioni da localhost o forse da un altro servitore fidato. Se avessi un'applicazione in esecuzione anche su quel server, comunicherei direttamente. Non c'è modo per un utente malintenzionato di ottenere l'accesso senza accedere all'intero server.

phpMyAdmin evita questo per fornirti un'interfaccia web per gestire il tuo database. È uno strumento molto utile, ma è un disastro per la sicurezza. phpMyAdmin ha pieno accesso illimitato al tuo database, poiché è pensato per sostituire la scorciatoia da riga di comando. Se un utente malintenzionato ottiene l'accesso al pannello web, avrai accesso a tutto. E phpMyAdmin è generalmente protetto solo con una semplice password.

Installa phpMyAdmin e Secure MySQL

phpMyAdmin gira sullo stack LAMP (Linux, Apache, MySQL, PHP). Anche prima di iniziare l'installazione di phpMyAdmin, la tua istanza MySQL dovrebbe essere al sicuro. MySQL fornisce un'utilità utile per eseguire alcune attività di sicurezza di base:

sudo mysql_secure_installation

Questo ti guiderà a cambiare la password di root, disabilita gli accessi remoti e rimuovi il database di prova.

Successivamente, Puoi installare phpMyAdmin come sempre. Durante l'installazione, ti verrà richiesta una password per l'utente amministratore del database (che avrei dovuto stabilire durante mysql_secure_installation) e una nuova password per proteggere phpMyAdmin. Assicurati che questa password sia lunga e forte, poiché è l'ultimo punto di difesa prima che gli attaccanti possano entrare.

Nonostante questo, idealmente, nessun utente malintenzionato dovrebbe essere in grado di indovinare la tua password, quindi vorrai mettere phpMyAdmin dietro qualcos'altro per essere in grado di proteggerlo ancora di più.

Opzione 1: bloquear Apache y utilizar el reenvío de puertos SSH

Esta es la opción más segura, pero solo es verdaderamente adecuada para el acceso de un solo usuario, concretamente para usuarios únicos que disponen acceso administrativo completo a todo el servidor, dado que necesita que se conecte a través de SSH.

El reenvío de puertos SSH es un método para reenviar puertos locales a un sistema remoto. Come esempio, tendría Apache ejecutándose en su servidor, escuchando en el puerto 80. Si canalizó ese puerto, podría entrar a él yendo a:

https://localhost:80/

en cualquier navegador web. In qualche modo, es casi como si Apache se estuviera ejecutando en su sistema. Pero el puerto 80 no tiene que estar abierto en su servidor; todo el tráfico se enruta a través del puerto estándar 22 utilizado para SSH. Deberá asegurarse de que SSH esté protegido con claves SSH, y lo mejor es que no se ejecute en el puerto estándar, dado que este método es tan seguro como su conexión SSH.

Per fare questo, deberá vincular Apache a localhost y asegurarse de que no esté abierto a Internet. Aprire /etc/apache2/ports.conf, y cambie las tres declaraciones de escucha para escuchar solo en localhost (conosciuto anche come 127.0.0.1):

Ascolta 127.0.0.1:80

<IfModule ssl_module>
  Ascolta 127.0.0.1:443
</IfModulo>

<IfModule mod_gnutls>
 Ascolta 127.0.0.1:443
</IfModulo>

Reinicie Apache con:

sudo service apache2 riavvio

Y phpMyAdmin debería ser inaccesible. Se esperaba esto. Una vez que Apache está configurado, puede tunelizar el puerto 80 usando il seguente comando:

ssh -L 80:localhost:80 user@server

Successivamente, puede entrar a phpMyAdmin desde localhost:80 en cualquier navegador web. Intanto, su servidor se puede configurar con un cortafuegos estricto para no permitir nada excepto SSH.

e ssh no se puede vincular al puerto 80, intente cambiar el primer puerto a un número distinto y acceda a él desde allí en localhost. Aún hará un túnel al puerto 80 en la máquina remota. Esta conexión se mantiene hasta que salga ssh. Si desea ejecutarlo en segundo plano, Utilizzare il -f bandiera.

Si solo desea que phpMyAdmin escuche en localhost, puede editar /etc/apache2/conf-enabled/phpmyadmin.conf y agregue las siguientes líneas al Directory bloccare:

  Order deny,allow
  Deny from all
  Allow from 127.0.0.1

Un bloque de directorio.

Esto impedirá que cualquier cosa, excepto localhost, acceda a la instalación de phpMyAdmin, aún cuando aún necesitará que el puerto 80 essere aperto sul firewall per consentire il traffico regolare.

Opzione 2: blocca Apache e usa una VPN

Se è necessario consentire l'accesso a più persone senza concedere l'accesso SSH, puoi configurare Apache per ascoltare sull'IP privato della tua macchina e accettare solo connessioni dallo stesso cloud. Funziona concretamente bene con servizi come AWS VPC, dove ogni server che avvii viene creato in una rete virtuale.

Per trovare il tuo IP privato, può eseguire ifconfig e cerca il inet indirizzo sulla tua scheda di rete principale:

Trova il tuo IP privato.

Esta dirección además es visible desde el Consola de AWS EC2. Una vez que haya copiado la dirección, Un reggiseno /etc/apache2/ports.confy editar los tres Listen directivas para escuchar en la IP privada:

Ascolta 172.31.87.118:8

<IfModule ssl_module>
  Ascolta 172.31.87.118:443
</IfModulo>

<IfModule mod_gnutls>
  Ascolta 172.31.87.118:443
</IfModulo>

In alternativa, si solo desea proteger phpMyAdmin, puede editar /etc/apache2/conf-enabled/phpmyadmin.conf y solo permitir desde la IP privada:

Order deny,allow
Deny from all
Allow from 172.31.87.118

Y reinicie Apache.

Ora, para entrar a phpMyAdmin, avrà bisogno configurar un servidor VPN como OpenVPN. Ciò ti consentirà di incanalare il tuo computer client nel cloud privato virtuale in cui vengono eseguiti i tuoi server Web e di accedere al server che esegue phpMyAdmin sull'IP privato come se fosse un altro server.. In ogni caso, dovrai configurare le impostazioni del firewall per consentire l'accesso dal server OpenVPN all'istanza phpMyAdmin.

Opzione 3: Apache sicuro con HTTPS e autenticazione di base

Se hai davvero bisogno di usare il DNS pubblico e avere il tuo server raggiungibile, puoi usare l'autenticazione di base con Apache. Esta es simplemente otra contraseña frente a phpMyAdmin que evita que personas externas realicen solicitudes a la aplicación phpMyAdmin. Puede utilizar esto junto con las otras opciones en esta lista, dado que es solo una capa adicional de defensa.

Cree un nuevo archivo de contraseña con htpasswd, que ya debería estar instalado junto con Apache (ma, está en apache2-utils):

sudo htpasswd /etc/apache2/.htpasswd phpadmin

Esto le posibilita determinar una nueva contraseña para el usuario. phpadmin y lo almacena en /etc/apache2/.htpasswd.

Aprire /etc/apache2/conf-enabled/phpmyadmin.confy configúrelo para utilizar la autenticación básica con el archivo de contraseña recién creado:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Reinicie Apache con:

sudo service apache2 riavvio

Y cuando intente entrar a phpMyAdmin en su navegador, se le pedirá un nombre de usuario y contraseña. Entrare dentro phpadmin y la contraseña que creó, y se le debe permitir el acceso. Caso opposto, todo lo que verá es un 401 Unauthorized Rispondere.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.