تأمين MariaDB مع دعم SSL على أوبونتو 16.04

MariaDB هي قاعدة بيانات مجانية مفتوحة المصدر ، وهي الاستبدال الأكثر استخدامًا لـ MySQL. تم صنعه من قبل مطوري MySQL ويهدف إلى البقاء مجانيًا تحت GNU GPL. إنه سريع جدًا وقابل للتطوير ويأتي بمجموعة غنية من الميزات التي تجعله متعدد الاستخدامات لمجموعة متنوعة من حالات الاستخدام.

سيرشدك هذا البرنامج التعليمي إلى كيفية تثبيت MariaDB وتكوينه مع دعم SSL على Ubuntu 16.04.

المتطلبات

  • نسخة جديدة من Ubuntu 16.04 Vultr.
  • مستخدم غير جذري بامتيازات sudo.
  • تم تكوين عنوان IP ثابت 192.168.0.190 على مثيل الخادم.
  • تم تكوين عنوان IP ثابت 192.168.0.191 على جهاز العميل.

الخطوة 1: تثبيت MariaDB

افتراضيًا ، لا يتوفر أحدث إصدار من MariaDB في مستودع Ubuntu 16.04 ؛ لذلك ستحتاج إلى إضافة مستودع MariaDB إلى نظامك.

أولاً ، قم بتنزيل المفتاح بالأمر التالي:

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

بعد ذلك ، أضف مستودع MariaDB إلى /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

قم بتحديث فهرس apt بالأمر التالي:

sudo apt-get update -y

بمجرد تحديث فهرس apt ، قم بتثبيت خادم MariaDB بالأمر التالي:

sudo apt-get install mariadb-server -y

قم بتشغيل خادم MariaDB وتمكينه من البدء في وقت التمهيد:

sudo systemctl start mysql
sudo systemctl enable mysql

بعد ذلك ، ستحتاج إلى تشغيل mysql_secure_installationالبرنامج النصي لتأمين تثبيت MariaDB. يسمح لك هذا البرنامج النصي بتعيين كلمة مرور الجذر ، وإزالة المستخدمين المجهولين ، وعدم السماح بتسجيل الدخول إلى الجذر البعيد وإزالة قاعدة بيانات الاختبار:

sudo mysql_secure_installation

الخطوة 2: إنشاء شهادة SSL ومفتاح خاص للملقم

أولاً ، قم بإنشاء دليل لتخزين جميع ملفات المفتاح والشهادة.

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

بعد ذلك ، أنشئ مفتاحًا خاصًا للخادم باستخدام الأمر التالي:

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

أجب عن جميع الأسئلة كما فعلت في الأمر السابق.

بعد ذلك ، قم بتصدير المفتاح الخاص للخادم إلى مفتاح من نوع RSA باستخدام الأمر التالي:

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

بمجرد الانتهاء ، يمكنك المتابعة إلى الخطوة التالية.

الخطوة 3: تكوين خادم MariaDB لاستخدام SSL

يجب أن يكون لديك جميع الشهادات ومفتاح خاص ؛ والآن ستحتاج إلى تكوين MariaDB لاستخدام المفتاح والشهادات. يمكنك القيام بذلك عن طريق تحرير /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 = *

احفظ الملف ، ثم أعد تشغيل خدمة MariaDB لتطبيق هذه التغييرات:

sudo systemctl restart mysql

الآن ، يمكنك التحقق مما إذا كان تكوين SSL يعمل أم لا مع الاستعلام التالي:

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: إنشاء مستخدم بامتيازات SSL

قم بإنشاء مستخدم بعيد لديه امتياز الوصول إلى خادم MariaDB عبر SSL. قم بذلك عن طريق تشغيل الأمر التالي:

أولاً ، قم بتسجيل الدخول إلى هيكل MySQL:

mysql -u root -p

بعد ذلك ، قم بإنشاء مستخدم remoteومنح الامتياز للوصول إلى الخادم عبر SSL.

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

ثم امسح الامتيازات بالأمر التالي:

MariaDB [(none)]>FLUSH PRIVILEGES;

أخيرًا ، اخرج من هيكل MySQL باستخدام الأمر التالي:

MariaDB [(none)]>exit;

ملاحظة: 192.168.0.191 هو عنوان IP لجهاز المستخدم البعيد (العميل).

خادمك جاهز الآن للسماح بالاتصالات بالمستخدم البعيد.

الخطوة 5: إنشاء شهادة العميل

اكتمل تكوين جانب الخادم الخاص بك. بعد ذلك ، ستحتاج إلى إنشاء مفتاح وشهادة جديدة للعميل.

على جهاز الخادم ، قم بإنشاء مفتاح العميل بالأمر التالي:

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

بعد ذلك ، قم بمعالجة مفتاح RSA للعميل باستخدام الأمر التالي:

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

الخطوة 6: تكوين عميل MariaDB لاستخدام SSL

