چگونه ارتباط امن و ریموتی را برای MYSQL در سرور مجازی اوبونتو ۱۶٫۰۴ پیکربندی کنیم؟

اشتراک گذاری پست

در این مقاله به شما نشان خواهیم داد که چگونه می توانید ارتباط امن و ریموتی را برای MYSQL خود در سرور مجازی ابونتو ۱۶٫۰۴ ایجاد کنید. اگر از ارتباط رمزگذاری نشده برای سرور MariaDB/MySQL ریموت خود استفاده می کنید ممکن است هر فردی بتواند به شبکه تان دسترسی داشته باشد و داده هایی که بین کلاینت و سرور ارسال و دریافت می شود را تجزیه و تحلیل کند. در ادامه همراهامید احمدیانی باشید تا نحوه امن کردن این ارتباط را با هم مرور کنیم.


ابتدا از طریق SSH به سرور مجازی خود لاگین کنید:

ssh my_sudo_user@my_server

در این مقاله فرض می کنیم که شما MySQL 5.7 را با پیکربندی های پیش فرض نصب کرده اید.

ارتباط SSL را فعال کنید:

یک گواهینامه محلی جدید ایجاد کنید:
ما از این گواهینامه به عنوان گواهینامه روت self-signed استفاده خواهیم کرد که برای امضای گواهینامه سرور و کلاینت مورد استفاده قرار می گیرد. برای ایجاد فایل اتوریتی گواهینامه محلی جدید، دستور زیر را اجرا کنید:

sudo openssl genrsa -out /etc/mysql/ca-key.pem 2048
sudo chmod 600 /etc/mysql/ca-key.pem
sudo openssl req -new -key /etc/mysql/ca-key.pem -out /etc/mysql/ca-csr.pem -subj /CN=mysql-CA/
sudo openssl x509 -req -in /etc/mysql/ca-csr.pem -out /etc/mysql/cacert.pem -signkey /etc/mysql/ca-key.pem -days 3650
sudo echo 01 > /etc/mysql/cacert.srl

تولید گواهینامه و Key سرور:
برای تولید گواهینامه و Key باید دستور زیر را اجرا کنید:

sudo openssl genrsa -out /etc/mysql/server-key.pem 2048
sudo chmod 600 /etc/mysql/server-key.pem
sudo openssl req -new -key /etc/mysql/server-key.pem -out /etc/mysql/server-csr.pem -subj /CN=mysql/
sudo openssl x509 -req -in /etc/mysql/server-csr.pem -out /etc/mysql/server-cert.pem -CA /etc/mysql/cacert.pem -CAkey /etc/mysql/ca-key.pem -days 365

تولید گواهینامه و Key کلاینت:

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

sudo openssl genrsa -out /etc/mysql/client-key.pem 2048
sudo chmod 600 /etc/mysql/client-key.pem
sudo openssl req -new -key /etc/mysql/client-key.pem -out /etc/mysql/client-csr.pem -subj /CN=mysql/
sudo openssl x509 -req -in /etc/mysql/client-csr.pem -out /etc/mysql/client-cert.pem -CA /etc/mysql/cacert.pem -CAkey /etc/mysql/ca-key.pem -days 365

اگر می خواهید گواهینامه SSl امضا شده با CA را داشته باشید میتوانید آن را از یک منبع امن خریداری کنید.

ارتباط SSL را برای MySQL Server فعال کنید:

فایل پیکربندی MYSQL را باز کنید و آن را نرم افزار ویرایشگر متن به شیوه زیر ویرایش نمایید:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

خطوط زیر را از حالت Comment در بیاورید:

ssl-ca=/etc/mysql/cacert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem

فایل را ذخیره کنید و سرویس MYSQL را ریستارت کنید:

sudo systemctl restart mysql

برای تایید اینکه SSL فعال شده است، به سرور MYSQL خود لاگین کنید:

mysql -uroot -p

و دستور زیر را اجرا نمایید:

mysql> show variables LIKE ‘%ssl%’;

خروجی باید شبیه خروجی زیر باشد:

