Kaip nustatyti HTTPS (SSL sertifikatus) saugiam PhpMyAdmin prisijungimui


Norėdami pristatyti šį patarimą, pažvelkime į HTTP srautą tarp kliento įrenginio ir Debian 8 serverio, kuriame padarėme nekaltą klaidą prisijungdami naudodami pagrindinio duomenų bazės naudotojo kredencialus paskutiniame straipsnyje, adresu: Keisti ir sauga. Numatytasis PhpMyAdmin prisijungimo URL

Kaip minėjome ankstesniame patarime, dar nebandykite to daryti, jei nenorite atskleisti savo kredencialų. Norėdami pradėti uostyti srautą, įvedėme šią komandą ir paspaudėme 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

Netrukus suprasime, kad naudotojo vardas ir slaptažodis buvo išsiųsti laidu paprasto teksto formatu, kaip matote sutrumpintame tcpdump išvestyje paveikslėlis žemiau.

Atminkite, kad mes paslėpėme dalį root slaptažodžio su mėlyna žyma virš jos:

Norėdami to išvengti, apsaugokime prisijungimo puslapį sertifikatu. Norėdami tai padaryti, įdiekite paketą mod_ssl CentOS pagrįstuose platinimuose.

yum install mod_ssl

Nors naudosime Debian/Ubuntu kelią ir pavadinimus, ta pati procedūra galioja CentOS ir RHEL, jei pakeisite toliau nurodytas komandas ir kelius su CentOS atitikmenimis.

Sukurkite katalogą raktui ir sertifikatui saugoti:

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

Sukurkite raktą ir sertifikatą:

----------- 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
Pavyzdžio išvestis
........................+++
.....................................................+++
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 

Tada patikrinkite raktą ir 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

Jei naudojate Debian/Ubuntu, įsitikinkite, kad Apache klausosi numatytosios svetainės prievado 443 (/etc/apache2/sites- available/000-default.conf) ir pridėkite 3 su SSL susijusias eilutes VirtualHost deklaracijoje:

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

Jei naudojate CentOS pagrįstą platinimą, nurodykite Apache klausytis per prievadą 443 ir ieškokite klausymo direktyvos /etc/httpd/conf/ httpd.conf ir po juo pridėkite aukščiau nurodytas eilutes.

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

Išsaugokite pakeitimus, įkelkite SSL Apache modulį Debian/Ubuntu paskirstymuose (CentOS tai įkeliama automatiškai, kai įdiegiate mod_ssl anksčiau):

a2enmod ssl

Priverskite phpmyadmin naudoti SSL, įsitikinkite, kad /etc/phpmyadmin/config.inc.php arba / yra ši eilutė. etc/phpMyAdmin/config.inc.php failas:

$cfg['ForceSSL'] = true;

ir iš naujo paleiskite žiniatinklio serverį:

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

Tada paleiskite žiniatinklio naršyklę ir įveskite https:///my (sužinokite, kaip pakeisti PhpMyAdmin prisijungimo URL), kaip parodyta toliau.

Svarbu: atminkite, kad tai tik sako, kad ryšys nėra saugus, nes naudojame savarankiškai pasirašytą sertifikatą. Spustelėkite Išplėstinė ir patvirtinkite saugos išimtį:

Patvirtinę saugos išimtį ir prieš prisijungdami, pradėkime tikrinti HTTP ir HTTPS srautą:

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

Tada prisijunkite naudodami tuos pačius kredencialus, kaip ir anksčiau. Eismo uostytojas geriausiu atveju užfiksuos tik beprasmybę:

Kol kas viskas, kitame straipsnyje mes pasidalinsime su jumis, kad apribotumėte „PhpMyAdmin“ prieigą naudodami vartotojo vardą/slaptažodį, o iki tol stebėkite „Tecmint“.