MariaDB را با پشتیبانی SSL در اوبونتو 16.04 امن کنید

MariaDB یک پایگاه داده منبع آزاد است و بیشترین کاربرد جایگزین کشویی برای MySQL است. این برنامه توسط توسعه دهندگان MySQL ساخته شده و در نظر گرفته شده است که تحت GNU GPL آزاد بماند. بسیار سریع ، مقیاس پذیر است و دارای مجموعه ای از ویژگیهای غنی است که می تواند آن را برای انواع گسترده ای از موارد استفاده بسیار متنوع سازد.

در این آموزش نحوه نصب و پیکربندی MariaDB با پشتیبانی SSL در اوبونتو 16.04 به شما آموزش خواهیم داد.

الزامات

  • نمونه جدید اوبونتو 16.04 وولتر.
  • یک کاربر غیر ریشه با امتیازات sudo.
  • آدرس IP استاتیک 192.168.0.190 در نمونه سرور پیکربندی شده است.
  • آدرس IP استاتیک 192.168.0.191 در دستگاه مشتری تنظیم شده است.

مرحله 1: MariaDB را نصب کنید

به طور پیش فرض ، آخرین نسخه MariaDB در مخزن اوبونتو 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

فهرست دستورالعمل را با دستور زیر به روز کنید:

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و با دستور زیر گواهی CA و کلید خصوصی را ایجاد کنید:

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

در آخر ، با استفاده از گواهینامه CA یک گواهی سرور تولید کنید به شرح زیر:

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

پس از اتمام کار ، می توانید به مرحله بعدی بروید.

مرحله سوم: سرور 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 دستگاه از راه دور کاربر (Client) است.

اکنون سرور شما آماده است تا امکان اتصال به کاربر از راه دور را فراهم کند.

مرحله 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

مرحله ششم: برای استفاده از SSL Client MariaDB را پیکربندی کنید

کلیه گواهینامه ها و کلید برای مشتری آماده است. در مرحله بعد ، شما باید تمام گواهینامه های مشتری را در هر دستگاه مشتری که در آن می خواهید مشتری 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/

سپس برای استفاده از SSL باید مشتری MariaDB را پیکربندی کنید. می توانید این کار را با ایجاد /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

نحوه تهیه نسخه پشتیبان و بازیابی پایگاه داده های PostgreSQL در اوبونتو 16.04

نحوه تهیه نسخه پشتیبان و بازیابی پایگاه داده های PostgreSQL در اوبونتو 16.04

مقدمه PostgreSQL یک سیستم مدیریت پایگاه داده رایگان و منبع باز است که می تواند برای ذخیره اطلاعات مربوط به وب سایت ها استفاده شود. همچنین شناخته شده است

راه اندازی Barnyard 2 با خروپف

راه اندازی Barnyard 2 با خروپف

Barnyard2 راهی برای ذخیره و پردازش خروجی های باینری از Snort به یک پایگاه داده MySQL است. قبل از شروع لطفا توجه داشته باشید که اگر شما خروپف ندارید

امنیت MongoDB

امنیت MongoDB

MongoDB به طور پیش فرض امن نیست. اگر MongoDB را نصب می کنید و بدون پیکربندی آن برای احراز هویت ، آن را راه اندازی می کنید ، می خواهید زمان بدی داشته باشید

MariaDB را در OpenBSD 6 پیکربندی کنید

MariaDB را در OpenBSD 6 پیکربندی کنید

در این مقاله ، Ill به شما نشان می دهد که چگونه MariaDB را در OpenBSD 6 نصب کنید و پیکربندی کنید تا در دسترس یک وب سرور قرار گرفته (Apache یا Nginx) باشد. شما als

تهیه نسخه پشتیبان از پایگاه داده MySQL

تهیه نسخه پشتیبان از پایگاه داده MySQL

MySQL محبوب ترین نرم افزار در جهان است که برای پایگاه داده ها استفاده می شود. اطمینان از داشتن نسخه پشتیبان از پایگاه داده خود بسیار مهم است. این عمل اجازه می دهد

نحوه نصب و پیکربندی نسخه جامعه OrientDB در CentOS 7

نحوه نصب و پیکربندی نسخه جامعه OrientDB در CentOS 7

OrientDB یک منبع آزاد منبع آزاد چند مدل NoSQL DBMS است. با پشتیبانی از چندین مدل داده ، OrientDB می تواند عملکرد و انعطاف پذیری بیشتری را در اختیار شما قرار دهد

نحوه نصب Apache Cassandra 3.11.x در Debian 9

نحوه نصب Apache Cassandra 3.11.x در Debian 9

با استفاده از یک سیستم متفاوت؟ Apache Cassandra یک سیستم مدیریت پایگاه داده NoSQL آزاد و منبع باز است که به منظور ارائه مقیاس پذیری ، hig طراحی شده است

