Jak skonfigurować HTTPS (certyfikaty SSL) w celu zabezpieczenia logowania PhpMyAdmin
- 921
- 216
- Pan Jeremiasz Więcek
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 HTTPAby 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.kluczWłą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 HttpsPo 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 HTTPSTo 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.
- « FSWatch - monitoruje zmiany lub modyfikacje katalogów w Linux
- Jak dodać dodatkową warstwę bezpieczeństwa na interfejsie logowania phpMyAdmin »