2025 Yılında MySQL Uzaktan Erişimini Etkinleştirmeye Yönelik Güvenli Bir Kılavuz
در این مقاله، روش‌های امن برای فعال‌سازی دسترسی راه دور به سرور MySQL و MariaDB ارائه شده است.

2025 Yılında MySQL Uzaktan Erişimini Etkinleştirmeye Yönelik Güvenli Bir Kılavuz

Bu makale, 2025 yılında MySQL ve MariaDB sunucularına uzaktan erişimi sağlamanın güvenli ve pratik yollarını öğretecektir. Güvenlik ipuçlarını takip ederek ve VPN ile SSH kullanarak veritabanlarınıza kolayca ve güvenle erişebilirsiniz.
0 Hisse senetleri
0
0
0
0

 

چطور می‌توان دسترسی از راه دور به MySQL/MariaDB را به‌طور امن فعال کرد؟

در این راهنمای به‌روز (۲۰۲۵) روش‌های عملی و امن برای فعال‌سازی دسترسی از راه دور به سرور MySQL و MariaDB را بررسی می‌کنیم. هدف ارائهٔ یک چک‌لیست عملی برای مدیران سایت، DevOps، تیم‌های دیتابیس و توسعه‌دهندگان است تا اجازهٔ دسترسی فقط به کاربران و اپلیکیشن‌های مجاز داده شود، بدون این‌که امنیت به‌خطر بیفتد.

 

مراحل کلی و اصول امنیتی

خلاصهٔ قدم‌ها:

  • طراحی معماری: Asla دیتابیس را مستقیماً روی اینترنت عمومی قرار ندهید مگر ضرورت باشد.
  • استفاده از شبکهٔ خصوصی (VPC/VLAN)، VPN یا SSH tunneling.
  • محدود کردن دسترسی بر اساس آدرس‌های IP و ایجاد کاربرهای با حداقل امتیاز.
  • رمزنگاری TLS/SSL برای ترافیک دیتابیس و استفاده از احراز هویت قوی (*caching_sha2_password* / *X.509*).
  • فعال‌سازی لاگینگ و ریت لیمیت، استفاده از فایروال و سیستم‌های تشخیص نفوذ (IDS/IPS).
  • بررسی عملکرد و تأخیر (latency) و انتخاب لوکیشن دیتاسنتر مناسب بر اساس کاربرد.

 

چرا نباید MySQL را مستقیم روی اینترنت باز کرد؟

دیتابیس‌ها هدف جذابی برای نفوذگران هستند؛ شامل داده‌های حساس و اعتبارنامه‌ها. باز کردن پورت 3306 روی اینترنت بدون محدودسازی و رمزنگاری، ریسک‌های نشت داده، brute-force و حملات DDoS را افزایش می‌دهد.

 

گام‌به‌گام: پیکربندی MySQL برای دسترسی راه دور (دستورات عملی)

 

۱) ویرایش فایل تنظیمات

فایل‌های پیکربندی معمول:

  • MySQL (Debian/Ubuntu): /etc/mysql/mysql.conf.d/mysqld.cnf
  • MariaDB: /etc/mysql/mariadb.conf.d/50-server.cnf

به‌صورت پیش‌فرض ممکن است خط bağlama adresi İle 127.0.0.1 تنظیم شده باشد. برای پذیرش اتصال از یک IP خاص یا همهٔ آدرس‌ها:

توصیه‌شده: اجازه به IP مشخص:

bind-address = 192.0.2.10

غیرتوصیه‌شده مگر در شبکهٔ خصوصی:

bind-address = 0.0.0.0

پس از تغییر:

systemctl restart mysql

 

۲) ساخت کاربر امن با محدودیت‌ها

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

mysql -u root -p
CREATE USER 'appuser'@'203.0.113.45' IDENTIFIED WITH caching_sha2_password BY 'StrongP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'appuser'@'203.0.113.45';
FLUSH PRIVILEGES;

