Kuidas seadistada HTTPS (SSL-sertifikaadid) PhpMyAdmini sisselogimise turvalisuse tagamiseks


Selle näpunäite tutvustamiseks nuusutagem kliendimasina ja Debian 8 serveri vahelist HTTP-liiklust, kus oleme teinud süütu vea, logides sisse andmebaasi juurkasutaja mandaate kasutades meie viimases artiklis aadressil: PhpMyAdmini vaikesisselogimise URL-i muutmine ja turvaline kinnitamine

Nagu eelmises näpunäites mainisime, ärge proovige seda veel teha, kui te ei soovi oma volitusi paljastada. Liikluse nuusutamise alustamiseks tippisime järgmise käsu ja vajutasime 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

Meil ei lähe kaua aega, kui mõistame, et kasutajanimi ja parool on traadi kaudu saadetud lihttekstivormingus, nagu näete tcpdumpi kärbitud väljundist alloleval pildil.

Pange tähele, et oleme peitnud osa juurparoolist sinise märgiga:

Selle vältimiseks turvame sisselogimislehe sertifikaadiga. Selleks installige pakett mod_ssl CentOS-põhistele jaotustele.

# yum install mod_ssl

Kuigi me kasutame Debiani/Ubuntu teed ja nimesid, kehtib sama protseduur CentOSi ja RHEL-i puhul, kui asendate allolevad käsud ja teed CentOS-i ekvivalentidega.

Looge võti ja sertifikaadi salvestamiseks kataloog:

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

Looge võti ja sertifikaat:

----------- 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 protected]

Järgmisena kontrollige võtit ja sertifikaati.

# 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

Debianis/Ubuntus veenduge, et Apache kuulaks vaikesaidi porti 443 (/etc/apache2/sites-available/000-default.conf) ja lisage deklaratsiooniga VirtualHost 3 SSL-ga seotud rida:

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

CentOS-põhistes jaotustes käskige Apache'il kuulata porti 443 ja otsige kataloogi /etc/httpd/conf/httpd.conf kuulamisdirektiiv ning lisage ülaltoodud read selle alla.

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

Salvestage muudatused, laadige SSL Apache moodul Debiani/Ubuntu jaotustesse (CentOS-is laaditakse see automaatselt, kui installisite mod_ssl varem):

# a2enmod ssl

Sundige phpmyadminit SSL-i kasutama, veenduge, et failis /etc/phpmyadmin/config.inc.php või /etc/phpMyAdmin/config.inc.php oleks järgmine rida:

$cfg['ForceSSL'] = true;

ja taaskäivitage veebiserver:

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

Järgmisena käivitage oma veebibrauser ja tippige https://my (vaadake, kuidas muuta PhpMyAdmini sisselogimise URL-i), nagu allpool näidatud.

Tähtis: Pange tähele, et öeldakse ainult, et ühendus pole turvaline, kuna kasutame ise allkirjastatud sertifikaati. Klõpsake valikul Täpsem ja kinnitage turvaerand:

Pärast turvaerandi kinnitamist ja enne sisselogimist alustame HTTP- ja HTTPS-liikluse nuuskimist:

# 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

Seejärel logige sisse samade mandaatidega nagu varem. Liikluse nuusutaja haarab parimal juhul ainult pätti:

See on praegu kõik, järgmises artiklis jagame teid PhpMyAdmini juurdepääsu piiramiseks kasutajanime/parooliga, kuni olete Tecmintiga kursis.