نحوه نصب MongoDB 4.0 در Arch Linux

نحوه نصب MongoDB 4.0 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید) دسترسی به سودو: دستورات لازم برای اجرا به عنوان root توسط پیشوند شماره یک و یک

نحوه نصب و پیکربندی ArangoDB در CentOS 7

نحوه نصب و پیکربندی ArangoDB در CentOS 7

با استفاده از یک سیستم متفاوت؟ مقدمه ArangoDB یک پایگاه داده منبع باز NoSQL است که دارای یک مدل داده انعطاف پذیر برای اسناد ، نمودارها و مقادیر کلیدی است. این است

نحوه نصب MariaDB 10.3 یا MySQL 8.0 در Arch Linux

نحوه نصب MariaDB 10.3 یا MySQL 8.0 در Arch Linux

پیش نیاز سرور Vultr در حال اجرا به روز Arch Arch (به این مقاله مراجعه کنید.) دسترسی به سودو: دستورات لازم برای اجرا به عنوان root توسط پیشوند # و یک مورد انجام می شود

نسخه های جدیدتری از MongoDB را روی Debian 7 نصب کنید

نسخه های جدیدتری از MongoDB را روی Debian 7 نصب کنید

MongoDB یک پایگاه داده سریع و قدرتمند NoSQL است. با این حال ، مخازن دبیان به آرامی بروزرسانی می شوند و اغلب حاوی نسخه های بسیار قدیمی بسته ها هستند. این آموزش

نحوه نصب Laravel GitScrum در CentOS 7

نحوه نصب Laravel GitScrum در CentOS 7

Laravel GitScrum یا GitScrum ابزاری با بهره وری منبع باز است که برای کمک به تیم های توسعه در اجرای متد Scrum به روشی مشابه مشابه طراحی شده است.

نحوه نصب PostgreSQL 11.1 در Arch Linux

نحوه نصب PostgreSQL 11.1 در Arch Linux

پیش نیاز سرور Vultr که تا به امروز Arch Linux را اجرا می کند (به این مقاله مراجعه کنید) دسترسی به سودو. دستورات لازم برای اجرا به عنوان root توسط پیشوند # و یک مورد اجرا می شوند

مجموعه ای از ماکت را با در دسترس بودن بالا در MongoDB 3.4 با استفاده از Keyfile برای کنترل دسترسی در اوبونتو 16.04 مستقر کنید

مجموعه ای از ماکت را با در دسترس بودن بالا در MongoDB 3.4 با استفاده از Keyfile برای کنترل دسترسی در اوبونتو 16.04 مستقر کنید

از زمان تصور آن در سال 2009 ، MongoDB رهبری صنعت NoSQL را بر عهده داشته است. یکی از مفاهیم اصلی MongoDB مجموعه Replica است ، بنابراین قبل از کار با i

نحوه نصب Apache Cassandra 3.11.x در Ubuntu 16.04 LTS

نحوه نصب Apache Cassandra 3.11.x در Ubuntu 16.04 LTS

با استفاده از یک سیستم متفاوت؟ Apache Cassandra یک سیستم مدیریت پایگاه داده NoSQL آزاد و منبع باز است که به منظور ارائه مقیاس پذیری ، hig طراحی شده است

InfluxDB را روی دبیان جسی با Telegraf نصب کنید

InfluxDB را روی دبیان جسی با Telegraf نصب کنید

مقدمه InfluxDB یک پایگاه داده مبتنی بر سری زمان است که در Go نوشته شده است. InfluxDB کاربردهای بسیاری دارد که یکی از آنها ذخیره اطلاعات نظارت بر روی سرورها است. من

نحوه نصب phpRedisAdmin در CentOS 7

نحوه نصب phpRedisAdmin در CentOS 7

phpRedisAdmin یک برنامه وب است که بانکهای اطلاعاتی Redis را با یک رابط کاربری گرافیکی بصری مدیریت می کند. این آموزش نحوه نصب را توضیح می دهد

پشتیبان گیری چند پایگاه داده MySQL یا MariaDB به صورت خودکار

پشتیبان گیری چند پایگاه داده MySQL یا MariaDB به صورت خودکار

مقدمه در این نوشتن ، چگونگی تهیه نسخه پشتیبان از چندین پایگاه داده MySQL یا MariaDB که در همان دستگاه قرار دارند با استفاده از یک اسکریپت bash سفارشی ، پشتیبان گیری کنید.

نحوه نصب Apache Cassandra 3.11.x در CentOS 7

نحوه نصب Apache Cassandra 3.11.x در CentOS 7

با استفاده از یک سیستم متفاوت؟ Apache Cassandra یک سیستم مدیریت پایگاه داده NoSQL آزاد و منبع باز است که به منظور ارائه مقیاس پذیری ، hig طراحی شده است

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد