Захтеви
Корак 1: Инсталирајте МариаДБ
Корак 2: Креирајте ССЛ сертификат и приватни кључ за сервер
Корак 3: Конфигуришите МариаДБ сервер да користи ССЛ
Корак 4: Креирајте корисника са ССЛ привилегијама
Корак 5: Креирајте сертификат клијента
Корак 6: Конфигуришите МариаДБ клијента да користи ССЛ
Корак 7: Проверите удаљене везе
Закључак
МариаДБ је бесплатна база података отвореног кода и најраспрострањенија је замена за МиСКЛ. Направљен је од стране програмера МиСКЛ-а и намерава да остане бесплатан под ГНУ ГПЛ. Веома је брз, скалабилан и долази са богатим скупом функција које га чине веома разноврсним за широк спектар случајева употребе.
Овај водич ће вас провести кроз како да инсталирате и конфигуришете МариаДБ са подршком за ССЛ на Убунту 16.04.
Захтеви
- Нова инстанца Убунту 16.04 Вултр.
- Нероот корисник са судо привилегијама.
- Статичка ИП адреса 192.168.0.190 је конфигурисана на инстанци сервера.
- Статичка ИП адреса 192.168.0.191 је конфигурисана на клијентској машини.
Корак 1: Инсталирајте МариаДБ
Подразумевано, најновија верзија МариаДБ-а није доступна у Убунту 16.04 спремишту; тако да ћете морати да додате МариаДБ спремиште у свој систем.
Прво преузмите кључ са следећом командом:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Затим додајте МариаДБ спремиште у /etc/apt/sources.listдатотеку:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Ажурирајте апт индекс следећом командом:
sudo apt-get update -y
Када се апт индекс ажурира, инсталирајте МариаДБ сервер са следећом командом:
sudo apt-get install mariadb-server -y
Покрените МариаДБ сервер и омогућите му да се покрене у време покретања:
sudo systemctl start mysql
sudo systemctl enable mysql
Затим ћете морати да покренете mysql_secure_installationскрипту да бисте обезбедили инсталацију МариаДБ-а. Ова скрипта вам омогућава да поставите роот лозинку, уклоните анонимне кориснике, забраните удаљену роот пријаву и уклоните тест базу података:
sudo mysql_secure_installation
Корак 2: Креирајте ССЛ сертификат и приватни кључ за сервер
Прво, направите директоријум за складиштење свих датотека кључева и сертификата.
sudo mkdir /etc/mysql-ssl
Затим промените директоријум у /etc/mysql-sslи креирајте ЦА сертификат и приватни кључ следећом командом:
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
Одговорите на сва питања као што је приказано у наставку:
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
Затим креирајте приватни кључ за сервер са следећом командом:
sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
Одговорите на сва питања као у претходној команди.
Затим извезите приватни кључ сервера у кључ РСА типа са следећом командом:
sudo sudo openssl rsa -in server-key.pem -out server-key.pem
На крају, генеришите сертификат сервера користећи ЦА сертификат на следећи начин:
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
Сада можете видети све сертификате и кључ са следећом командом:
ls
Требало би да видите следећи излаз:
ca-cert.pem ca-key.pem server-cert.pem server-key.pem server-req.pem
Када завршите, можете прећи на следећи корак.
Требало би да имате све сертификате и приватни кључ; а сада ћете морати да конфигуришете МариаДБ да користи кључ и сертификате. То можете учинити тако што ћете уредити /etc/mysql/mariadb.conf.d/50-server.cnfдатотеку:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Додајте следеће редове испод [mysqld]одељка:
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 = *
Сачувајте датотеку, а затим поново покрените МариаДБ услугу да бисте применили ове промене:
sudo systemctl restart mysql
Сада можете да проверите да ли ССЛ конфигурација ради или не помоћу следећег упита:
mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';
Ако је конфигурација била успешна, требало би да видите следећи излаз:
+---------------+--------------------------------+
| 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 |
+---------------+--------------------------------+
Требало би приметити да have_sslи have_opensslвредности су омогућени у горњој излаз.
Корак 4: Креирајте корисника са ССЛ привилегијама
Креирајте удаљеног корисника који има привилегију да приступи МариаДБ серверу преко ССЛ-а. Урадите то тако што ћете покренути следећу команду:
Прво се пријавите на МиСКЛ шкољку:
mysql -u root -p
Затим креирајте корисника remoteи доделите привилегију за приступ серверу преко ССЛ-а.
MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;
Затим испразните привилегије следећом командом:
MariaDB [(none)]>FLUSH PRIVILEGES;
Коначно, изађите из МиСКЛ љуске са следећом командом:
MariaDB [(none)]>exit;
Напомена: 192.168.0.191 је ИП адреса машине удаљеног корисника (клијента).
Ваш сервер је сада спреман да дозволи везе са удаљеним корисником.
Корак 5: Креирајте сертификат клијента
Конфигурација на страни сервера је завршена. Затим ћете морати да креирате нови кључ и сертификат за клијента.
На серверској машини креирајте клијентски кључ са следећом командом:
sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem
Затим обрадите клијентски РСА кључ следећом командом:
sudo openssl rsa -in client-key.pem -out client-key.pem
На крају, потпишите сертификат клијента следећом командом:
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
Сви сертификати и кључ су спремни за клијента. Затим ћете морати да копирате све клијентске сертификате на било коју клијентску машину на којој желите да покренете МариаДБ клијента.
Мораћете да инсталирате МариаДБ клијента на клијентску машину.
Прво, на клијентској машини, преузмите кључ за МариаДБ са следећом командом:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Затим додајте МариаДБ спремиште у /etc/apt/sources.listдатотеку:
sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list
Затим ажурирајте апт индекс следећом командом:
sudo apt-get update -y
Када се апт индекс ажурира, инсталирајте МариаДБ клијента на клијентску машину са следећом командом:
sudo apt-get install mariadb-client -y
Сада креирајте директоријум за чување свих сертификата:
sudo mkdir /etc/mysql-ssl
Затим копирајте све клијентске сертификате са серверске машине на клијентску машину са следећом командом:
sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/
Затим ћете морати да конфигуришете МариаДБ клијент да користи ССЛ. То можете учинити креирањем /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfдатотеке:
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
Додајте следеће редове:
[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
Сачувајте датотеку када завршите.
Корак 7: Проверите удаљене везе
Сада када је све конфигурисано, време је да проверите да ли се можете успешно повезати са МариаДБ сервером или не.
На клијентској машини покрените следећу команду да бисте се повезали са МариаДБ сервером:
mysql -u remote -h 192.168.0.190 -p mysql
Од вас ће се тражити да унесете remoteкорисничку лозинку. Након давања лозинке, бићете пријављени на удаљени МариаДБ сервер.
Проверите статус везе следећом командом:
MariaDB [mysql]> status
Требало би да видите следећи излаз:
--------------
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
Требало би да видите SSL: Cipher in use is DHE-RSA-AES256-SHAу горњем излазу. То значи да је ваша веза сада безбедна са ССЛ-ом.
Закључак
Честитам! Успешно сте конфигурисали МариаДБ сервер са подршком за ССЛ. Сада можете одобрити приступ другим клијентима за приступ МариаДБ серверу преко ССЛ-а.