Zabezpiecz MariaDB dzięki obsłudze SSL w systemie Ubuntu 16.04

MariaDB to darmowa baza danych typu open source i jest najczęściej używanym zamiennikiem MySQL. Jest tworzony przez twórców MySQL i ma pozostać wolny na licencji GNU GPL. Jest bardzo szybki, skalowalny i ma bogaty zestaw funkcji, dzięki czemu jest bardzo wszechstronny w szerokim zakresie zastosowań.

Ten samouczek przeprowadzi Cię przez proces instalacji i konfiguracji MariaDB z obsługą SSL w systemie Ubuntu 16.04.

Wymagania

  • Świeża instancja Ubuntu 16.04 Vultr.
  • Użytkownik inny niż root z uprawnieniami sudo.
  • Statyczny adres IP 192.168.0.190 jest skonfigurowany w instancji serwera.
  • Statyczny adres IP 192.168.0.191 jest skonfigurowany na komputerze klienckim.

Krok 1: Zainstaluj MariaDB

Domyślnie najnowsza wersja MariaDB nie jest dostępna w repozytorium Ubuntu 16.04; więc musisz dodać repozytorium MariaDB do swojego systemu.

Najpierw pobierz klucz za pomocą następującego polecenia:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Następnie dodaj repozytorium MariaDB do /etc/apt/sources.listpliku:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Zaktualizuj indeks apt za pomocą następującego polecenia:

sudo apt-get update -y

Po zaktualizowaniu apt index zainstaluj serwer MariaDB za pomocą następującego polecenia:

sudo apt-get install mariadb-server -y

Uruchom serwer MariaDB i włącz go podczas uruchamiania:

sudo systemctl start mysql
sudo systemctl enable mysql

Następnie musisz uruchomić mysql_secure_installationskrypt, aby zabezpieczyć instalację MariaDB. Ten skrypt pozwala ustawić hasło roota, usunąć anonimowych użytkowników, zabronić zdalnego logowania roota i usunąć testową bazę danych:

sudo mysql_secure_installation

Krok 2: Utwórz certyfikat SSL i klucz prywatny dla serwera

Najpierw utwórz katalog do przechowywania wszystkich plików kluczy i certyfikatów.

sudo mkdir /etc/mysql-ssl

Następnie zmień katalog na /etc/mysql-ssli utwórz certyfikat CA i klucz prywatny za pomocą następującego polecenia:

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

Odpowiedz na wszystkie pytania, jak pokazano poniżej:

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) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:example@example.com

Następnie utwórz klucz prywatny dla serwera za pomocą następującego polecenia:

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

Odpowiedz na wszystkie pytania, tak jak w poprzednim poleceniu.

Następnie wyeksportuj klucz prywatny serwera do klucza typu RSA za pomocą następującego polecenia:

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

Na koniec wygeneruj certyfikat serwera przy użyciu certyfikatu CA w następujący sposób:

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Teraz możesz zobaczyć wszystkie certyfikaty i klucz za pomocą następującego polecenia:

ls

Powinieneś zobaczyć następujące dane wyjściowe:

ca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem

Po zakończeniu możesz przejść do następnego kroku.

Krok 3: Skonfiguruj serwer MariaDB do korzystania z protokołu SSL

Powinieneś mieć wszystkie certyfikaty i klucz prywatny; a teraz musisz skonfigurować MariaDB do korzystania z klucza i certyfikatów. Możesz to zrobić, edytując /etc/mysql/mariadb.conf.d/50-server.cnfplik:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Dodaj następujące wiersze w [mysqld]sekcji:

ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem

##Change this value to connect the MariaDB server from another host.
bind-address = *

Zapisz plik, a następnie uruchom ponownie usługę MariaDB, aby zastosować te zmiany:

sudo systemctl restart mysql

Teraz możesz sprawdzić, czy konfiguracja SSL działa, korzystając z następującego zapytania:

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

Jeśli konfiguracja się powiodła, powinieneś zobaczyć następujące dane wyjściowe:

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

Powinieneś zauważyć, że wartości have_ssli have_opensslsą włączone w powyższym wyniku.

Krok 4: Utwórz użytkownika z uprawnieniami SSL

Utwórz użytkownika zdalnego, który ma uprawnienia dostępu do serwera MariaDB przez SSL. Zrób to, uruchamiając następujące polecenie:

Najpierw zaloguj się do powłoki MySQL:

mysql -u root -p

Następnie utwórz użytkownika remotei nadaj uprawnienia dostępu do serwera za pośrednictwem protokołu SSL.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

Następnie opróżnij uprawnienia za pomocą następującego polecenia:

MariaDB [(none)]>FLUSH PRIVILEGES;

Na koniec wyjdź z powłoki MySQL za pomocą następującego polecenia:

MariaDB [(none)]>exit;

Uwaga: 192.168.0.191 to adres IP komputera zdalnego użytkownika (klienta).

Twój serwer jest teraz gotowy, aby zezwolić na połączenia ze zdalnym użytkownikiem.

Krok 5: Utwórz certyfikat klienta

Konfiguracja po stronie serwera jest zakończona. Następnie musisz utworzyć nowy klucz i certyfikat dla klienta.

Na komputerze serwera utwórz klucz klienta za pomocą następującego polecenia:

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

Następnie przetworz klucz RSA klienta za pomocą następującego polecenia:

sudo openssl rsa -in client-key.pem -out client-key.pem

Na koniec podpisz certyfikat klienta za pomocą następującego polecenia:

sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Krok 6: Skonfiguruj klienta MariaDB do korzystania z protokołu SSL

Wszystkie certyfikaty i klucz są gotowe dla klienta. Następnie musisz skopiować wszystkie certyfikaty klienta na dowolną maszynę klienta, na której chcesz uruchomić klienta MariaDB.

Będziesz musiał zainstalować klienta MariaDB na komputerze klienta.

Najpierw na komputerze klienckim pobierz klucz MariaDB za pomocą następującego polecenia:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Następnie dodaj repozytorium MariaDB do /etc/apt/sources.listpliku:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Następnie zaktualizuj apt apt za pomocą następującego polecenia:

sudo apt-get update -y

Po zaktualizowaniu apt index zainstaluj klienta MariaDB na komputerze klienta za pomocą następującego polecenia:

sudo apt-get install mariadb-client -y

Teraz utwórz katalog do przechowywania wszystkich certyfikatów:

sudo mkdir /etc/mysql-ssl

Następnie skopiuj wszystkie certyfikaty klienta z komputera serwera na komputer klienta za pomocą następującego polecenia:

sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Następnie musisz skonfigurować klienta MariaDB do korzystania z SSL. Możesz to zrobić, tworząc /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfplik:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Dodaj następujące wiersze:

[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem

Po zakończeniu zapisz plik.

Krok 7: Sprawdź połączenia zdalne

Teraz, gdy wszystko jest skonfigurowane, czas sprawdzić, czy możesz pomyślnie połączyć się z serwerem MariaDB.

Na komputerze klienckim uruchom następujące polecenie, aby połączyć się z serwerem MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Zostaniesz poproszony o podanie remotehasła użytkownika. Po podaniu hasła zostaniesz zalogowany na zdalnym serwerze MariaDB.

Sprawdź status połączenia za pomocą następującego polecenia:

MariaDB [mysql]> status

Powinieneś zobaczyć następujące dane wyjściowe:

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       remote@192.168.0.191
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

Powinieneś zobaczyć SSL: Cipher in use is DHE-RSA-AES256-SHAw powyższym wyniku. Oznacza to, że Twoje połączenie jest teraz bezpieczne dzięki SSL.

Wniosek

Gratulacje! Pomyślnie skonfigurowałeś serwer MariaDB z obsługą SSL. Możesz teraz przyznać dostęp innym klientom w celu uzyskania dostępu do serwera MariaDB przez SSL.

Zostaw komentarz

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.