دایرکت ادمین یکی از پلتفرمهای محبوب و البته مقرونبهصرفه برای مدیریت هاست و مدیران سایتها میباشد. در این مقاله قصد داریم تا با چند گام ساده امنیت آن را افزایش داده و بهسرعت عملکرد آن بیافزاییم.
در این مقاله فرض شده است که شما کنترل پنل 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 سوار کردهاید را بالا ببرید.