ویرگول
ورودثبت نام
آریا جلیلیان
آریا جلیلیانمسلط به HTML , CSS , JS , PHP , SQL , JAVA , KOTLIN , C , C++ , PYTHON , GO , R
آریا جلیلیان
آریا جلیلیان
خواندن ۲ دقیقه·۶ ماه پیش

آموزش امنیت وردپرس - بخش ابتدایی (امنیت سرور)

ایمن‌سازی سرور و هاستینگ

امنیت وردپرس از سطح سرور آغاز می‌شود. حتی اگر تمام تنظیمات وردپرس را بهینه کنید، اما سرور ناامن باشد، سایت شما در معرض خطر جدی قرار دارد. در این بخش که خلاصه شده یکی از مباحث دوره هک و امنیت وردپرس در سورسا است، به راهکارهای تخصصی ایمن‌سازی هاست و سرور می‌پردازیم.

استفاده از سرورهای اختصاصی یا VPS به جای هاست اشتراکی

هاست اشتراکی به دلیل ماهیت اشتراکی بودن منابع (CPU, RAM, Disk I/O)، خطرات امنیتی زیادی دارد:
مشکلات هاست اشتراکی:

Noisy Neighbor Effect: اگر یک سایت روی سرور مورد حمله قرار گیرد، ممکن است منابع سرور به حدی مصرف شود که سایت شما نیز دچار اختلال شود.
عدم کنترل کامل بر فایروال و ماژول‌های امنیتی: در هاست اشتراکی، شما دسترسی به تنظیمات سطح سرور مانند ModSecurity یا PHP-FPM ندارید.
محدودیت در نصب ابزارهای امنیتی: برخی هاست‌ها اجازه نصب WAF (Web Application Firewall) را نمی‌دهند.

راهکار:

مهاجرت به VPS یا سرور اختصاصی (حتی VPS با حداقل منابع از هاست اشتراکی امن‌تر است).
استفاده از هاست‌های مدیریت شده وردپرس با امنیت پیشرفته مانند:
Kinsta (با فایروال سطح هسته)
WP Engine (با محافظت در برابر DDoS)

پیکربندی امن سرور (Nginx/Apache)

تنظیمات نادرست وب‌سرور می‌تواند باعث آسیب‌پذیری‌های جدی مانند Directory Traversal یا اجرای کدهای مخرب شود.

غیرفعال کردن اجرای PHP در پوشه‌های غیرضروری

مثال برای Nginx:

location ~* /(uploads|wp-content|wp-includes)/.*\.php$ { deny all; }

مثال برای Apache (در .htaccess):

<FilesMatch &quot\.(php)$&quot> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order deny,allow Deny from all </IfModule> </FilesMatch>

محدود کردن دسترسی به wp-admin و wp-login.php با IP Whitelisting

در 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>

فعال‌سازی TLS 1.3 و HTTP/2

افزایش سرعت و امنیت انتقال داده
غیرفعال کردن پروتکل‌های ناامن مانند 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 و SFTP

دسترسی به سرور از طریق SSH یکی از راه‌های نفوذ هکرهاست.

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

تولید کلید RSA:

ssh-keygen -t rsa -b 4096

غیرفعال کردن Password Authentication:

/etc/ssh/sshd_config: PasswordAuthentication no PermitRootLogin no

تغییر پورت پیش‌فرض SSH (پورت 22)

تغییر به پورت بالا (مثلاً ۵۶۷۸):

Port 5678

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

ufw allow 5678/tcp

استفاده از Fail2Ban برای جلوگیری از Bruteforce

نصب Fail2Ban:

apt install fail2ban

تنظیمات برای محافظت از SSH و wp-login:

/etc/fail2ban/jail.local: [sshd] enabled = true port = 5678 maxretry = 3
امنیت وردپرسافزایش امنیت وردپرسدوره آموزشی آنلاینآموزش هک و امنیت
۰
۰
آریا جلیلیان
آریا جلیلیان
مسلط به HTML , CSS , JS , PHP , SQL , JAVA , KOTLIN , C , C++ , PYTHON , GO , R
شاید از این پست‌ها خوشتان بیاید