راهنمای کامل و جامع برای امنیت DirectAdmin
راهنمای کامل و جامع برای امنیت DirectAdmin
اولین و مهمترین سوالی که برای همه ما در حوزه هاستینگ پیش می آید این است که چرا ایمن سازی دایرکت ادمین مهم است؟
هر روز، هکرها سوء استفاده هایی را در نرم افزار پیدا می کنند، برخی با شدت کم و برخی دیگر حیاتی و گسترده در سراسر اینترنت.
در برخی موارد، تا زمانی که یک آسیبپذیری مورد سوء استفاده قرار نگیرد، توسعهدهندگان نرمافزار از آن آگاه شده و وصلهها را مستقر میکنند.
دایرکت ادمین چند CVE دارد که باید از آنها آگاه باشید،
بنابراین برای مدیران سرور مهم است که از به روز رسانی ها و وصله های اخیر دایرکت ادمین مطلع باشند و نرم افزار را در برابر تهدیدات رایج سخت کنند.
صاحبان سایت نیز باید در مورد آخرین حملات به روز باشند، اما بسیاری از آنها اینطور نیستند.
نه تنها صاحبان وب سایت ها به ندرت آخرین CVE ها را پیگیری می کنند، بلکه گاهی اوقات پیکربندی هایی را که می تواند سایت را به سمت اکسپلویت ها باز کند نیز نمی دانند.
با برخی از بهترین شیوههای سازمانیافته، مدیران سرور و صاحبان سایت میتوانند راهنماییهایی در مورد چگونگی سختتر کردن امنیت روی سرور و محافظت در برابر حملات متداول داشته باشند.
تنها یک آسیبپذیری میتواند منجر به تخریب سایت شود.
بهترین روش ها برای امنیت دایرکت ادمین
دایرکت ادمین کنترل زیادی را به صاحبان وب سایت می دهد که هم به نفع صاحب سایت و هم برای مدیران سرور است.
با این پیکربندیها، مدیران میتوانند از حملات متداول محافظت کنند و روی سایر مسائل امنیتی که میتواند یکپارچگی سایتهای روی سرور را تهدید کند، تمرکز کنند.
به یاد داشته باشید که این پیکربندی ها خطر را 100% کاهش نمی دهند، اما به صاحبان سایت کمک می کنند تا از بسیاری از حملات رایج اجتناب کنند.
Mount پارتیشن tmp/ با noexec و nosuid Options
پارتیشن بندی فضای ذخیره سازی سرور یک استراتژی امنیتی رایج برای مدیران سرور است.
دایرکتوری tmp / حاوی فایل هایی است که فقط به طور موقت استفاده می شوند، اما می توان از آنها برای نصب بدافزار بر روی سرور استفاده کرد.
برخی از فایلها برای اجرای برنامهها حیاتی هستند، اما دایرکتوری tmp/ میتواند به عنوان یک بردار برای مهاجمان برای ذخیره و اجرای برنامههای مخرب استفاده شود.
یک استراتژی معمول مدیریت لینوکس برای ایمن کردن این دایرکتوری از حملات، پارتیشن بندی آن با گزینه های noexec و nosuid است.
گزینه noexec از اجرای برنامه از دایرکتوری tmp/ جلوگیری می کند و گزینه nosuid mount مانع از تنظیم فلگ setuid در مجوزهای فایل می شود.
اگر در مورد وضعیت فعلی پارتیشن ها و تنظیمات آنها مطمئن نیستید، دستور زیر را برای مشاهده پارتیشن های فعلی تایپ کنید:
mount #
توجه: مطمئن شوید که فایل etc/fstab/ را به درستی ویرایش کرده اید، زیرا خطاهای موجود در این فایل می تواند از بوت شدن سیستم جلوگیری کند.
پیکربندی پارتیشن tmp/ در فایل etc/fstab/ تعریف شده است. برای پیکربندی پارتیشن با noexec و nosuid مراحل زیر را دنبال کنید:
فایل etc/fstab/ را با یک ویرایشگر متنی باز کنید:
vi /etc/fstab #
خط زیر را در فایل پیدا کنید:
UUID=0aef28b9-xxxxxxx /tmp ext4 defaults 1 2
این خط را با آپشن هایی که در بالا گفته شد ویرایش کنید تا به صورت زیر خوانده شود:
UUID=0aef28b9-xxxxxxx /tmp ext4 defaults,nosuid,noexec 1 2
ذخیره کنید و فایل را ببندید.
در محیط مجازی، به پارتیشن tmp / دسترسی ندارید. در عوض، می توانید یک دایرکتوری جدید ایجاد کنید و یک پیوند نمادین به آن لینک کنید.
ابتدا یک دایرکتوری جدید ایجاد کنید که می خواهید فایل های موقت را در آن ذخیره کنید.
سپس دستور زیر را اجرا کنید:
<ln -s <old_tmp_directory> <new_tmp_directory #
غیرفعال کردن توابع خطرناک PHP با استفاده از disable_functions List
برخی از توابع PHP هنگامی که فعال باشند، یکپارچگی سرور را تهدید می کنند.
به عنوان مثال، تابع () shell_exec به شما امکان می دهد یک دستور را از طریق یک پوسته اجرا کنید و خروجی را به کاربر برگردانید.
بهتر است آن را غیرفعال کنید مگر اینکه کاملاً نیاز به فعال بودن این عملکرد داشته باشید.
بسیاری از هکرها این تابع (و سایر عملکردها) را به اسکریپت های اکسپلویت خود اضافه می کنند تا تشخیص دهند که آیا می تواند توسط کاربران عمومی اجرا شود یا خیر.
این آسیب پذیری را می توان با استفاده از disable_functions List در آپاچی با ویرایش ساخت سفارشی در DirectAdmin حذف کرد.
برای غیرفعال کردن توابع خطرناک PHP، مراحل زیر را دنبال کنید:
ابتدا به دایرکتوری custombuild سوئیچ کنید.
cd /usr/local/directadmin/custombuild #
با تایپ کردن موارد زیر، پیکربندی disable_functions را به روز کنید:
build set secure_php yes/.
build secure_php/.
آپدیت منظم سرویس ها و کتابخانه های سیستم
هر برنامهای که هنوز توسط توسعهدهنده نگهداری میشود دارای نسخههای منتشر شده و وصلههایی است.
وصلهها و بهروزرسانیها معمولاً باگها و مسائل امنیتی را برطرف میکنند.
نسخههای قدیمیتر معمولاً بازنشسته میشوند، بنابراین توسعهدهندگان دیگر کد را حفظ نمیکنند.
پس از بازنشستگی، نسخه قدیمی نرم افزار باید به روز شود.
کتابخانه های سایت و هر کدی در وب سایت های جداگانه باید توسط مالک سایت به روز شوند،
اما مدیر سرور نیز باید منابع سیستم را به روز نگه دارد.
صاحبان سایت می توانند کتابخانه ها را با استفاده از روش های خود یا ویژگی های به روز رسانی نرم افزار به روز کنند.
به عنوان مثال، صاحبان سایت می توانند از وردپرس برای دانلود و به روز رسانی افزونه های شخص ثالث و پایگاه کد اصلی استفاده کنند.
سرویس های سطح پایین را می توان با استفاده از yum یا apt-get به روز کرد،
اما برای به روز رسانی سرویس ها و اسکریپت های DirectAdmin، دستورات زیر را اجرا کنید:
cd /usr/local/directadmin/custombuild
build update/.
build all d/.
پیکربندی Safe_mode و open_basedir را در مد PHP CLI
درست مانند disable_functions List، اجرای PHP در حالت ایمن، از سرور در برابر کدهای قابل سوء استفاده هنگامی که سیستم آن را در یک رابط خط فرمان اجرا می کند محافظت می کند.
چندین توابع PHP را می توان برای اجرای اسکریپت ها روی سرور استفاده کرد که به نوبه خود می توانند برای افزایش امتیازات، سرقت داده ها یا آپلود بدافزار استفاده شوند.
می توانید open_basedir را در رابط DirectAdmin غیرفعال کنید.
برای این کار به PHP SafeMode Configurations -> Php Safe Mode Settings بروید.
در این صفحه رابط، open_basedir را غیرفعال کنید.
برای پیکربندی PHP برای اجرا در حالت امن، باید فایل php.ini را ویرایش کنید. فایل را باز کنید و خط safe_mode را پیدا کنید:
safe_mode = Off
این خط را به صورت زیر تغییر دهید:
safe_mode = On
نصب PHP
اسکریپتهای PHP معمولاً با یک کاربر خاص، “Nobody” در تمام اسکریپتها اجرا میشوند،
به این معنی که اگر مهاجم به این حساب خاص دسترسی پیدا کند، مهاجم میتواند هر اسکریپتی را که در زیر حساب هدف اجرا میشود، اجرا کند.
همچنین توانایی مالک سایت برای کار با فایلها را فقط به فایلهایی که روی سرور آپلود میکنند محدود میکند،
بنابراین هرگونه کد مخرب آپلود شده از حساب مالک سایت یا یک حساب کاربری با امتیاز پایین در معرض خطر نمیتواند با امتیازات بالا اجرا شود.
برنامه suPHP به امنیت اضافه می کند، در حالی که به کاربران اجازه می دهد اسکریپت های خود را با استفاده از حساب کاربری کم امتیاز خود به جای حساب سیستم با امتیاز بالا اجرا کنند.
این به صاحبان فایل اجازه می دهد تا فایل های خود را اجرا و ویرایش کنند تا یک هکر فقط به فایل های خاصی روی سرور دسترسی داشته باشد نه همه فایل های متعلق به یک حساب کاربری.
برخی از برنامه ها به پوشه های خاصی نیاز دارند تا مجوزهای 777 داشته باشند، اما دایرکتوری را برای کل جهان باز می گذارد.
استفاده از مجوزهای 777 روی پوشه ها، آنها را برای همه کاربران خوانا، قابل نوشتن و اجرا می کند.
برنامه suPHP به مجوزهای 777 نیاز ندارد، بنابراین مدیران می توانند امنیت دایرکتوری ها را بدون تأثیرگذاری بر برنامه ها افزایش دهند.
MySQLd را به 127.0.0.1 (Localhost) متصل کنید
اجازه دادن به اتصالات از راه دور به پایگاه داده MySQL برای کاربران راحت است، اما خطر امنیتی را به محیط اضافه می کند.
اتصال MySQL فقط به IP localhost (127.0.0.1) سطح حمله را محدود می کند و فقط لوکال هاست را از اتصال محدود می کند.
اگر سرور پایگاه داده از سرور میزبان وب جدا شده باشد، همچنان می توانید اتصالات راه دور را در لیست سفید قرار دهید تا مانع از اجرای دستورات دلخواه مهاجمان در سرور MySQL شوید.
برای اتصال یک آدرس IP خاص به پایگاه داده MySQL، باید فایل etc/my.cnf/ را ویرایش کنید.
پس از تغییر این فایل، باید سرویس MySQL را ریستارت کنید.
فقط زمانی این تغییرات را انجام دهید که بتوانید خدمات پایگاه داده را برای مدت کوتاهی آفلاین کنید.
در فایل etc/my.cnf/، بخش mysqld را به صورت زیر تغییر دهید:
[mysqld]
bind-address = 127.0.0.1
Apache mod_security را اضافه کنید
آپاچی یک ماژول به صورت رایگان به نام Modsec یا mod_security دارد که فایروال برنامه وب (WAF) را به سرویس میزبانی اضافه می کند.
یک WAF حملات خاص HTTP مانند SQL injection، Cross-Site Scripting (XSS)، آپلودهای مخرب،تلاش های botted exploit ، ربودن جلسه (session hijacking) و موارد دیگر را مسدود میکند.
برای میزبانهای وب، افزودن mod_security به آپاچی، بسیاری از تهدیدات را که میتواند به سایتهای مشتریان آسیب برساند، کاهش میدهد.
توجه: قبل از نصب mod_security، مطمئن شوید که کاملاً آزمایش شده است.
اگر mod_security به درستی راهاندازی نشود، میتواند منجر به خرابی صفحات اصلی و سایر بخشهای وبسایت شود.
DirectAdmin را مجبور به استفاده از نسخه های جدیدتر SSL/TLS کنید
نسخههای قدیمیتر SSL از نظر رمزنگاری ناامن هستند و نباید برای اتصالهایی که دادههای حساس را منتقل میکنند استفاده شوند.
نیاز به برخی از نسخه های TLS نیز توسط برخی مقررات انطباق الزامی است.
برای مثال، انطباق با PCI-DSS به سرورهایی نیاز دارد که حداقل از TLS 1.2 استفاده کنند.
TLS 1.3 و 2.0 نیز در دسترس هستند، اما مدیران سرور اغلب از نسخههای رمزنگاری قدیمیتر پشتیبانی میکنند تا اطمینان حاصل کنند که کاربران در هر مرورگر میتوانند به سرور متصل شوند.
برای مثال، اگر مرورگر کاربر از TLS 2.0 پشتیبانی نکند، نمیتواند به سروری متصل شود که فقط TLS 2.0 را مجاز میکند.
پیکربندی سرور میزبان برای پشتیبانی از نسخه های SSL/TLS بستگی به برنامه دارد.
خوشبختانه، موزیلا یک مولد پیکربندی SSL دارد که به شما کمک می کند تا تنظیمات مربوط به وب سرور خود را تعیین کنید.
کاربران آپاچی را از اجرای اسکریپت های Perl مسدود کنید
اسکریپت ها در هر زبان برنامه نویسی باید به گونه ای پیکربندی شوند که فقط کاربر مورد نظر بتواند آنها را اجرا کند.
ممکن است اسکریپت های پرل برای صاحبان سایتی که آنها را آپلود و استفاده می کنند ضروری باشد، اما نباید برای گروه “apache” در دسترس باشد.
برای سخت تر کردن امنیت، مدیر باید اسکریپت ها را قفل کند و گروه آپاچی را از اجرای آنها مسدود کند.
گروه آپاچی توسط وب سرور برای پاسخ به درخواست های HTTP/S استفاده می شود، بنابراین ایمن سازی این گروه کاربران اینترنت را از اجرای اسکریپت های Perl مسدود می کند.
DirectAdmin یک راه سریع برای انجام این کار دارد:
chgrp apache /usr/bin/perl /usr/bin/wget /usr/local/bin/wget /usr/local/bin/curl /usr/bin/curl /usr/bin/python
chmod 705 /usr/bin/perl /usr/bin/wget /usr/local/bin/wget /usr/local/bin/curl /usr/bin/curl /usr/bin/python
کاری که دستور بالا انجام می دهد این است که گروه apache را از خواندن، نوشتن و اجرای هر گونه اسکریپت در دایرکتوری های فهرست شده مسدود می کند.
directadmin note apacheNote: اگر نصب و پیکربندی suPHP را انتخاب کنید، این مرحله ضروری نیست زیرا اسکریپت ها فقط توسط مالک فایل قابل اجرا هستند.
نکته 2: اگر از mod_ruid2 استفاده می کنید، از اجرای usr/bin/perl/ توسط گروه apache جلوگیری نکنید.
دسترسی مستقیم به SSH را برای کاربر ریشه غیرفعال کنید
هنگامی که مهاجمان سرور را پیدا می کنند، معمولاً سعی می کنند تا کاربر ریشه را به صورت بی رحمانه مجبور کنند تا به یک جلسه SSH راه دور دسترسی پیدا کند.
فیشینگ و مهندسی اجتماعی نیز برای فریب مدیران در افشای اعتبار سرور استفاده می شود.
برای افزودن یک لایه امنیتی به SSH، مدیران می توانند دسترسی کاربران ریشه و ادمین را از راه دور غیرفعال کنند.
با ویرایش فایل etc/ssh/sshd_config/ و تغییر پیکربندی PermitRootLogin میتوانید احراز هویت کاربر ریشه در SSH را غیرفعال کنید:
PermitRootLogin no
پس از غیرفعال کردن اتصالات از راه دور برای این دو حساب، همچنان به راهی برای اتصال به سرور نیاز دارید.
پس از اینکه یک کاربر ادمین را به سرور اضافه کردید، سپس فایل etc/ssh/sshd_config/ را ویرایش کنید تا با افزودن خط زیر به جای <username> با حساب مدیریت جدید، به کاربر جدید اجازه دسترسی به SSH را بدهد:
<AllowUsers <username
دیتکشن Brute-Force را روشن کنید
DirectAdmin دارای یک ویژگی تشخیص و نظارت بر brute-force است که می تواند برای کمک به توقف حملات روشن شود.
نسخه های قدیمی DirectAdmin فقط از پورت 2222 پشتیبانی می کنند و بر اساس IP مهاجم مسدود می شوند.
نسخه های جدیدتر DirectAdmin لاگ های سیستم را تجزیه می کنند و IP ها را بر اساس درخواست های مکرر ممنوع می کنند.
برای نسخههای قدیمیتر DirectAdmin، ویژگیهای brute-force را با استفاده از:
Admin Level -> Admin Settings -> Blacklist IPs for excessive login attempts
برای نسخه های جدیدتر DirectAdmin به آدرس زیر بروید:
Admin Level -> Admin Settings -> Parse service logs for brute force attacks
حملات روی سرور در نسخههای جدیدتر DirectAdmin ثبت و گزارش میشوند و در صورت شناسایی حمله مداوم، هشدارها برای مدیران ارسال میشود.
از اتصالات ایمیل امن استفاده کنید
حساب های کاربری، به ویژه حساب های ایمیل، هدف مورد علاقه مهاجمان است.
اگر مهاجمان بتوانند به حسابهای ایمیل کاربر دسترسی پیدا کنند، میتوانند پیامهای اسپم ارسال کنند و به عنوان یک کاربر واقعی در دامنه ظاهر شوند.
برای یک میزبان، اجازه دادن به سرور ایمیل برای استفاده از پیام های هرزنامه می تواند منجر به اضافه شدن آن به لیست های هرزنامه شود.
هنگامی که سرور ایمیل میزبان به لیست سیاه اضافه می شود، تمام ایمیل های ارسال شده از آدرس IP سرور مسدود می شوند.
قرار گرفتن در لیست سیاه به احتمال زیاد تنها پس از چند پیام هرزنامه اتفاق نمی افتد، اما مهاجمان از حساب های ایمیل سرقت شده برای ارسال مقادیر زیادی از هرزنامه استفاده می کنند که در نهایت باعث ایجاد الگوریتم های شناسایی می شود.
قرار گرفتن در لیست سیاه برای هرزنامه ایمیل می تواند شهرت میزبان را از بین ببرد.
پیامهای ایمیل قانونی به گیرندگان تحویل داده نمیشوند و برخی از مشتریان میزبان را برای سرویسی که دارای سرویس ایمیل قابل اعتماد است رها میکنند.
حذف سرور ایمیل از لیست هرزنامه ها زمان می برد و ارتباط با سرویس های بزرگ با میلیون ها کاربر اغلب دشوار است.
برای مثال، سرورهای Gmail پیامهای هرزنامه را دریافت میکنند و میتوانند IP سرور ایمیل میزبان را در لیست سیاه قرار دهند.
مشتریان میزبان دیگر نمی توانند برای کاربران جیمیل پیام ارسال کنند، که می تواند بخش بزرگی از پایگاه مشتریان صاحب سایت را تشکیل دهد.
این موضوع برای صاحبان مشاغل غیرقابل قبول است و آنها را مجبور می کند به سرویس میزبانی دیگری منتقل شوند.
برای جلوگیری از تبدیل شدن به هدفی برای ارسالکنندگان هرزنامه، میزبان میتواند چندین قدم برای تقویت امنیت ایمیل و محدود کردن تواناییهای مهاجم برای به خطر انداختن حسابهای ایمیل بردارد.
در مقالات آتی بیشتر در مورد این موضوع صحبت خواهیم کرد.
دسترسی UserDir را غیرفعال کنید
هنگامی که یک میزبان یک حساب کاربری جدید برای یک دامنه کاربری جدید ایجاد می کند، آپاچی یک URL با IP و نام کاربری ایجاد می کند که در آن مشتری می تواند به محتوای خود دسترسی داشته باشد.
URL به نظر می رسد جایی که IP عمومی سرور است:
https://serverip/~username
این URL با افشای نام های کاربری یک خطر امنیتی ایجاد می کند.
یک عامل تهدید میتواند لیستی از نامهای کاربری را برای یک حمله بالقوه brute-force برشمرد.
برای تقویت امنیت در آپاچی، مدیران این دایرکتوری را غیرفعال میکنند که میتواند با استفاده از CustomBuild ارائه شده با نسخههای فعلی DirectAdmin انجام شود.
برای غیرفعال کردن دایرکتوری کاربر از دستور زیر استفاده کنید:
cd /usr/local/directadmin/custombuild
build set userdir_access no/.
build rewrite_confs/.
برنامه های افزودنی Anti-Malware را نصب کنید
صاحبان وبسایتها اغلب از راههای متعددی که مهاجمان میتوانند حسابها و وب سرور خود را به خطر بیاندازند، بیاطلاع هستند.
نصب یک اسکنر بدافزار لینوکس خطر سازش را تا حد زیادی کاهش می دهد.
علاوه بر نظارت و اسکن، یک پسوند آنتی ویروس سرور لینوکس اضافه شده به بهترین شیوه های سخت افزاری امنیتی DirectAdmin فوق به مدیران سرور و صاحبان سایت کمک می کند تا حملات رایج را متوقف کنند.
با استفاده از افزونه های ضد بدافزار، صاحبان و مدیران سایت می توانند محافظت بهتری در برابر سوء استفاده ها داشته باشند، حتی اگر بهترین شیوه های امنیتی را اجرا کنند.
ضد بدافزار مدیران را مطلع میکند و سوءاستفادهها را قبل از استفاده علیه سرور متوقف میکند.
این محافظت اضافی است که بسیاری از مسائل امنیتی رایج را حل می کند و در وقت مدیران صرفه جویی می کند.
به جای اصلاح دستی مشکلات مالک سایت، مانیتورها و اسکنرهای ضد بدافزار مشکلات را پیدا کرده و به طور خودکار آنها را برطرف می کنند.
مقالات و مطالب مرتبط:
دوره آموزشی صفر تا 100 راه اندازی خدمات هاستینگ
چگونه شماره پورت پیش فرض دایرکت ادمین را تغییر دهیم؟
آموزش تنظیم و تغییر ساعت هاست با کمک فایل php.ini
آمورش نحوه پیکربندی FileZilla Client
راهنمای سریع و آسان برای رفع خطای 504 Gateway Timeout
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.