Kuinka määrittää HTTPS (SSL-varmenteet) suojaamaan PhpMyAdmin-kirjautumista
Esittelemme tämän vinkin haistelemalla HTTP-liikennettä asiakaskoneen ja Debian 8 -palvelimen välillä, jossa olemme tehneet viattoman virheen kirjautumalla sisään tietokannan pääkäyttäjän tunnistetiedoilla viimeisessä artikkelissamme osoitteessa: Vaihda ja suojaa PhpMyAdminin oletusarvoinen kirjautumisosoite
Kuten mainitsimme edellisessä vinkissä, älä yritä tehdä sitä vielä, jos et halua paljastaa kirjautumistietojasi. Aloittaaksesi liikenteen haistamisen, kirjoitimme seuraavan komennon ja painoimme 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
Ei vie kauan ymmärtää, että käyttäjätunnus ja salasana on lähetetty langan yli yksinkertaisessa tekstimuodossa, kuten alla olevassa kuvassa näkyy tcpdumpin katkaistussa lähdössä.
Huomaa, että olemme piilottaneet osan juurisalasanasta, jonka yläpuolella on sininen merkki:
Tämän välttämiseksi suojaamme kirjautumissivun varmenteella. Tätä varten asenna mod_ssl-paketti CentOS-pohjaisiin jakeluihin.
# yum install mod_ssl
Vaikka käytämme Debianin/Ubuntu-polkua ja nimiä, sama menettely pätee CentOS: lle ja RHEL: lle, jos korvaat alla olevat komennot ja polut CentOS: n vastaavilla.
Luo hakemisto avaimen ja varmenteen tallentamiseksi:
# mkdir /etc/apache2/ssl [On Debian/Ubuntu based systems] # mkdir /etc/httpd/ssl [On CentOS based systems]
Luo avain ja varmenne:
----------- 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
Tarkista seuraavaksi avain ja varmenne.
# 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
Varmista Debianissa/Ubuntussa, että Apache kuuntelee porttia 443 oletussivustolle (/etc/apache2/sites-available/000-default.conf) ja lisää 3 SSL: ään liittyvää riviä VirtualHost-ilmoituksen sisään:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Käske CentOS-pohjaisissa jakeluissa Apache'ta kuuntelemaan porttia 443, etsimällä Kuunteludirektiiviä tiedostosta /etc/httpd/conf/httpd.conf ja lisäämällä yllä olevat rivit sen alle.
SSLEngine on SSLCertificateFile /etc/httpd/ssl/apache.crt SSLCertificateKeyFile /etc/httpd/ssl/apache.key
Tallenna muutokset, lataa SSL Apache -moduuli Debian/Ubuntu-jakeluihin (CentOSissa tämä ladataan automaattisesti, kun mod_ssl asennettiin aiemmin):
# a2enmod ssl
Pakota phpmyadmin käyttämään SSL: ää, varmista, että seuraava rivi on tiedostossa /etc/phpmyadmin/config.inc.php tai /etc/phpMyAdmin/config.inc.php:
$cfg['ForceSSL'] = true;
ja käynnistä verkkopalvelin uudelleen:
# systemctl restart apache2 [On Debian/Ubuntu based systems] # systemctl restart httpd [On Debian/Ubuntu based systems]
Käynnistä seuraavaksi selain ja kirjoita https:/
(opi muuttamaan PhpMyAdmin-kirjautumisosoitetta) alla olevan kuvan mukaisesti.
Tärkeää: Huomaa, että vain sanotaan, että yhteys ei ole turvallinen, koska käytämme itse allekirjoittamaa varmentetta. Napsauta Lisäasetukset ja vahvista suojauspoikkeus:
Vahvistettuamme tietoturvapoikkeuksen ja ennen sisäänkirjautumista, aloitetaan HTTP- ja HTTPS-liikenteen haistaminen:
# 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
Kirjaudu sitten sisään samoilla tunnistetiedoilla kuin aiemmin. Liikenteen haistelija sieppaa vain parhaimmillaan:
Se on nyt, seuraavassa artikkelissa jaamme sinut rajoittamaan PhpMyAdminin käyttöä käyttäjänimellä/salasanalla, kunnes pysyt ajan tasalla Tecmintistä.