Wéi Dir HTTPS (SSL Certificaten) opstellt fir PhpMyAdmin Login ze sécheren


Fir dësen Tipp aféieren, loosst eis den HTTP-Traffic tëscht enger Clientmaschinn an dem Debian 8-Server snuffelen, wou mir den onschëllege Feeler gemaach hunn fir Iech mat der Umeldungsinformatioun vun der Datebank Root Benotzer an eisem leschten Artikel unzemellen: Change and Secure Default PhpMyAdmin Login URL

Wéi mir am viregten Tipp ernimmt hunn, probéiert dëst nach net ze maachen wann Dir Är Umeldungsinformatiounen net wëllt aussoen. Fir de Traffic unzefänken, hu mir de folgende Kommando aginn an dréckt 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

Et wäert eis net laang daueren fir ze realiséieren datt de Benotzernumm a Passwuert iwwer den Drot am Kloertextformat geschéckt goufen, wéi Dir an der ofgeschniddener Ausgab vun tcpdump am Bild hei ënnen kënnt gesinn.

Notéiert w.e.g. datt mir en Deel vum Root-Passwuert mat engem bloe Mark driwwer verstoppt hunn:

Fir dëst ze vermeiden, loosst eis d'Login Säit mat engem Certificat ofsécheren. Fir dëst ze maachen, installéiert mod_ssl Package op CentOS baséiert Verdeelungen.

# yum install mod_ssl

Och wa mir den Debian/Ubuntu Wee an d'Nimm benotzen, ass déiselwecht Prozedur valabel fir CentOS a RHEL wann Dir d'Befehle a Weeër hei drënner ersetzt mat den CentOS Äquivalenten.

Erstellt e Verzeichnis fir de Schlëssel an Zertifikat ze späicheren:

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

Erstellt de Schlëssel an Zertifikat:

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

Nächst, z'iwwerpréiwen Schlëssel an Zertifikat.

# 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

An Debian/Ubuntu, vergewëssert Iech datt Apache um Port 443 fir de Standardsite lauschtert (/etc/apache2/sites-available/000-default.conf) a füügt déi 3 SSL-verbonne Linnen an der VirtualHost Deklaratioun derbäi:

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

An CentOS baséiert Verdeelungen, sot Apache fir um Port 443 ze lauschteren a kuckt no der Listen Direktiv an /etc/httpd/conf/httpd.conf a füügt déi uewe genannte Linnen drënner.

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

Ännerungen späicheren, lued den SSL Apache Modul op Debian/Ubuntu Verdeelungen (an CentOS gëtt dëst automatesch gelueden wann Dir mod_ssl virdru installéiert hutt):

# a2enmod ssl

Force phpmyadmin fir SSL ze benotzen, vergewëssert Iech datt déi folgend Linn an /etc/phpmyadmin/config.inc.php oder /etc/phpMyAdmin/config.inc.php Datei präsent ass:

$cfg['ForceSSL'] = true;

a restart de Webserver:

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

Als nächst, lancéiert Äre Webbrowser a gitt https:///my (léiert wéi Dir de PhpMyAdmin Login URL ännert) wéi hei ënnendrënner.

Wichteg: Notéiert w.e.g. datt et nëmme seet datt d'Verbindung net sécher ass well mir e selbst ënnerschriwwenen Zertifika benotzen. Klickt op Advanced a bestätegt d'Sécherheet Ausnam:

Nodeems Dir d'Sécherheet Ausnahm bestätegt, a virum Login, loosst eis HTTP- an HTTPS-Traffic sniffen:

# 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

Da loggt Iech un mat de selwechte Umeldungsinformatiounen wéi virdrun. De Traffic Sniffer wäert nëmmen am beschten Gibberish erfaassen:

Dat ass et fir elo, am nächsten Artikel deele mir Iech fir de PhpMyAdmin Zougang mat Benotzernumm/Passwuert ze beschränken, bis dann op Tecmint ofgeschloss bleiwen.