Ubuntu 16.04te SSL Desteği ile Güvenli MariaDB

MariaDB ücretsiz bir açık kaynak veritabanıdır ve MySQL için en yaygın kullanılan drop-in yedeğidir. MySQL geliştiricileri tarafından yapılır ve GNU GPL kapsamında serbest kalması amaçlanır. Çok hızlı, ölçeklenebilir ve çok çeşitli kullanım durumları için çok yönlü hale getiren zengin özelliklerle birlikte gelir.

Bu eğitici, Ubuntu 16.04'te SSL desteği ile MariaDB'nin nasıl kurulacağı ve yapılandırılacağı konusunda size yol gösterecektir.

Gereksinimler

  • Yeni bir Ubuntu 16.04 Vultr örneği.
  • Sudo ayrıcalıklarına sahip kök olmayan bir kullanıcı.
  • Sunucu örneğinde statik IP adresi 192.168.0.190 yapılandırıldı.
  • İstemci makinede statik bir IP adresi 192.168.0.191 yapılandırıldı.

Adım 1: MariaDB'yi yükleyin

Varsayılan olarak, MariaDB'nin en son sürümü Ubuntu 16.04 deposunda bulunmaz; bu yüzden MariaDB deposunu sisteminize eklemeniz gerekir.

İlk olarak, anahtarı aşağıdaki komutla indirin:

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

Sonra, MariaDB deposunu /etc/apt/sources.listdosyaya ekleyin :

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

Apt dizinini aşağıdaki komutla güncelleyin:

sudo apt-get update -y

Apt dizini güncellendiğinde, MariaDB sunucusunu aşağıdaki komutla yükleyin:

sudo apt-get install mariadb-server -y

MariaDB sunucusunu başlatın ve önyükleme zamanında başlamasını sağlayın:

sudo systemctl start mysql
sudo systemctl enable mysql

Ardından, mysql_secure_installationMariaDB kurulumunu güvenli hale getirmek için komut dosyasını çalıştırmanız gerekecektir . Bu komut dosyası, kök parolayı ayarlamanıza, anonim kullanıcıları kaldırmanıza, uzak kök girişine izin vermemenize ve test veritabanını kaldırmanıza olanak tanır:

sudo mysql_secure_installation

2. Adım: Sunucu için bir SSL Sertifikası ve Özel Anahtar oluşturun

İlk olarak, tüm anahtar ve sertifika dosyalarını saklamak için bir dizin oluşturun.

sudo mkdir /etc/mysql-ssl

Ardından, dizini değiştirin /etc/mysql-sslve aşağıdaki komutla CA sertifikasını ve özel anahtarı oluşturun:

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

Tüm soruları aşağıda gösterildiği gibi cevaplayın:

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]

Ardından, aşağıdaki komutla sunucu için özel bir anahtar oluşturun:

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

Bir önceki komutta yaptığınız gibi tüm soruları cevaplayın.

Ardından, sunucunun özel anahtarını aşağıdaki komutla RSA türü bir anahtara aktarın:

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

Son olarak, CA sertifikasını aşağıdaki gibi kullanarak bir sunucu sertifikası oluşturun:

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

Artık tüm sertifikaları ve anahtarı aşağıdaki komutla görebilirsiniz:

ls

Aşağıdaki çıktıyı görmelisiniz:

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

İşiniz bittiğinde, bir sonraki adıma geçebilirsiniz.

Adım 3: MariaDB Sunucusunu SSL kullanacak şekilde yapılandırma

Tüm sertifikalara ve özel bir anahtara sahip olmalısınız; ve şimdi MariaDB'yi anahtarı ve sertifikaları kullanacak şekilde yapılandırmanız gerekecek. /etc/mysql/mariadb.conf.d/50-server.cnfDosyayı düzenleyerek bunu yapabilirsiniz :

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

[mysqld]Bölümün altına aşağıdaki satırları ekleyin :

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 = *

Dosyayı kaydedin, ardından bu değişiklikleri uygulamak için MariaDB hizmetini yeniden başlatın:

sudo systemctl restart mysql

Şimdi, SSL yapılandırmasının çalışıp çalışmadığını aşağıdaki sorgu ile kontrol edebilirsiniz:

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

Yapılandırma başarılı olursa, aşağıdaki çıktıyı görmelisiniz:

+---------------+--------------------------------+
| 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  |
+---------------+--------------------------------+

Yukarıdaki çıktıda have_sslve have_openssldeğerlerinin etkinleştirildiğini fark etmelisiniz .

4. Adım: SSL Ayrıcalıklarına Sahip Bir Kullanıcı Oluşturun

MariaDB sunucusuna SSL üzerinden erişim ayrıcalığına sahip bir uzak kullanıcı oluşturun. Bunu aşağıdaki komutu çalıştırarak yapın:

İlk olarak, MySQL kabuğuna giriş yapın:

mysql -u root -p

Ardından, kullanıcı oluşturun remoteve sunucuya SSL üzerinden erişmek için ayrıcalık verin.

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

Ardından, aşağıdaki komutla ayrıcalıkları yıkayın:

MariaDB [(none)]>FLUSH PRIVILEGES;

Son olarak, aşağıdaki komutla MySQL kabuğundan çıkın:

MariaDB [(none)]>exit;

Not: 192.168.0.191 uzak kullanıcı (İstemci) makinesinin IP adresidir.

Sunucunuz artık uzak kullanıcıyla bağlantı kurulmasına izin vermeye hazır.

Adım 5: İstemci Sertifikası Oluşturma

Sunucu tarafı yapılandırmanız tamamlandı. Ardından, istemci için yeni bir anahtar ve sertifika oluşturmanız gerekir.

Sunucu makinesinde, istemci komutunu aşağıdaki komutla oluşturun:

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

Ardından, istemci RSA anahtarını aşağıdaki komutla işleyin:

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

Son olarak, istemci sertifikasını aşağıdaki komutla imzalayın:

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

Adım 6: MariaDB İstemcisini SSL Kullanacak Şekilde Yapılandırma

Tüm sertifikalar ve anahtar istemci için hazırdır. Ardından, tüm istemci sertifikalarını MariaDB istemcisini çalıştırmak istediğiniz herhangi bir istemci makineye kopyalamanız gerekecektir.

MariaDB istemcisini istemci makineye kurmanız gerekir.

İlk olarak, istemci makinede, aşağıdaki komutla MariaDB'nin anahtarını indirin:

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

Ardından, MariaDB deposunu /etc/apt/sources.listdosyaya ekleyin :

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

Ardından, apt dizinini aşağıdaki komutla güncelleyin:

sudo apt-get update -y

Apt dizini güncellendiğinde, MariaDB istemcisini aşağıdaki komutla istemci makineye yükleyin:

sudo apt-get install mariadb-client -y

Şimdi tüm sertifikaları saklamak için bir dizin oluşturun:

sudo mkdir /etc/mysql-ssl

Ardından, aşağıdaki komutla tüm istemci sertifikalarını sunucu makinesinden istemci makineye kopyalayın:

sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Ardından, MariaDB istemcisini SSL kullanacak şekilde yapılandırmanız gerekir. Bir /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfdosya oluşturarak bunu yapabilirsiniz :

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

Aşağıdaki satırları ekleyin:

