امنیت وردپرس از سطح سرور آغاز میشود. حتی اگر تمام تنظیمات وردپرس را بهینه کنید، اما سرور ناامن باشد، سایت شما در معرض خطر جدی قرار دارد. در این بخش که خلاصه شده یکی از مباحث دوره هک و امنیت وردپرس در سورسا است، به راهکارهای تخصصی ایمنسازی هاست و سرور میپردازیم.
هاست اشتراکی به دلیل ماهیت اشتراکی بودن منابع (CPU, RAM, Disk I/O)، خطرات امنیتی زیادی دارد:
مشکلات هاست اشتراکی:
Noisy Neighbor Effect: اگر یک سایت روی سرور مورد حمله قرار گیرد، ممکن است منابع سرور به حدی مصرف شود که سایت شما نیز دچار اختلال شود.
عدم کنترل کامل بر فایروال و ماژولهای امنیتی: در هاست اشتراکی، شما دسترسی به تنظیمات سطح سرور مانند ModSecurity یا PHP-FPM ندارید.
محدودیت در نصب ابزارهای امنیتی: برخی هاستها اجازه نصب WAF (Web Application Firewall) را نمیدهند.
راهکار:
مهاجرت به VPS یا سرور اختصاصی (حتی VPS با حداقل منابع از هاست اشتراکی امنتر است).
استفاده از هاستهای مدیریت شده وردپرس با امنیت پیشرفته مانند:
Kinsta (با فایروال سطح هسته)
WP Engine (با محافظت در برابر DDoS)
تنظیمات نادرست وبسرور میتواند باعث آسیبپذیریهای جدی مانند Directory Traversal یا اجرای کدهای مخرب شود.
مثال برای Nginx:
location ~* /(uploads|wp-content|wp-includes)/.*\.php$ { deny all; }
مثال برای Apache (در .htaccess):
<FilesMatch "\.(php)$"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order deny,allow Deny from all </IfModule> </FilesMatch>
در Nginx:
location ~ ^/(wp-admin|wp-login\.php) { allow 192.168.1.100; # آیپی مجاز deny all; }
در Apache:
<Files wp-login.php> Order Deny,Allow Deny from all Allow from 192.168.1.100 </Files>
افزایش سرعت و امنیت انتقال داده
غیرفعال کردن پروتکلهای ناامن مانند SSLv3 و TLS 1.0
مثال برای Nginx:
ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
دسترسی به سرور از طریق SSH یکی از راههای نفوذ هکرهاست.
تولید کلید RSA:
ssh-keygen -t rsa -b 4096
غیرفعال کردن Password Authentication:
/etc/ssh/sshd_config: PasswordAuthentication no PermitRootLogin no
تغییر به پورت بالا (مثلاً ۵۶۷۸):
Port 5678
باز کردن پورت جدید در فایروال:
ufw allow 5678/tcp
نصب Fail2Ban:
apt install fail2ban
تنظیمات برای محافظت از SSH و wp-login:
/etc/fail2ban/jail.local: [sshd] enabled = true port = 5678 maxretry = 3