Slik konfigurerer du HTTPS (SSL-sertifikater) for å sikre PhpMyAdmin-pålogging


For å introdusere dette tipset, la oss snuse på HTTP-trafikken mellom en klientmaskin og Debian 8-serveren der vi har gjort den uskyldige feilen å logge på ved å bruke påloggingsinformasjonen til databaserotbrukeren i vår siste artikkel på: Change and Secure Standard PhpMyAdmin-påloggings-URL

Som vi nevnte i forrige tips, ikke prøv å gjøre dette ennå hvis du ikke vil avsløre legitimasjonen din. For å begynne å snuse trafikk, skrev vi inn følgende kommando og trykket Enter:

tcpdump port http -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20

Det vil ikke ta oss lang tid å innse at brukernavnet og passordet har blitt sendt over ledningen i ren tekstformat, som du kan se i den avkortede utgangen til tcpdump i bildet nedenfor.

Vær oppmerksom på at vi har skjult en del av root-passordet med et blått merke over det:

For å unngå dette, la oss sikre påloggingssiden med et sertifikat. For å gjøre dette, installer mod_ssl-pakken på CentOS-baserte distribusjoner.

yum install mod_ssl

Selv om vi vil bruke Debian/Ubuntu-banen og navnene, er den samme prosedyren gyldig for CentOS og RHEL hvis du erstatter kommandoene og banene nedenfor med CentOS-ekvivalentene.

Opprett en katalog for å lagre nøkkelen og sertifikatet:

mkdir /etc/apache2/ssl    [On Debian/Ubuntu based systems]
mkdir /etc/httpd/ssl      [On CentOS based systems]

Opprett nøkkelen og sertifikatet:

----------- On Debian/Ubuntu based systems ----------- 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

----------- On CentOS based systems ----------- 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Eksempelutgang
........................+++
.....................................................+++
writing new private key to '/etc/httpd/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Maharashtra
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint
Organizational Unit Name (eg, section) []:TecMint
Common Name (eg, your name or your server's hostname) []:TecMint
Email Address []:[email 

Deretter bekrefter du nøkkel og sertifikat.

cd /etc/apache2/ssl/   [On Debian/Ubuntu based systems]
cd /etc/httpd/ssl/     [On CentOS based systems]
ls -l

total 8
-rw-r--r--. 1 root root 1424 Sep  7 15:19 apache.crt
-rw-r--r--. 1 root root 1704 Sep  7 15:19 apache.key

I Debian/Ubuntu, sørg for at Apache lytter på port 443 for standardnettstedet (/etc/apache2/sites- available/000-default.conf) og legg til de tre SSL-relaterte linjene i VirtualHost-erklæringen:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

I CentOS-baserte distribusjoner, be Apache om å lytte på port 443 og se etter Listen-direktivet i /etc/httpd/conf/ httpd.conf og legg til linjene ovenfor under den.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Lagre endringer, last SSL Apache-modulen på Debian/Ubuntu-distribusjoner (i CentOS lastes dette inn automatisk når du installerte mod_ssl sterk> tidligere):

a2enmod ssl

Tving phpmyadmin til å bruke SSL, sørg for at følgende linje er til stede i /etc/phpmyadmin/config.inc.php eller / etc/phpMyAdmin/config.inc.php-fil:

$cfg['ForceSSL'] = true;

og start nettserveren på nytt:

systemctl restart apache2   [On Debian/Ubuntu based systems]
systemctl restart httpd     [On Debian/Ubuntu based systems]

Deretter starter du nettleseren din og skriver inn https:///my (finn ut hvordan du endrer PhpMyAdmin-påloggings-URL) som vist nedenfor.

Viktig: Vær oppmerksom på at det bare sier at tilkoblingen ikke er sikker fordi vi bruker et selvsignert sertifikat. Klikk på Avansert og bekreft sikkerhetsunntaket:

Etter å ha bekreftet sikkerhetsunntaket, og før pålogging, la oss begynne å snuse HTTP- og HTTPS-trafikk:

tcpdump port http or port https -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20

Logg deretter på med samme legitimasjon som tidligere. Trafikksnifferen vil i beste fall bare fange opp sludder:

Det er det for nå, i neste artikkel vil vi dele deg for å begrense PhpMyAdmin-tilgang med brukernavn/passord, inntil da følg med på Tecmint.