جميع الشهادات والمفتاح جاهزة للعميل. بعد ذلك ، ستحتاج إلى نسخ جميع شهادات العميل إلى أي جهاز عميل تريد تشغيل عميل MariaDB فيه.

ستحتاج إلى تثبيت عميل MariaDB على جهاز العميل.

أولاً ، على جهاز العميل ، قم بتنزيل مفتاح MariaDB باستخدام الأمر التالي:

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

بعد ذلك ، أضف مستودع MariaDB إلى /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

بعد ذلك ، قم بتحديث فهرس apt بالأمر التالي:

sudo apt-get update -y

بمجرد تحديث فهرس apt ، قم بتثبيت عميل MariaDB على جهاز العميل بالأمر التالي:

sudo apt-get install mariadb-client -y

الآن قم بإنشاء دليل لتخزين جميع الشهادات:

sudo mkdir /etc/mysql-ssl

بعد ذلك ، انسخ جميع شهادات العميل من جهاز الخادم إلى جهاز العميل باستخدام الأمر التالي:

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

بعد ذلك ، ستحتاج إلى تكوين عميل MariaDB لاستخدام 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: التحقق من الاتصالات عن بعد

الآن بعد أن تم تكوين كل شيء ، حان الوقت للتحقق مما إذا كان يمكنك الاتصال بخادم MariaDB بنجاح أم لا.

على جهاز العميل ، قم بتشغيل الأمر التالي للاتصال بخادم MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

سيُطلب منك إدخال remoteكلمة مرور المستخدم. بعد إعطاء كلمة المرور ، سيتم تسجيل دخولك إلى خادم MariaDB البعيد.