Önemli noktalar:

  • استفاده از آدرس IP مشخص (‘203.0.113.45’) بجای ‘%’ بسیار امن‌تر است.
  • تعیین حداقل مجوزها (least privilege).
  • برای اتصال‌های از داخل شبکهٔ خصوصی از آدرس‌های خصوصی استفاده کنید (مثلاً 10.x.x.x).

 

۳) فعال‌سازی SSL/TLS برای MySQL

نمونهٔ سریع ساخت CA و گواهی‌ها با OpenSSL:

openssl genrsa 4096 -out ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem -subj "/CN=MyDB-CA"

openssl genrsa 4096 -out server-key.pem
openssl req -new -key server-key.pem -out server-req.csr -subj "/CN=db.example.com"
openssl x509 -req -in server-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 3650

openssl genrsa 4096 -out client-key.pem
openssl req -new -key client-key.pem -out client-req.csr -subj "/CN=dbclient"
openssl x509 -req -in client-req.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 3650

قرار دادن گواهی‌ها در my.cnf:

[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

پس از restart، امکان الزام کاربران به استفاده از گواهی‌ها:

ALTER USER 'appuser'@'203.0.113.45' REQUIRE X509;
-- یا فقط TLS بدون client cert:
ALTER USER 'appuser'@'203.0.113.45' REQUIRE SSL;

اتصال امن از کلاینت:

mysql -u appuser -p -h db.example.com --ssl-mode=REQUIRED --ssl-ca=ca.pem

 

۴) استفاده از SSH Tunnel

مناسب برای ادمین‌ها و دسترسی محدود زمانی که TLS در دسترس نیست. روی ماشین کلاینت:

ssh -fN -L 3306:127.0.0.1:3306 [email protected]

با این روش شما به پورت 3306 محلی متصل می‌شوید که به سرور دوردست تونل شده است.

 

۵) تنظیم فایروال

مثال با ufw (اجازه فقط به IP مشخص):

ufw allow from 203.0.113.45 to any port 3306 proto tcp

با firewalld:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

بررسی پورت:

ss -tlnp | grep 3306
telnet db.example.com 3306

 

محافظت بیشتر — راهکارهای پیشرفته و توصیه‌شده (۲۰۲۵)

 

استفاده از شبکهٔ خصوصی، VPC و VPN

به‌جای باز کردن پورت دیتابیس روی اینترنت، از Private Network بین اپلیکیشن و دیتابیس استفاده کنید. اگر از سرویس ما استفاده می‌کنید، می‌توانید از شبکهٔ خصوصی و BGP/VRF برای اتصال ایمن بهره ببرید.

برای کاربران توزیع‌شده، VPN یا IPsec پیشنهاد می‌شود تا ترافیک دیتابیس فقط در کانال‌های رمزنگاری‌شده حرکت کند.

 

Bastion Host و Zero Trust

قرار دادن Bastion Host با احراز هویت دو مرحله‌ای (MFA) و لاگ کامل جلسات رویکرد امن‌تری نسبت به باز کردن مستقیم پورت‌هاست. الگوی Zero Trust بدین معنی است که هر اتصال باید احراز هویت شده و تنها به منابع مشخص اجازه داده شود.

 

احراز هویت و الگوریتم‌ها

  • MySQL 8: Kullanımı caching_sha2_password بجای mysql_native_password امن‌تر است.
  • در موارد حساس، استفاده از X.509 client certificates Tavsiye edilen.
  • مدیریت پسوردها با Secret Manager یا Vault (مثل HashiCorp Vault, AWS Secrets Manager) بهتر از قرار دادن پسورد در فایل‌ها یا کد است.

 

محافظت در برابر حملات و محدودیت‌ها

  • max_connect_errors را پایین نگه دارید و skip-name-resolve را فعال کنید تا از DNS-based delays جلوگیری شود.
  • استفاده از fail2ban با filter مخصوص mysql-auth برای بلاک کردن IPهای مخرب.
  • Rate limit کلی اتصال‌ها و تنظیم connection_timeout مناسب.

 

