O solutie eleganta si sigura este accesarea phpMyAdmin printr-un tunel SSH. La prima vedere suna pompos. Dar este extrem de simplu.
Presupunem ca deja avem pe server instalat openssh-server iar pe client openssh-client.
Instalam pe server phpMyAdmin dupa care modificam /etc/phpmyadmin/apache.conf astel incat phpMyAdmin sa nu poata fi accesat decat local (pe 127.0.0.1). Pentru asta, dupa linia
<directory phpmyadmin="" share="" usr="">
adaugam urmatoarele :
Order deny,allow
Deny from all
Allow from 127.0.0.1
si apoi restartam apache.Daca doriti sa nu mai faceti aceste modificari pe server manual puteti sa urcati scriptul de mai jos pe server, sa va conectati pe SSH si sa-l rulati. Va face el modificarile pentru voi (nu uitati ca trebuie sa il executati cu drepturi de root cu sudo).
Puteti sa incercati sa deschideti browserul favorit si sa va convingeti (http://ip_server/phpmyadmin) ca nu puteti sa accesati phpMyAdmin aflat pe server.
Acum deschideti un terminal in care tastati:
ssh -L 40001:127.0.0.1:80 user@server
si dupa ce introduceti parola (in cazul in care nu folositi prechea de chei public/privat) lasati deschis terminalul apoi deschideti browserul si accesatihttp://127.0.0.1:40001/phpmyadmin/
Minune ! Putem accesa phpMyAdmin. Si asta datorita tunelului pe care tocmai l-am deschis cu comanda:ssh -L 40001:127.0.0.1:80 user@server
Bineinteles ca in loc de portul 40001 puteti folosi orice (sau aproape orice) port iar in loc de user/server folositi userul pe care il aveti pentru conectarea prin SSH si IP-ul serverului. Atunci cand inchideti terminalul ori inchideti conexiunea SSH tunelul este inchis si bineinteles accesarea phpMyAdmin nu mai este posibila. Dar puteti deschide un alt tunel atunci cand aveti nevoie ...Spor la administrat baze de date ... securizat.