تحقق من حالة الاتصال بالأمر التالي:

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:       [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-SHAفي الإخراج أعلاه. هذا يعني أن اتصالك آمن الآن مع SSL.

استنتاج

تهانينا! لقد نجحت في تكوين خادم MariaDB بدعم SSL. يمكنك الآن منح الوصول إلى عملاء آخرين للوصول إلى خادم MariaDB عبر SSL.



Leave a Comment

قم بتثبيت RockMongo على CentOS 7

قم بتثبيت RockMongo على CentOS 7

RockMongo هي أداة إدارة MongoDB على الويب تشبه أداة إدارة MySQL: phpMyAdmin. سيغطي هذا البرنامج التعليمي عملية التثبيت

تأمين MongoDB

تأمين MongoDB

MongoDB غير آمن افتراضيًا. إذا كنت تقوم بتثبيت MongoDB وتشغيله بدون تكوينه للمصادقة ، فستواجه وقتًا سيئًا

نشر مجموعة نسخ متماثلة ذات توفر عالٍ في MongoDB 3.4 باستخدام Keyfile للتحكم في الوصول على Ubuntu 16.04

نشر مجموعة نسخ متماثلة ذات توفر عالٍ في MongoDB 3.4 باستخدام Keyfile للتحكم في الوصول على Ubuntu 16.04

منذ تأسيسها في عام 2009 ، كان MongoDB يقود صناعة NoSQL. أحد المفاهيم الأساسية لـ MongoDB هو مجموعة النسخ المتماثلة ، لذلك قبل العمل مع i

تكوين MariaDB على OpenBSD 6

تكوين MariaDB على OpenBSD 6

في هذا المقال ، يوضح لك Ill كيفية تثبيت MariaDB على OpenBSD 6 وتكوينه بحيث يمكن الوصول إليه من خلال خادم ويب مختلط (Apache أو Nginx). أنت أيضا

كيفية تثبيت واستخدام ArangoDB على أوبونتو 16.04

كيفية تثبيت واستخدام ArangoDB على أوبونتو 16.04

استخدام نظام مختلف؟ مقدمة ArangoDB هي قاعدة بيانات NoSQL مفتوحة المصدر مع نموذج بيانات مرن للمستندات والرسوم البيانية والقيم الأساسية. أنه

النسخ الاحتياطي لقواعد بيانات MySQL

النسخ الاحتياطي لقواعد بيانات MySQL

MySQL هو البرنامج الأكثر شعبية في العالم المستخدم لقواعد البيانات. من المهم جدًا التأكد من وجود نسخ احتياطية من قاعدة بياناتك. تسمح هذه الممارسة

كيفية تثبيت MariaDB 10.3 أو MySQL 8.0 على Arch Linux

كيفية تثبيت MariaDB 10.3 أو MySQL 8.0 على Arch Linux

المتطلبات الأساسية خادم Vultr يعمل حتى تاريخ Arch Linux (راجع هذه المقالة). الوصول إلى Sudo: الأوامر المطلوبة ليتم تشغيلها كجذر مسبوقة بـ # ، وواحد

كيفية تثبيت وتكوين ArangoDB على CentOS 7

كيفية تثبيت وتكوين ArangoDB على CentOS 7

استخدام نظام مختلف؟ مقدمة ArangoDB هي قاعدة بيانات NoSQL مفتوحة المصدر مع نموذج بيانات مرن للمستندات والرسوم البيانية والقيم الأساسية. أنه

كيفية تثبيت MongoDB 4.0 على Arch Linux

كيفية تثبيت MongoDB 4.0 على Arch Linux

المتطلبات الأساسية خادم Vultr يعمل حتى تاريخ Arch Linux (راجع هذه المقالة) وصول Sudo: الأوامر المطلوبة ليتم تشغيلها كجذر مسبوقة بـ # ، وواحد

ثبّت إصدارات أحدث من MongoDB على دبيان 7

ثبّت إصدارات أحدث من MongoDB على دبيان 7

MongoDB هي قاعدة بيانات NoSQL سريعة وقوية. ومع ذلك ، يتم تحديث مستودعات دبيان ببطء وغالبًا ما تحتوي على إصدارات قديمة جدًا من الحزم. هذا توتوريا

قم بتثبيت InfluxDB على Debian Jessie مع Telegraf

قم بتثبيت InfluxDB على Debian Jessie مع Telegraf

مقدمة InfluxDB هي قاعدة بيانات تستند إلى سلسلة زمنية مكتوبة في Go. يحتوي InfluxDB على العديد من الاستخدامات العملية ، أحدها هو تخزين بيانات المراقبة على الخوادم. أنا

كيفية تثبيت Apache Cassandra 3.11.x على Ubuntu 16.04 LTS

كيفية تثبيت Apache Cassandra 3.11.x على Ubuntu 16.04 LTS

استخدام نظام مختلف؟ Apache Cassandra هو نظام إدارة قاعدة بيانات NoSQL مجاني ومفتوح المصدر تم تصميمه لتوفير قابلية التوسع ، hig

كيفية تثبيت وتكوين OrientDB Community Edition على CentOS 7

كيفية تثبيت وتكوين OrientDB Community Edition على CentOS 7

إن OrientDB عبارة عن مصدر مفتوح متعدد النماذج من الجيل التالي NoSQL DBMS. مع دعم نماذج البيانات المتعددة ، يمكن أن يوفر OrientDB المزيد من الوظائف والمرونة في

كيفية تثبيت phpRedisAdmin على CentOS 7

كيفية تثبيت phpRedisAdmin على CentOS 7

phpRedisAdmin هو تطبيق ويب يدير قواعد بيانات Redis مع واجهة مستخدم رسومية بديهية. سيشرح هذا البرنامج التعليمي كيفية التثبيت

كيفية تثبيت Redis على أوبونتو 15.10

كيفية تثبيت Redis على أوبونتو 15.10

Redis هو حل تخزين بيانات ذي قيمة رئيسية ، وغالبًا ما يشار إليه بقاعدة بيانات NoSQL. يمكن أن يحقق سرعات قراءة / كتابة عالية جدًا لأنه عبارة عن وحدة ذاكرة داخل الذاكرة

كيفية النسخ الاحتياطي أو استعادة أو نقل قواعد بيانات MySQL / MariaDB على Ubuntu 16.04

كيفية النسخ الاحتياطي أو استعادة أو نقل قواعد بيانات MySQL / MariaDB على Ubuntu 16.04

النسخ الاحتياطي هو جزء مهم من التعامل مع قواعد البيانات. بغض النظر عما إذا كنت تدير موقعًا للشركات ، أو تستضيف WordPress فقط ، فمن المهم الاحتفاظ بنسخة احتياطية

كيفية تثبيت Laravel GitScrum على CentOS 7

كيفية تثبيت Laravel GitScrum على CentOS 7

Laravel GitScrum ، أو GitScrum هي أداة إنتاجية مفتوحة المصدر مصممة لمساعدة فرق التطوير على تطبيق منهجية سكروم بطريقة مماثلة

كيفية تثبيت Apache Cassandra 3.11.x على دبيان 9

كيفية تثبيت Apache Cassandra 3.11.x على دبيان 9

استخدام نظام مختلف؟ Apache Cassandra هو نظام إدارة قاعدة بيانات NoSQL مجاني ومفتوح المصدر تم تصميمه لتوفير قابلية التوسع ، hig

كيفية تثبيت PostgreSQL 11.1 على قوس لينكس

كيفية تثبيت PostgreSQL 11.1 على قوس لينكس

المتطلبات الأساسية خادم Vultr يعمل حتى تاريخ Arch Linux (راجع هذه المقالة.) الوصول إلى Sudo. الأوامر المطلوبة للتشغيل كجذر مسبوقة بـ # ، وواحدة

كيفية تكوين وورد مع Redis

كيفية تكوين وورد مع Redis

Redis هو مخزن بنية بيانات. إنه شائع في مواقع WordPress لأنه يوفر تعزيزات كبيرة في الأداء بسبب منهجه الأمثل في التخزين المؤقت.

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد