Una guía segura para habilitar el acceso remoto a MySQL en 2025
در این مقاله، روش‌های امن برای فعال‌سازی دسترسی راه دور به سرور MySQL و MariaDB ارائه شده است.

Una guía segura para habilitar el acceso remoto a MySQL en 2025

Este artículo le enseñará formas seguras y prácticas de habilitar el acceso remoto a los servidores MySQL y MariaDB en 2025. Siguiendo los consejos de seguridad y usando VPN y SSH, puede acceder a sus bases de datos fácilmente y con confianza.
0 acciones
0
0
0
0

 

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

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

 

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

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

  • طراحی معماری: Nunca دیتابیس را مستقیماً روی اینترنت عمومی قرار ندهید مگر ضرورت باشد.
  • استفاده از شبکهٔ خصوصی (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

به‌صورت پیش‌فرض ممکن است خط dirección de enlace A 127.0.0.1 تنظیم شده باشد. برای پذیرش اتصال از یک IP خاص یا همهٔ آدرس‌ها:

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

bind-address = 192.0.2.10

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

bind-address = 0.0.0.0

پس از تغییر:

systemctl restart mysql

 

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

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

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;

نکات مهم:

  • استفاده از آدرس IP مشخص (‘203.0.113.45’) بجای ‘%’ بسیار امن‌تر است.
  • Determinación حداقل مجوزها (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: Uso de caching_sha2_password بجای mysql_native_password امن‌تر است.
  • در موارد حساس، استفاده از X.509 client certificates Recomendado.
  • مدیریت پسوردها با 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 برای شناسایی الگوهای مخرب و مسائل عملکردی ضروری است.

 

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

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

  • Comercio (Forex/Criptomonedas): کمترین RTT به صرافی/سرور معامله‌گر اهمیت دارد؛ انتخاب لوکیشن نزدیک به صرافی توصیه می‌شود. سرویس ما با ۸۵+ لوکیشن این امکان را فراهم می‌کند.
  • گیمینگ: دیتابیس‌های بازی نیاز به پینگ پایین دارند؛ مسیر BGP بهینه و شبکهٔ کم‌تاخیر اهمیت دارد. سرورهای VPS مخصوص گیم و سرور ضد DDoS مفید هستند.
  • IA/Renderizado: برای بارهای 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) منظم و تست بازیابی

 

Conclusión y recomendación final

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

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

 

Preguntas frecuentes

También te puede gustar