Vyhledávání na webu

Jak nastavit HTTPS (SSL certifikáty) pro bezpečné přihlášení k PhpMyAdmin


Abychom vám tento tip představili, pojďme se podívat na HTTP provoz mezi klientským počítačem a serverem Debian 8, kde jsme udělali nevinnou chybu, když jsme se v našem posledním článku na adrese: Změna a zabezpečení přihlásili pomocí přihlašovacích údajů uživatele root databáze. Výchozí přihlašovací adresa URL pro PhpMyAdmin

Jak jsme již zmínili v předchozím tipu, nepokoušejte se o to, pokud nechcete vystavit své přihlašovací údaje. Abychom začali čichat provozu, zadali jsme následující příkaz a stisknuté kláves 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

Nebude nám trvat dlouho, než si uvědomíme, že uživatelské jméno a heslo byly odeslány po drátě ve formátu prostého textu, jak můžete vidět na zkráceném výstupu tcpdump v Obrázek níže.

Upozorňujeme, že jsme skryli část hesla root s modrou značkou:

Abychom tomu zabránili, zabezpečte přihlašovací stránku certifikátem. Chcete-li to provést, nainstalujte balíček mod_ssl na distribuce založené na CentOS.

yum install mod_ssl

Přestože použijeme cestu a názvy Debian/Ubuntu, stejný postup platí pro CentOS a RHEL, pokud nahradíte níže uvedené příkazy a cesty s ekvivalenty CentOS.

Vytvořte adresář pro uložení klíče a certifikátu:

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

Vytvořte klíč a certifikát:

----------- 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
Ukázkový výstup
........................+++
.....................................................+++
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 

Dále ověřte klíč a certifikát.

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

V Debian/Ubuntu se ujistěte, že Apache naslouchá na portu 443 pro výchozí web (/etc/apache2/sites- available/000-default.conf) a do deklarace VirtualHost přidejte 3 řádky související s SSL:

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

V distribucích založených na CentOS řekněte Apache, aby naslouchal na portu 443, a vyhledejte direktivu Listen v /etc/httpd/conf/ httpd.confa přidejte pod něj výše uvedené řádky.

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

Uložte změny, načtěte modul SSL Apache v distribucích Debian/Ubuntu (v CentOS se načte automaticky při instalaci mod_ssl silný> dříve):

a2enmod ssl

Vynutit phpmyadmin, aby používal SSL, ujistěte se, že je v /etc/phpmyadmin/config.inc.php nebo / přítomen následující řádek etc/phpMyAdmin/config.inc.php soubor:

$cfg['ForceSSL'] = true;

a restartujte webový server:

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

Dále spusťte webový prohlížeč a zadejte https:///my (přečtěte si, jak změnit přihlašovací URL PhpMyAdmin), jak je uvedeno níže.

Důležité: Upozorňujeme, že to pouze říká, že připojení není zabezpečené, protože používáme certifikát s vlastním podpisem. Klikněte na Upřesnit a potvrďte bezpečnostní výjimku:

Po potvrzení bezpečnostní výjimky a před přihlášením začněme sledovat provoz HTTP a HTTPS:

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

Poté se přihlaste pomocí stejných přihlašovacích údajů jako dříve. Sledovač provozu zachytí v nejlepším případě pouze nesmysly:

To je prozatím vše, v příštím článku vás budeme sdílet, abyste omezili přístup PhpMyAdmin pomocí uživatelského jména/hesla, do té doby zůstaňte naladěni na Tecmint.