Kā iestatīt HTTPS (SSL sertifikātus), lai nodrošinātu drošu PhpMyAdmin pieteikšanos


Lai ieviestu šo padomu, nosnauksim HTTP trafiku starp klienta mašīnu un Debian 8 serveri, kur mēs esam pieļāvuši nevainīgu kļūdu, piesakoties, izmantojot datu bāzes saknes lietotāja akreditācijas datus mūsu pēdējā rakstā: PhpMyAdmin noklusējuma pieteikšanās URL mainīšana un drošība

Kā jau minējām iepriekšējā padomā, vēl nemēģiniet to izdarīt, ja nevēlaties atklāt savus akreditācijas datus. Lai sāktu trafika satiksmi, mēs ierakstījām šādu komandu un nospiedām 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

Mums nebūs vajadzīgs ilgs laiks, lai saprastu, ka lietotājvārds un parole pa vadu ir nosūtīti vienkārša teksta formātā, kā redzat tcpdump saīsinātajā izvadē zemāk esošajā attēlā.

Lūdzu, ņemiet vērā, ka mēs esam paslēpuši saknes paroles daļu ar zilu atzīmi virs tās:

Lai to izvairītos, nodrošināsim pieteikšanās lapu ar sertifikātu. Lai to izdarītu, instalējiet mod_ssl pakotni izplatījumos, kuru pamatā ir CentOS.

# yum install mod_ssl

Lai gan mēs izmantosim Debian/Ubuntu ceļu un nosaukumus, tā pati procedūra ir derīga arī CentOS un RHEL, ja zemāk esošās komandas un ceļus aizstājat ar CentOS ekvivalentiem.

Izveidojiet direktoriju, lai saglabātu atslēgu un sertifikātu:

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

Izveidojiet atslēgu un sertifikātu:

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

Pēc tam pārbaudiet atslēgu un sertifikātu.

# 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

Pārliecinieties, vai programmā Debian/Ubuntu noklusējuma vietne Apache klausās 443. portā (/etc/apache2/sites-available/000-default.conf) un VirtualHost deklarācijā pievienojiet 3 ar SSL saistītās rindas:

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

CentOS balstītajos izplatījumos sakiet Apache, lai klausītos 443. portā, meklējiet direktīvu Klausīties /etc/httpd/conf/httpd.conf un pievienojiet iepriekš minētās rindas zem tā.

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

Saglabājiet izmaiņas, ielādējiet SSL Apache moduli Debian/Ubuntu izplatījumos (CentOS tas tiek ielādēts automātiski, kad agrāk instalējāt mod_ssl):

# a2enmod ssl

Piespiest phpmyadmin izmantot SSL, pārliecinieties, vai /etc/phpmyadmin/config.inc.php vai /etc/phpMyAdmin/config.inc.php failā ir šāda rinda:

$cfg['ForceSSL'] = true;

un restartējiet tīmekļa serveri:

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

Pēc tam palaidiet tīmekļa pārlūku un ierakstiet https://my (uzziniet, kā mainīt PhpMyAdmin pieteikšanās URL), kā parādīts zemāk.

Svarīgi: Lūdzu, ņemiet vērā, ka sakot tikai to, ka savienojums nav drošs, jo mēs izmantojam pašu parakstītu sertifikātu. Noklikšķiniet uz Papildu un apstipriniet drošības izņēmumu:

Pēc drošības izņēmuma apstiprināšanas un pirms pieteikšanās sāksim šņaukt HTTP un HTTPS trafiku:

# 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

Pēc tam piesakieties, izmantojot tos pašus akreditācijas datus, kas iepriekš. Satiksmes šņācējs labākajā gadījumā uztvers tikai žēlabainību:

Tas ir viss, nākamajā rakstā mēs jums dalīsimies, lai ierobežotu PhpMyAdmin piekļuvi ar lietotājvārdu/paroli, līdz tam sekojiet līdzi Tecmint.