Website-Suche

So richten Sie HTTPS (SSL-Zertifikate) ein, um die PHPMyAdmin-Anmeldung zu sichern


Um diesen Tipp einzuführen, beschnüffeln wir den HTTP-Verkehr zwischen einem Client-Rechner und dem Debian 8-Server, auf dem wir in unserem letzten Artikel unter „Ändern und Sichern“ den harmlosen Fehler gemacht haben, uns mit den Anmeldeinformationen des Datenbank-Root-Benutzers anzumelden Standard-PhpMyAdmin-Anmelde-URL

Wie bereits im vorherigen Tipp erwähnt, sollten Sie dies noch nicht versuchen, wenn Sie Ihre Anmeldeinformationen nicht preisgeben möchten. Um mit dem Aufspüren des Datenverkehrs zu beginnen, haben wir den folgenden Befehl eingegeben und die Eingabetaste gedrückt:

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

Es wird nicht lange dauern, bis wir feststellen, dass der Benutzername und das Passwort im Klartextformat über die Leitung gesendet wurden, wie Sie in der verkürzten Ausgabe von tcpdump im sehen können Bild unten.

Bitte beachten Sie, dass wir einen Teil des root-Passworts mit einer blauen Markierung darüber versteckt haben:

Um dies zu vermeiden, sichern wir die Anmeldeseite mit einem Zertifikat. Installieren Sie dazu das mod_ssl-Paket auf CentOS-basierten Distributionen.

yum install mod_ssl

Obwohl wir den Debian/Ubuntu-Pfad und die Namen verwenden, gilt das gleiche Verfahren für CentOS und RHEL, wenn Sie die folgenden Befehle und Pfade ersetzen mit den CentOS-Äquivalenten.

Erstellen Sie ein Verzeichnis zum Speichern des Schlüssels und des Zertifikats:

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

Erstellen Sie den Schlüssel und das 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
Beispielausgabe
........................+++
.....................................................+++
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 

Überprüfen Sie als Nächstes den Schlüssel und das 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

Stellen Sie in Debian/Ubuntu sicher, dass Apache auf Port 443 für die Standard-Site lauscht (/etc/apache2/sites- available/000-default.conf) und fügen Sie die drei SSL-bezogenen Zeilen innerhalb der VirtualHost-Deklaration hinzu:

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

Weisen Sie Apache in CentOS-basierten Distributionen an, auf Port 443 zu lauschen und nach der Listen-Direktive in /etc/httpd/conf/ zu suchen. httpd.conf und fügen Sie die obigen Zeilen darunter hinzu.

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

Speichern Sie die Änderungen und laden Sie das Modul SSL Apache auf Debian/Ubuntu-Distributionen (in CentOS wird es automatisch geladen, wenn Sie mod_ssl ) installiert haben. früher):

a2enmod ssl

Erzwingen Sie phpmyadmin die Verwendung von SSL. Stellen Sie sicher, dass die folgende Zeile in /etc/phpmyadmin/config.inc.php oder / vorhanden ist. etc/phpMyAdmin/config.inc.php-Datei:

$cfg['ForceSSL'] = true;

und starten Sie den Webserver neu:

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

Starten Sie als Nächstes Ihren Webbrowser und geben Sie https:///my ein (erfahren Sie, wie Sie die PhpMyAdmin-Anmelde-URL ändern), wie unten gezeigt.

Wichtig: Bitte beachten Sie, dass hier nur gesagt wird, dass die Verbindung nicht sicher ist, da wir ein selbstsigniertes Zertifikat verwenden. Klicken Sie auf Erweitert und bestätigen Sie die Sicherheitsausnahme:

Nachdem wir die Sicherheitsausnahme bestätigt haben und bevor wir uns anmelden, beginnen wir mit der Überwachung des HTTP- und HTTPS-Verkehrs:

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

Melden Sie sich dann mit denselben Anmeldeinformationen wie zuvor an. Der Verkehrsschnüffler erfasst bestenfalls nur Kauderwelsch:

Das war's fürs Erste. Im nächsten Artikel werden wir Ihnen zeigen, wie Sie den PhpMyAdmin-Zugriff mit Benutzername/Passwort beschränken können. Bis dahin bleiben Sie bei Tecmint auf dem Laufenden.