Jak skonfigurować HTTPS (certyfikaty SSL) w celu zabezpieczenia logowania PhpMyAdmin

Jak skonfigurować HTTPS (certyfikaty SSL) w celu zabezpieczenia logowania PhpMyAdmin

Aby wprowadzić tę wskazówkę, wąchajmy ruch HTTP między maszyną klienta a Debian 8 serwer, w którym popełniliśmy niewinny błąd, aby zalogować się przy użyciu poświadczeń użytkownika root danych w naszym ostatnim artykule: Zmień i bezpieczne domyślne URL logowania phpMyAdmin

Jak wspomnialiśmy w poprzedniej wskazówce, nie próbuj jeszcze tego robić, jeśli nie chcesz ujawniać swoich poświadczeń. Aby rozpocząć wąchanie ruchu, wpisaliśmy następujące polecenie i naciskaliśmy Enter:

# tcpdump port http -l -a | egrep -i 'pass = | pwd = | log = | login = | użytkownik = | nazwa użytkownika = | pW = | PASSW = | PASSWD = | Password = | Pass: | User: | Nazwa użytkownika: | Hasło: | Login: | Pass Pass | Użytkownik ' -line -buffered -B20 

Nie zajmie nam dużo czasu, aby uświadomić sobie, że nazwa użytkownika I hasło zostały wysłane przez drut w formacie zwykłego tekstu, jak widać na obciętym wyjściu TCPDump na poniższym obrazku.

Pamiętaj, że mamy ukrytą część źródło hasło z niebieskim znakiem:

Wąchanie ruchu HTTP

Aby tego uniknąć, zabezpieczmy stronę logowania za pomocą certyfikatu. Aby to zrobić, zainstaluj pakiet mod_ssl Centos rozkłady oparte na oparciu.

# Yum Instal MOD_SSL 

Chociaż użyjemy Debian/Ubuntu ścieżka i nazwy, ta sama procedura jest ważna dla Centos I Rhel Jeśli zastąpisz poniższe polecenia i ścieżki Centos równoważniki.

Utwórz katalog do przechowywania klucza i certyfikatu:

# mkdir/etc/apache2/ssl [na Debian/Ubuntu systemy oparte na] # mkdir/etc/httpd/ssl [na Centos systemy oparte] 

Utwórz klucz i certyfikat:

----------- NA Debian/Ubuntu Systemy oparte ----------- # Openssl req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout/etc/apache2/ssl/apache.klucz -ut/etc/apache2/ssl/apache.CRT ----------- ON Centos Systemy oparte ----------- # Openssl Req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout/etc/httpd/ssl/apache.klucz -ut/etc/httpd/ssl/apache.crt 
Przykładowy wyjście
… +++… ++ Pisanie nowego klucza prywatnego do '/etc/httpd/ssl/apache.Klucz '----- Zaraz zostaniesz poproszony o wprowadzenie informacji, które zostaną włączone do Twojego żądania certyfikatu. To, co zamierzasz wejść, to tak zwana nazwa wyróżniająca lub DN. Istnieje sporo pól, ale możesz zostawić puste pola na niektórych polach, jeśli wejdziesz, będzie wartość domyślna.', pole pozostanie puste. ----- Nazwa kraju (2 -literowy kod) [xx]:W Nazwa stanu lub prowincji (pełna nazwa) []:Maharashtra Nazwa lokalizacji (np. Miasto) [Domyślne miasto]:Bombaj Nazwa organizacji (np. Firma) [Domyślna firma Ltd]:Tecmint Nazwa jednostki organizacyjnej (np. Sekcja) []:Tecmint Nazwa zwyczajowa (np. Nazwa lub nazwa hosta twojego serwera) []:Tecmint Adres e -mail []:[chroniony e -mail] 

Następnie zweryfikuj klucz i certyfikat.

# cd/etc/apache2/ssl/[on Debian/Ubuntu systemy oparte na] # cd/etc/httpd/ssl/[na Centos Systemy oparte] # ls -l łącznie 8 -RW-R-R--. 1 root root 1424 września 7 15:19 Apache.crt -Rw-r-r--. 1 root root 1704 września 7 15:19 Apache.klucz 

W Debian/Ubuntu, Upewnij się, że Apache Słuchuje na porcie 443 dla witryny domyślnej (/etc/apache2/witryny-dostępne/000-default.conf) i dodaj 3 linie związane z SSL Virtualhost deklaracja:

SsLengine na SSLCertificateFile/etc/apache2/ssl/apache.crt sslcertificateKeKeyFile/etc/apache2/ssl/apache.klucz 
Włącz SSL na VirtualHost

W Centos oparte na dystrybucjach, powiedz Apache Aby słuchać w porcie 443 i poszukaj dyrektywy do słuchania w /etc/httpd/conf/httpd.conf i dodaj powyższe linie poniżej.

SsLengine na SSLCertificateFile/etc/httpd/ssl/apache.crt sslcertificateKeKeyFile/etc/httpd/ssl/apache.klucz 

Zapisz zmiany, załaduj SSL Apache moduł na Debian/Ubuntu rozkłady (w Centos Jest to ładowane automatycznie po zainstalowaniu mod_ssl wcześniej):

# A2enmod SSL 

Siła phpMyAdmin używać SSL, Upewnij się, że następujący wiersz jest obecny w /etc/phpMyAdmin/config.Inc.php Lub /etc/phpMyAdmin/config.Inc.php plik:

$ cfg ['forcesssl'] = true; 

i uruchom ponownie serwer WWW:

# Systemctl restartuj apache2 [on Debian/Ubuntu systemy oparte na] # Systemctl restartuj httpd [on Debian/Ubuntu systemy oparte] 

Następnie uruchom przeglądarkę internetową i wpisz https: /// my (Dowiedz się, jak zmienić adres URL logowania phpMyAdmin), jak pokazano poniżej.

Ważny: Należy pamiętać, że mówi tylko, że połączenie nie jest bezpieczne, ponieważ używamy samowystarczalnego certyfikatu. Kliknij Zaawansowany i potwierdź wyjątek bezpieczeństwa:

Włącz phpMyAdmin Https

Po potwierdzeniu wyjątku bezpieczeństwa i przed zalogowaniem się, zacznijmy wąchać Http I Https ruch drogowy:

# tcpdump port http lub port https -l -a | egrep -i 'pass = | pwd = | log = | login = | użytkownik = | nazwa użytkownika = | pW = | PASSW = | PASSWD = | Password = | Pass: | User: | Nazwa użytkownika: | Hasło: | Login: | Pass Pass | Użytkownik ' -line -buffered -B20 

Następnie zaloguj się przy użyciu tych samych poświadczeń, co wcześniej. Sniffer drogowy tylko w najlepszym razie przechwyci bełkot:

Wąchanie ruchu HTTP i HTTPS

To wszystko na razie, w następnym artykule podzielimy się Cię, aby ograniczyć dostęp PhpMyAdmin do nazwy użytkownika/hasła, do tej pory bądź na bieżąco z TecMint.