Kuinka määrittää HTTPS (SSL-varmenteet) suojaamaan PhpMyAdmin-kirjautumista


Esittelemme tämän vinkin haistelemalla HTTP-liikennettä asiakaskoneen ja Debian 8 -palvelimen välillä, jossa olemme tehneet viattoman virheen kirjautumalla sisään tietokannan pääkäyttäjän tunnistetiedoilla viimeisessä artikkelissamme osoitteessa: Vaihda ja suojaa PhpMyAdminin oletusarvoinen kirjautumisosoite

Kuten mainitsimme edellisessä vinkissä, älä yritä tehdä sitä vielä, jos et halua paljastaa kirjautumistietojasi. Aloittaaksesi liikenteen haistamisen, kirjoitimme seuraavan komennon ja painoimme 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

Ei vie kauan ymmärtää, että käyttäjätunnus ja salasana on lähetetty langan yli yksinkertaisessa tekstimuodossa, kuten alla olevassa kuvassa näkyy tcpdumpin katkaistussa lähdössä.

Huomaa, että olemme piilottaneet osan juurisalasanasta, jonka yläpuolella on sininen merkki:

Tämän välttämiseksi suojaamme kirjautumissivun varmenteella. Tätä varten asenna mod_ssl-paketti CentOS-pohjaisiin jakeluihin.

# yum install mod_ssl

Vaikka käytämme Debianin/Ubuntu-polkua ja nimiä, sama menettely pätee CentOS: lle ja RHEL: lle, jos korvaat alla olevat komennot ja polut CentOS: n vastaavilla.

Luo hakemisto avaimen ja varmenteen tallentamiseksi:

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

Luo avain ja varmenne:

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

Tarkista seuraavaksi avain ja varmenne.

# 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

Varmista Debianissa/Ubuntussa, että Apache kuuntelee porttia 443 oletussivustolle (/etc/apache2/sites-available/000-default.conf) ja lisää 3 SSL: ään liittyvää riviä VirtualHost-ilmoituksen sisään:

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

Käske CentOS-pohjaisissa jakeluissa Apache'ta kuuntelemaan porttia 443, etsimällä Kuunteludirektiiviä tiedostosta /etc/httpd/conf/httpd.conf ja lisäämällä yllä olevat rivit sen alle.

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

Tallenna muutokset, lataa SSL Apache -moduuli Debian/Ubuntu-jakeluihin (CentOSissa tämä ladataan automaattisesti, kun mod_ssl asennettiin aiemmin):

# a2enmod ssl

Pakota phpmyadmin käyttämään SSL: ää, varmista, että seuraava rivi on tiedostossa /etc/phpmyadmin/config.inc.php tai /etc/phpMyAdmin/config.inc.php:

$cfg['ForceSSL'] = true;

ja käynnistä verkkopalvelin uudelleen:

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

Käynnistä seuraavaksi selain ja kirjoita https://my (opi muuttamaan PhpMyAdmin-kirjautumisosoitetta) alla olevan kuvan mukaisesti.

Tärkeää: Huomaa, että vain sanotaan, että yhteys ei ole turvallinen, koska käytämme itse allekirjoittamaa varmentetta. Napsauta Lisäasetukset ja vahvista suojauspoikkeus:

Vahvistettuamme tietoturvapoikkeuksen ja ennen sisäänkirjautumista, aloitetaan HTTP- ja HTTPS-liikenteen haistaminen:

# 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

Kirjaudu sitten sisään samoilla tunnistetiedoilla kuin aiemmin. Liikenteen haistelija sieppaa vain parhaimmillaan:

Se on nyt, seuraavassa artikkelissa jaamme sinut rajoittamaan PhpMyAdminin käyttöä käyttäjänimellä/salasanalla, kunnes pysyt ajan tasalla Tecmintistä.