Zoeken op website

Hoe u HTTPS (SSL-certificaten) instelt om PhpMyAdmin-aanmelding te beveiligen


Laten we, om deze tip te introduceren, eens kijken naar het HTTP-verkeer tussen een clientcomputer en de Debian 8-server waar we de onschuldige fout hebben gemaakt door in te loggen met de inloggegevens van de rootgebruiker van de database in ons laatste artikel op: Wijzigen en beveiligen Standaard PhpMyAdmin-inlog-URL

Zoals we in de vorige tip al vermeldden, probeer dit nog niet te doen als u uw inloggegevens niet openbaar wilt maken. Om te beginnen met het snuiven van verkeer, typten we de volgende opdracht en drukten op 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

Het zal niet lang duren voordat we ons realiseren dat de gebruikersnaam en het wachtwoord in platte tekst zijn verzonden, zoals je kunt zien in de ingekorte uitvoer van tcpdump in de afbeelding hieronder.

Houd er rekening mee dat we een deel van het root wachtwoord verborgen hebben met een blauwe markering erboven:

Om dit te voorkomen, beveiligen we de inlogpagina met een certificaat. Om dit te doen, installeert u het mod_ssl-pakket op op CentOS gebaseerde distributies.

yum install mod_ssl

Hoewel we het Debian/Ubuntu pad en de namen zullen gebruiken, is dezelfde procedure geldig voor CentOS en RHEL als u de onderstaande opdrachten en paden vervangt met de CentOS-equivalenten.

Maak een map om de sleutel en het certificaat op te slaan:

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

Maak de sleutel en het certificaat:

----------- 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
Voorbeelduitvoer
........................+++
.....................................................+++
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 

Verifieer vervolgens de sleutel en het certificaat.

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

Zorg er in Debian/Ubuntu voor dat Apache luistert op poort 443 voor de standaardsite (/etc/apache2/sites- Available/000-default.conf) en voeg de 3 SSL-gerelateerde regels toe in de VirtualHost-declaratie:

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

In CentOS gebaseerde distributies, vertel Apache om te luisteren op poort 443 en zoek naar de Listen-instructie in /etc/httpd/conf/ httpd.conf en voeg de bovenstaande regels eronder toe.

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

Sla de wijzigingen op, laad de SSL Apache module op Debian/Ubuntu distributies (in CentOS wordt dit automatisch geladen wanneer u mod_ssl installeert sterk> eerder):

a2enmod ssl

Forceer phpmyadmin om SSL te gebruiken, zorg ervoor dat de volgende regel aanwezig is in /etc/phpmyadmin/config.inc.php of / etc/phpMyAdmin/config.inc.php bestand:

$cfg['ForceSSL'] = true;

en herstart de webserver:

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

Start vervolgens uw webbrowser en typ https:///mijn (leer hoe u de PhpMyAdmin-inlog-URL kunt wijzigen) zoals hieronder weergegeven.

Belangrijk: houd er rekening mee dat dit alleen betekent dat de verbinding niet veilig is omdat we een zelfondertekend certificaat gebruiken. Klik op Geavanceerd en bevestig de beveiligingsuitzondering:

Nadat we de beveiligingsuitzondering hebben bevestigd en voordat we inloggen, gaan we HTTP- en HTTPS-verkeer snuffelen:

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

Log vervolgens in met dezelfde inloggegevens als eerder. De verkeerssniffer vangt op zijn best alleen wartaal op:

Dat is het voor nu, in het volgende artikel zullen we u vertellen hoe u de PhpMyAdmin-toegang kunt beperken met gebruikersnaam/wachtwoord, tot die tijd kunt u op de hoogte blijven van Tecmint.