DirectAdmin(دایرکت ادمین) را ایمن‌تر و سریع‌تر کنید

دایرکت ادمین یکی از پلتفرم‌های محبوب و البته مقرون‌به‌صرفه برای مدیریت هاست و مدیران سایت‌ها می‌باشد. در این مقاله قصد داریم تا با چند گام ساده امنیت آن را افزایش داده و به‌سرعت عملکرد آن بیافزاییم.

در این مقاله فرض شده است که شما کنترل پنل DirectAdmin را بر روی سرورتان نصب‌کرده‌اید(در این آموزش، از سیستم‌عامل محبوب CentOS 7 64bit استفاده کرده‌ایم. دقت داشته باشید که داشتن حداقل دانش‌پایه کار با دستورات لینوکس، پیش‌نیاز این راهنما می‌باشد. بسیار خب شروع می‌کنیم:

قبل از شروع بدانید که دستورات موجود در این مقاله توسط نویسنده تست نشده‌اند و قبل از اعمال بر روی سرور اصلی‌تان از صحت عملکرد آن‌ها اطمینان حاصل نمایید.

از پراکسی معکوس Nginx استفاده کنید

با استفاده از پراکسی معکوس می‌توانید کارایی دایرکت ادمین را در کنترل درخواست‌های مرتبط با ریسورس ها و محتواهای ثابت را بالا ببرید. اگر که وب سرورتان در این حالت تنظیم‌نشده است از دستورات زیر در خط فرمان لینوکس استفاده کنید:

cd /usr/local/directadmin/custombuild

./build update

./build set webserver nginx_apache

./build nginx_apache

همچنین اگر از CloudFlare استفاده می‌کنید می‌توانید آی پی اصلی‌اش را از CloudFlare بازگردانید

nano /etc/nginx/nginx-includes.conf

 

دستور فوق را بزنید و خطوطی که در ادامه آمده است را به آن اضافه کنید:

set_real_ip_from 103.21.244.0/22;
 set_real_ip_from 103.22.200.0/22;
 set_real_ip_from 103.31.4.0/22;
 set_real_ip_from 104.16.0.0/12;
 set_real_ip_from 108.162.192.0/18;
 set_real_ip_from 131.0.72.0/22;
 set_real_ip_from 141.101.64.0/18;
 set_real_ip_from 162.158.0.0/15;
 set_real_ip_from 172.64.0.0/13;
 set_real_ip_from 173.245.48.0/20;
 set_real_ip_from 188.114.96.0/20;
 set_real_ip_from 190.93.240.0/20;
 set_real_ip_from 197.234.240.0/22;
 set_real_ip_from 198.41.128.0/17;
 set_real_ip_from 199.27.128.0/21;
 set_real_ip_from 2400:cb00::/32;
 set_real_ip_from 2606:4700::/32;
 set_real_ip_from 2803:f800::/32;
 set_real_ip_from 2405:b500::/32;
 set_real_ip_from 2405:8100::/32;
 set_real_ip_from 2c0f:f248::/32;
 set_real_ip_from 2a06:98c0::/29;
 
 # use any of the following two
 real_ip_header CF-Connecting-IP;
 #real_ip_header X-Forwarded-For;

HTTP/2 را روی دایرکت ادمین فعال کنید

نکته: در نسخه 1.52 و بالاتر درصورتی‌که از OpenSSL نسخه 1.0.2 یا بالاتر استفاده کنید، به‌طور خودکار HTTP/2 فعال خواهد بود.

HTTP/2 آخرین آپدیت موجود برای پرتکل HTTP می‌باشد که کفایت، امنیت و سرعت عملکرد آن را بهبود داده است. به‌سادگی هرچه‌تمام‌تر می‌توانید HTTP/2 را فعال کنید:

mkdir /usr/local/directadmin/custombuild/custom/
 mkdir /usr/local/directadmin/custombuild/custom/nginx_reverse
 mkdir /usr/local/directadmin/custombuild/custom/nginx_reverse/conf
 cp -p /usr/local/directadmin/custombuild/configure/nginx_reverse/conf/nginx-vhosts.conf /usr/local/directadmin/custombuild/custom/nginx_reverse/conf/

در مرحله بعدی نیاز است تا هاست های مجازی nginx به‌روزرسانی شوند:

nano /usr/local/directadmin/custombuild/custom/nginx_reverse/conf/nginx-vhosts.conf

مانند زیر:

در ادامه:

cd /usr/local/directadmin/custombuild
 ./build rewrite_confs

درنهایت سرویس‌ها را ریستارت کنید.

 

از PHP7 استفاده کنید

بایستی بدانید که نسخه 7 نسبت به نسخه 5.6 دو برابر سریع‌تر بوده و 50درصد در مصرف حافظه صرفه‌جو تر است. فرامین زیر را برای فعال کردن آن به کار ببرید.

cd /usr/local/directadmin/custombuild
 ./build set php1_release 7.1

اگر از CloudLinux استفاده می‌کنید:

./build set php1_mode lsphp

اگر CloudLinux را ندارید:

./build set php1_mode php-fpm

حالا php را کامپایل کنید:

./build update./build php d

سپس فایل /usr/local/php71/lib/php.ini را جهت دو برابر کردن تمامی مقادیر مربوط به حافظه، زمان اجرا و… را دو برابر کنید.

 

OpCache را فعال کنید

فعال شدن آپ کش نیز می‌تواند به بهتر شدن کارایی PHP منجر شود، دستورات زیر را دنبال کنید:

cd /usr/local/directadmin/custombuild
 ./build set opcache yes
 ./build opcache

Mysql کند است! از MariaDB استفاده کنید

MariaDB بسیار بهینه ساخته‌شده است. اگر سرور شما برای استفاده از MariaDB تنظیم‌نشده است می‌توانید از دستورات زیر جهت انجام این کار استفاده کنید:

cd /usr/local/directadmin/custombuild
 ./build set mariadb 10.2
 ./build set mysql_inst mariadb
 ./build set mysql_backup yes
 ./build update
 ./build mariadb

سپس فایل زیر را ویرایش کنید:

nano /etc/my.cnf.d/server.cnf

مقادیر زیر را تغییر دهید:

max_allowed_packet = 256M

innodb_log_file_size = 256M

bind-address = 127.0.0.1

max_allowed_packet=256M

SSL را برای کلیه سرویس‌هایتان فعال کنید

اگر فرض کنیم hostname مربوط به سرورتان server.domain.com باشد با استفاده از Let’s Encrypt جهت فعال کردن SSL روی هاست اصلی و کلیه سرویس‌ها استفاده کنید. برای انجام این کار نیاز است فایل directadmin.conf ویرایش شود:

nano /usr/local/directadmin/conf/directadmin.conf

enable_ssl_sni=1

ssl_redirect_host=server.domain.com

force_hostname=server.domain.com

carootcert=/usr/local/directadmin/conf/carootcert.pem

letsencrypt=1

سپس دستورات زیر را اجرا کنید:

service directadmin restart
 cd /usr/local/directadmin/custombuild
 ./build update 
 ./build letsencrypt
 cd /usr/local/directadmin/scripts
 ./letsencrypt.sh request server.domain.com 4096

سپس مقدار SSL=1 را داخل directadmin.conf تنظیم کرده و سرویس directadmin را ریستارت کنید.

در مرحله بعد می‌توانید تنظیمات Roundcube را برای ارتباطات SSL تنظیم کنید.

nano /var/www/html/roundcube/plugins/password/config.inc.phpl



$config['password_directadmin_host'] = 'ssl://localhost';

به‌وسیله دستورات زیر می‌توانید ارتباط SSL بین همه سرویس‌هایتان را چک کنید:

openssl s_client -connect 127.0.0.1:465
 openssl s_client -connect 127.0.0.1:993
 openssl s_client -connect 127.0.0.1:2222
 openssl s_client -connect 127.0.0.1:443
 openssl s_client -connect 127.0.0.1:21 -starttls ftp

 

گواهی‌نامه‌های SSL نصب‌شده را می‌توانید با استفاده از دستور زیر ببینید:

 

همچنین می‌توانید دامنه‌های جدیدی که به سیستم اضافه می‌شوند را طوری تنظیم کنید که از Private_html به‌جای Public_html استفاده کنند.

/usr/local/directadmin/scripts/custom/domain_create_post.sh

 

سپس کد زیر را به فایل اضافه کرده و دسترسی آن را 755 کنید.

#!/bin/sh
 D=/home/$username/domains/$domain
 PH=$D/private_html
 
 if [ -d $PH ]; then
    rm -rf $PH
    ln -s public_html $PH
    chown -h $username:$username $PH
 fi
 exit 0;

برای دامنه‌های alias از hostname استفاده کنید

cd /usr/local/directadmin/custombuild
 ./build update
 ./build set use_hostname_for_alias yes
 ./build set redirect_host_https yes
 ./build rewrite_confs

 

DKIM را فعال کنید

فعال کردن این ویژگی باعث می‌شود تا ایمیل‌هایی که از سایت شما ارسال می‌شوند به پوشه اسپم منتقل نشوند. این فایل را می‌توانید با استفاده از دستور زیر دانلود کنید.

cd /etc
 wget -O exim.dkim.conf http://files.directadmin.com/services/exim.dkim.conf

سپس فایل /etc/exim.conf را باز کرده و کدهای زیر را بیابید:

remote_smtp:
  driver = smtp
سپس مقادیر آنان را به مشابه زیر تغییر دهید:
 


remote_smtp: 
   driver = smtp
   .include_if_exists /etc/exim.dkim.conf

فایل exim.conf را با مشخصات سفارشی‌سازی شده، مجدداً بسازید:

cd /usr/local/directadmin/custombuild
 ./build update 
 ./build set eximconf yes 
 ./build set eximconf_release 4.5 
 ./build set blockcracking yes 
 ./build set easy_spam_fighter yes 
 ./build set spamassassin yes 
 ./build set exim yes 
 ./build exim 
 ./build set dovecot_conf yes 
 ./build dovecot_conf 
 ./build spamassassin 
 ./build update 
 ./build exim_conf

سپس سرویس exim را راه‌اندازی مجدد کنید:

service exim restart

درنهایت هم فایل directadmin.conf نیز نیاز به ویرایش دارد:

nano /usr/local/directadmin/conf/directadmin.conf

مقادیر dkim=1 و hide_outlook=1 را تنظیم کنید و سپس دایرکت ادمین را ریستارت کنید.

همچنین الآن قادر هستیم تا DKIM را برای hostname تان فعال کنید:

cd /usr/local/directadmin/scripts
 ./dkim_create.sh server.domain.com

به دایرکت ادمین واردشده و سپس وارد قسمت DNS Administration شوید  سپس روی hostname سرور خود کلیک کنید تیک بخورد، همچنین DKIM و رکورد SPF تان را برای IPv6 به‌روزرسانی کنید.

حالا به سراغ فایل /etc/hosts بروید و نبایست در مقابل localhost آی پی ::1 را ببینید بلکه تنها 127.0.0.1  مقدار درست آن است.

 

با انجام این چند نکته، می‌توانید کارایی سایت خود را که بر روی کنترل پنل DirectAdmin سوار کرده‌اید را بالا ببرید.

Total
0
Shares
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پست قبلی

تلگرام هم‌اکنون ماهانه 200میلیون کاربر فعال دارد

پست بعدی
رفع خطا در وردپرس

آموزش غیرفعال کردن همه افزونه‌های وردپرس بدون wp-admin

پست های مرتبط