مانیتورینگ و لاگینگ

فعال‌سازی audit log، general log و slow query log و استفاده از ابزارهایی مثل Prometheus + Grafana یا Percona Monitoring برای شناسایی الگوهای مخرب و مسائل عملکردی ضروری است.

 

نکات عملی برای انتخاب لوکیشن دیتاسنتر و پیکربندی بر اساس کاربرد

هدایت بر اساس نوع کاربرد:

  • Forex/Kripto Para Alım Satım: کمترین RTT به صرافی/سرور معامله‌گر اهمیت دارد؛ انتخاب لوکیشن نزدیک به صرافی توصیه می‌شود. سرویس ما با ۸۵+ لوکیشن این امکان را فراهم می‌کند.
  • گیمینگ: دیتابیس‌های بازی نیاز به پینگ پایین دارند؛ مسیر BGP بهینه و شبکهٔ کم‌تاخیر اهمیت دارد. سرورهای VPS مخصوص گیم و سرور ضد DDoS مفید هستند.
  • Yapay Zeka/Render: برای بارهای I/O و محاسباتی بالا، ترکیب سرورهای GPU و دیتابیس در همان منطقهٔ شبکهٔ خصوصی باعث کاهش تأخیر می‌شود.
  • وب‌سایت‌ها و اپلیکیشن‌ها: استفاده از CDN و کش لایهٔ اپلیکیشن (Redis/Memcached) همراه با دیتابیس در Private Network بهترین تعادل سرعت و هزینه را فراهم می‌آورد.

 

مثال‌های پیکربندی my.cnf پیشنهادی برای کاربردهای مختلف

پیکربندی برای سرور با بار متوسط (وب/اپلیکیشن):

[mysqld]
bind-address = 10.0.1.5
max_connections = 200
innodb_buffer_pool_size = 2G
skip-name-resolve = 1
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem

برای سرورهای با بار بالا و مخصوص AI/rending:

innodb_buffer_pool_size = 16G
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000

همیشه تنظیمات را بر اساس RAM، I/O و نیاز اپلیکیشن تنظیم کنید.

 

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

  • استفاده از شبکهٔ خصوصی یا VPN برای ترافیک دیتابیس
  • محدود کردن آدرس‌های IP مجاز در فایروال
  • ایجاد کاربران با حداقل امتیاز و استفاده از hashing الگوریتم امن
  • فعال‌سازی TLS/SSL و در صورت نیاز client certificates
  • عدم استفاده از root برای اتصال از راه دور
  • فعال‌سازی logging؛ ارسال لاگ‌ها به سیستم External
  • تنظیم محدودیت‌های اتصال و استفاده از fail2ban
  • مانیتورینگ و هشدار در صورت افزایش غیرمعمول ترافیک یا خطاها
  • پشتیبان‌گیری (backup) منظم و تست بازیابی

 

نتیجه‌گیری و توصیه نهایی

فعال‌سازی دسترسی راه دور به MySQL در ۲۰۲۵ باید هم‌زمان سریع و امن باشد. بهترین رویکرد: ابتدا شبکهٔ خصوصی یا VPN را در نظر بگیرید، سپس TLS و محدودسازی IP را اضافه کنید و دسترسی‌ها را به حداقل نیاز محدود کنید.

استفاده از Bastion Host، MFA و لاگینگ پیشرفته امنیت شما را افزایش می‌دهد. اگر به سروری با پایداری بالا، شبکهٔ کم‌تاخیر و امکانات امنیتی نیاز دارید، سرویس‌های ما شامل ۸۵+ لوکیشن جهانی، سرور GPU، سرور محاسباتی، سرور ضد DDoS، VPS مخصوص ترید و گیم، CDN و شبکهٔ BGP گزینه‌های آماده و قابل تنظیم ارائه می‌دهند.

 

Sıkça Sorulan Sorular

Ayrıca Şunları da Beğenebilirsiniz