+—————+—————————-+
| Variable_name | Value |
+—————+—————————-+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/mysql/cacert.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/mysql/server-key.pem |
+—————+—————————-+

۹ rows in set (0.15 sec)

ارتباط ریموت را از طریق SSL فعال کنید:

به طور پیش فرض، MYSQL تنها به ارتباطات لوکال هاست گوش می کند. برای فعال کردن ارتباط ریموت باید MYSQL را بر روی سرور به گونه ای پیکربندی کنید که بتواند به تمامی رابط ها گوش کند. برای اینکار فایل پیکربندی MYSQL را باز کنید:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

و مقدار زیر را :

bind-address = 127.0.0.1

به این مقدار تغییر دهید:

bind-address = 0.0.0.0

برای اینکه تغییرات اعمال شده اثرگذار باشد، MySQL server را به کمک دستور زیر ریستارت کنید:

sudo systemctl restart mysql

تایید کنید که سرور شما در تمامی رابط ها listen می کند:

sudo netstat -anp | grep 3306

خروجی دستور بالا باید شبیه خروجی زیر باشد:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 938/mysqld

برای اینکه بتوانید کلاینت MYSQL خود را برای ارتباط با سرور فعال کنید، باید به کاربر پایگاه داده اجازه دهید به پایگاه داده موجود بر روی سرور ریموت دسترسی داشته باشد. به عنوان مثال اگر می خواهید به کاربر dbuser اجازه دهید به پایگاه داده database_name دسترسی داشته باشد و لاگین SSL را برای او فعال نمایید می توانید از دستور زیر استفاده کنید:

GRANT ALL ON database_name.* TO dbuser@192.168.1.10 IDENTIFIED BY ‘dbuserpassword’ REQUIRE SSL;

که در آن ۱۹۲٫۱۶۸٫۱٫۰ ، آی پی آدرس کلاینت MYSQL است. حالا باید کلاینت خود را به گونه ای پیکربندی کنید که بتواند از گواهینامه تولید شده استفاده کند. فایل زیر را از سرور MYSQL به دستگاه کلاینت خود کپی کنید:

/etc/mysql/cacert.pem
/etc/mysql/client-cert.pem
/etc/mysql/client-key.pem

فایل پیکربندی کلاینت را باز کنید و خطوط زیر را بدان بیفزایید:

[client] ssl-ca=/etc/mysql/cacert.pem
ssl-cert=/etc/mysql/client-cert.pem
ssl-key=/etc/mysql/client-key.pem

حالا می توانید از دستگاه کلاینت ارتباط با سرور را تست کنید:

mysql -udbuser -pdbuserpassword -h 192.168.1.5

که در آن ۱۹۲٫۱۶۸٫۱٫۵ ای آپی ادرس سرور پایگاه داده است. خوب کار شما تمام شد.

چگونه ارتباط امن و ریموتی را برای MYSQL در سرور مجازی اوبونتو ۱۶٫۰۴ پیکربندی کنیم؟

امتیاز دهید

در صورت نیاز به سرور و خدمات مدیریت آن با ما در تماس باشید

۰۲۱۲۸۴۲۱۱۹۳
۰۹۱۲۹۷۲۶۳۴۳
۰۹۳۶۲۱۹۶۳۴۳
@omidahmadyani
@omid_ahmadyani

مقالات مرتبط را مطالعه کنید😍

حواله یوان
حواله یوان
شاید وقتی صحبت از نقل‌وانتقالات ارزی مانند ارسال حواله یوان به چین باشد، خیلی‌ها این کار را دشوار و طاقت‌فرسا و پرریسک بدانند. در واقع
حواله روپیه
حواله روپیه به هند ارسال و دریافت حواله روپیه به هند با کمترین نرخ ارسال و دریافت حواله روپیه در کمترین زمان ممکن امکان ارسال
حواله ایران به رومانی
حواله ایران به رومانی شرکت فناوران امید استعلام نرخ ساعت 12 ظهر برای آگاهی از نرخ با پشتیبانی ما در ارتباط باشید:پشتیبان تلگرام @fanavaraneomid_supportپشتیبانی واتساپ:
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x
اسکرول به بالا