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 []:[email protected]

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 [email protected]:/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:       [email protected]
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.



Leave a Comment

Jak zainstalować i skonfigurować OrientDB Community Edition na CentOS 7

Jak zainstalować i skonfigurować OrientDB Community Edition na CentOS 7

OrientDB to wielomodowy model open source NoSQL DBMS nowej generacji. Dzięki obsłudze wielu modeli danych, OrientDB może zapewnić większą funkcjonalność i elastyczność

Jak wykonać kopię zapasową i przywrócić bazy danych PostgreSQL na Ubuntu 16.04

Jak wykonać kopię zapasową i przywrócić bazy danych PostgreSQL na Ubuntu 16.04

Wprowadzenie PostgreSQL to darmowy i otwarty system zarządzania bazą danych, który może być wykorzystywany do przechowywania informacji związanych ze stronami internetowymi. Jest również znany jako

Zabezpieczanie MongoDB

Zabezpieczanie MongoDB

MongoDB nie jest domyślnie bezpieczny. Jeśli instalujesz MongoDB i uruchamiasz go bez konfigurowania go do uwierzytelniania, będziesz miał zły czas

Skonfiguruj MariaDB na OpenBSD 6

Skonfiguruj MariaDB na OpenBSD 6

W tym artykule pokażę, jak zainstalować MariaDB na OpenBSD 6 i skonfigurować, aby był dostępny dla chrootowanego serwera WWW (Apache lub Nginx). Będziesz także

Tworzenie kopii zapasowych baz danych MySQL

Tworzenie kopii zapasowych baz danych MySQL

MySQL to najpopularniejsze na świecie oprogramowanie do baz danych. Bardzo ważne jest upewnienie się, że masz kopie zapasowe bazy danych. Ta praktyka pozwala

Jak zainstalować Laravel GitScrum na CentOS 7

Jak zainstalować Laravel GitScrum na CentOS 7

Laravel GitScrum lub GitScrum to narzędzie produkcyjne o otwartym kodzie źródłowym zaprojektowane, aby pomóc zespołom programistycznym w implementacji metodologii Scrum w podobny sposób

Jak zainstalować Apache Cassandra 3.11.x na Debian 9

Jak zainstalować Apache Cassandra 3.11.x na Debian 9

Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności

Jak zainstalować PostgreSQL 11.1 na Arch Linux

Jak zainstalować PostgreSQL 11.1 na Arch Linux

Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł). Dostęp Sudo. Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem # i jednym

Jak zainstalować i skonfigurować ArangoDB na CentOS 7

Jak zainstalować i skonfigurować ArangoDB na CentOS 7

Używasz innego systemu? Wprowadzenie ArangoDB to otwarta baza danych NoSQL z elastycznym modelem danych dla dokumentów, wykresów i kluczowych wartości. To jest

Zainstaluj nowsze wersje MongoDB na Debian 7

Zainstaluj nowsze wersje MongoDB na Debian 7

MongoDB to szybka i wydajna baza danych NoSQL. Jednak repozytoria Debiana aktualizują się powoli i często zawierają bardzo stare wersje pakietów. To tutoria

Jak zainstalować Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Jak zainstalować Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności

Wdróż zestaw replik o wysokiej dostępności w MongoDB 3.4 przy użyciu pliku kluczy do kontroli dostępu w systemie Ubuntu 16.04

Wdróż zestaw replik o wysokiej dostępności w MongoDB 3.4 przy użyciu pliku kluczy do kontroli dostępu w systemie Ubuntu 16.04

Od momentu powstania w 2009 roku MongoDB jest liderem branży NoSQL. Jedną z podstawowych koncepcji MongoDB jest zestaw replik, więc przed rozpoczęciem pracy z i

Zainstaluj InfluxDB na Debian Jessie z Telegraf

Zainstaluj InfluxDB na Debian Jessie z Telegraf

Wprowadzenie InfluxDB to baza danych oparta na szeregach czasowych napisana w Go. InfluxDB ma wiele praktycznych zastosowań, z których jednym jest przechowywanie danych monitorowania na serwerach. ja

Jak zainstalować MongoDB 4.0 na Arch Linux

Jak zainstalować MongoDB 4.0 na Arch Linux

Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł) Dostęp Sudo: Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem #, a jeden

Jak zainstalować phpRedisAdmin na CentOS 7

Jak zainstalować phpRedisAdmin na CentOS 7

phpRedisAdmin to aplikacja internetowa zarządzająca bazami danych Redis z intuicyjnym graficznym interfejsem użytkownika. W tym samouczku wyjaśnimy, jak zainstalować

Jak zainstalować MariaDB 10.3 lub MySQL 8.0 na Arch Linux

Jak zainstalować MariaDB 10.3 lub MySQL 8.0 na Arch Linux

Wymagania wstępne Serwer Vultr działający na bieżąco Arch Linux (zobacz ten artykuł). Dostęp Sudo: Polecenia wymagane do uruchomienia jako root są poprzedzone znakiem #, a jeden

Jak zainstalować Apache Cassandra 3.11.x na CentOS 7

Jak zainstalować Apache Cassandra 3.11.x na CentOS 7

Używasz innego systemu? Apache Cassandra to darmowy i otwarty system zarządzania bazą danych NoSQL, który został zaprojektowany w celu zapewnienia skalowalności

Jak zainstalować Redis na Ubuntu 15.10

Jak zainstalować Redis na Ubuntu 15.10

Redis to rozwiązanie do przechowywania danych o kluczowej wartości, często nazywane bazą danych NoSQL. Może osiągnąć bardzo duże prędkości odczytu / zapisu, ponieważ jest to pamięć wbudowana w pamięć

Jak zainstalować MyCLI w systemie Linux (CentOS, Debian, Fedora i Ubuntu)

Jak zainstalować MyCLI w systemie Linux (CentOS, Debian, Fedora i Ubuntu)

Wprowadzenie MyCLI to klient wiersza poleceń dla MySQL i MariaDB, który umożliwia automatyczne uzupełnianie i pomaga w składni poleceń SQL. MyCL

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…

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ą

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.

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.