[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

İşiniz bittiğinde dosyayı kaydedin.

7. Adım: Uzaktan Bağlantıları Doğrulayın

Artık her şey yapılandırıldığına göre, MariaDB sunucusuna başarılı bir şekilde bağlanıp bağlanamayacağınızı doğrulama zamanı.

İstemci makinesinde, MariaDB sunucusuna bağlanmak için aşağıdaki komutu çalıştırın:

mysql -u remote -h 192.168.0.190 -p mysql

remoteKullanıcı şifresini girmeniz istenecektir . Şifreyi verdikten sonra, uzak MariaDB sunucusuna giriş yapacaksınız.

Aşağıdaki komutla bağlantının durumunu kontrol edin:

MariaDB [mysql]> status

Aşağıdaki çıktıyı görmelisiniz:

--------------
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

SSL: Cipher in use is DHE-RSA-AES256-SHAYukarıdaki çıktıda görmelisiniz . Bu, bağlantınızın artık SSL ile güvenli olduğu anlamına geliyor.

Sonuç

Tebrikler! SSL destekli bir MariaDB sunucusunu başarıyla yapılandırdınız. Artık MariaDB sunucusuna SSL üzerinden erişmek için diğer istemcilere erişim verebilirsiniz.



Leave a Comment

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.04 Üzerinde PostgreSQL Veritabanlarını Yedekleme ve Geri Yükleme

Ubuntu 16.04 Üzerinde PostgreSQL Veritabanlarını Yedekleme ve Geri Yükleme

Giriş PostgreSQL, web siteleriyle ilgili bilgileri depolamak için kullanılabilen ücretsiz ve açık kaynaklı bir veritabanı yönetim sistemidir. Aynı zamanda bir

MongoDBnin güvenliğini sağlama

MongoDBnin güvenliğini sağlama

MongoDB varsayılan olarak güvenli değildir. MongoDByi yüklüyorsanız ve kimlik doğrulama için yapılandırmadan başlatırsanız, kötü bir zaman geçireceksiniz.

CentOS 7ye RockMongo yükleyin

CentOS 7ye RockMongo yükleyin

RockMongo, MySQL Yönetim aracına benzeyen web tabanlı bir MongoDB Yönetim aracıdır: phpMyAdmin. Bu öğretici kurulum sürecini kapsayacaktır.

Ubuntu 16.04 LTS Üzerinde Apache Cassandra 3.11.x Kurulumu

Ubuntu 16.04 LTS Üzerinde Apache Cassandra 3.11.x Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Apache Cassandra, ölçeklenebilirlik sağlamak için tasarlanmış ücretsiz ve açık kaynaklı bir NoSQL veritabanı yönetim sistemidir.

MySQL Veritabanlarını Yedekleme

MySQL Veritabanlarını Yedekleme

MySQL, veritabanları için kullanılan dünyanın en popüler yazılımıdır. Veritabanınızın yedeklerinin olduğundan emin olmak çok önemlidir. Bu uygulama izin verir

Linuxta MyCLI Kurulumu (CentOS, Debian, Fedora ve Ubuntu)

Linuxta MyCLI Kurulumu (CentOS, Debian, Fedora ve Ubuntu)

Giriş MyCLI, MySQL ve MariaDB için otomatik tamamlamanızı sağlayan ve SQL komutlarınızın sözdizimine yardımcı olan bir komut satırı istemcisidir. MyCL

Debian 7ye Daha Yeni MongoDB Sürümlerini Yükleme

Debian 7ye Daha Yeni MongoDB Sürümlerini Yükleme

MongoDB hızlı ve güçlü bir NoSQL veritabanıdır. Ancak, Debian depoları yavaşça güncellenir ve genellikle paketlerin çok eski sürümlerini içerir. Bu tutoria

Snort ile Barnyard 2 Kurulumu

Snort ile Barnyard 2 Kurulumu

Barnyard2, Snortun ikili çıktılarını bir MySQL veritabanında saklamanın ve işlemenin bir yoludur. Başlamadan önce Lütfen horlama yoksa

CentOS 7 Üzerinde ArangoDB Kurulumu ve Konfigürasyonu

CentOS 7 Üzerinde ArangoDB Kurulumu ve Konfigürasyonu

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş ArangoDB, belgeler, grafikler ve anahtar / değer çiftleri için esnek bir veri modeline sahip açık kaynaklı bir NoSQL veritabanıdır. Bu

CentOS 7 Üzerinde Apache Cassandra 3.11.x Kurulumu

CentOS 7 Üzerinde Apache Cassandra 3.11.x Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Apache Cassandra, ölçeklenebilirlik sağlamak için tasarlanmış ücretsiz ve açık kaynaklı bir NoSQL veritabanı yönetim sistemidir.

Telegraf ile Debian Jessieye InfluxDByi yükleyin

Telegraf ile Debian Jessieye InfluxDByi yükleyin

Giriş InfluxDB, Goda yazılmış zaman serisi tabanlı bir veritabanıdır. InfluxDB, biri izleme verilerini sunucularda depolayan birçok pratik kullanıma sahiptir. ben

MongoDB 3.4te Yüksek Kullanılabilirliğe Sahip Bir Çoğaltma Seti Dağıtma Ubuntuda Erişim Denetimi için Keyfile Kullanma 16.04

MongoDB 3.4te Yüksek Kullanılabilirliğe Sahip Bir Çoğaltma Seti Dağıtma Ubuntuda Erişim Denetimi için Keyfile Kullanma 16.04

2009daki anlayışından bu yana MongoDB NoSQL endüstrisine liderlik etmektedir. MongoDBnin temel kavramlarından biri Çoğaltma Setidir, bu yüzden i ile çalışmadan önce

CentOS 7 Üzerinde phpRedisAdmin Kurulumu

CentOS 7 Üzerinde phpRedisAdmin Kurulumu

phpRedisAdmin, Redis veritabanlarını sezgisel bir grafik kullanıcı arayüzü ile yöneten bir web uygulamasıdır. Bu eğitici nasıl yükleneceğini açıklayacaktır

WordPressi Redis ile Yapılandırma

WordPressi Redis ile Yapılandırma

Redis bir veri yapısı deposudur. WordPress siteleri arasında popülerdir, çünkü önbelleğe almada optimize edilmiş yaklaşımı nedeniyle büyük performans artışları sunar.

Birden Çok MySQL Veya MariaDB Veritabanını Otomatik Olarak Yedekle

Birden Çok MySQL Veya MariaDB Veritabanını Otomatik Olarak Yedekle

Giriş Bu yazıda, özel bir bash betiği kullanarak aynı makinede oturan birden fazla MySQL veya MariaDB veritabanını nasıl yedekleyeceğinizi inceleyin

Ubuntu 15.10 Üzerinde Redis Kurulumu

Ubuntu 15.10 Üzerinde Redis Kurulumu

Redis, genellikle NoSQL veritabanı olarak adlandırılan anahtar / değer içeren bir veri depolama çözümüdür. Çok yüksek okuma / yazma hızlarına ulaşabilir, çünkü bellek içi bir

Arch Linuxa MongoDB 4.0 Kurulumu

Arch Linuxa MongoDB 4.0 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın) Sudo erişimi: Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.04 Üzerinde MySQL / MariaDB Veritabanlarını Yedekleme, Geri Yükleme veya Aktarma

Ubuntu 16.04 Üzerinde MySQL / MariaDB Veritabanlarını Yedekleme, Geri Yükleme veya Aktarma

Yedekleme, veritabanlarıyla uğraşmanın önemli bir parçasıdır. İster kurumsal bir site yönetin, ister sadece WordPress barındırın, sizi yedeklemek önemlidir

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun