مدیریت سرورمقالات وب

چگونه LAMP سرور را امن کنیم؟

پشته LAMP به معنای لینوکس، آپاچی، MySQL/MariaDB و PHP/Python/Perl است که ترکیب بسیار محبوبی از نرم افزارهای متن باز و رایگان برای اجرای میلیون ها سایت می باشد.  اگرچه بیشتر افراد از پشته LEMP استفاده می کنند اما تعداد زیادی از کاربران هم هستند که برای اجرای پروژه های خود به سراغ LAMP می روند. در حقیقت، بیش از ۳۰ درصد سایت های فعال امروزی  بر روی LAMP اجرا می شود. این پشته یکی از موارد قابل اعتماد و بسیار مناسب برای اجرای اپلیکیشن های وب با عملکرد بالاست. در این مقاله سعی می کنیم نحوه امن  کردن این پشته بر روی سرور مجازی لینوکس را با هم مرور کنیم. پس همراه وب ایده باشید.

 به روزرسانی های خودکار را فعال کنید:

باید به خاطر داشته باشید که پشته LAMP بر اساس لینوکس است و کل جامعه متن باز آن بر روی بهبود شرایط موجود کار می کنند. بر روی سرور مجازی اوبونتو، همه به روزرسانی های  موجود را می توان به صورت خودکار دریافت کرد.  بعد از اینکه قابلیت به روزرسانی خودکار را فعال کردید دیگر مجبور نخواهید بود به روزرسانی های مورد نیاز برای سرور مجازی را به صورت دستی انجام دهید. برای فعال کردن به روزرسانی و ارتقا خودکار باید بسته unattended-upgrades را نصب کنید. برای اینکار از دستور زیر کمک بگیرید:

 

برای پیکربندی طبقه بندی پکیج هایی که باید به طور خودکار به روزرسانی شوند می توانید فایل /etc/apt/apt.conf.d/50unattended-upgrades را ویراش کنید.

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

پیکربندی مناسب فایروال یکی از موارد مهم برای امنیت سرور مجازی شماست. UFW  ابزار پیکربندی فایروال پیش فرض برای اوبونتوست و  غیر فعال شده است. برای فعال کردن این فایروال می توانید از دستور زیر استفاده کنید:

 

دسترسی به سرویس های اصلی همچون آپاچی و OpenSSH را به کمک دستور زیر فعال کنید:

 

فعال کردن دسترسی به سایر سرویس ها بسیار اسان است. کافیست شماره پورت را در نمونه های بالا با پورت سرویس مدنظر خود جایگزین سازید. قوانین فایروال بعد از ریبوت اعمال خواهد شد.

سرویس های ناخواسته را غیر فعال کنید:

اگر سرویس های فعالی دارید که از آن ها استفاده نمی کنید می توانید غیر فعالشان کنید. به عنوان مثال اگر سرویسی همچون Dovecot را دارید که بر روی سرور مجازی اجرا می شود اما اصلا کاربردی برایتان ندارد می توانید به کمک دستور زیر آن را غیر فعال کنید:

 

Fail2ban را بر روی سرور خود نصب کنید:

همانطور که می دانید Fail2ban سرویسی است که فایل های لاگ را بررسی می کند تا لاگین هایی که با موفقیت انجام نشده اند را پیدا کند. بعد از پیدا کردن این موارد، ای پی آدرس مربوطه بلاک می شود.  اگر از مکانیسم های تایید هویت دو مرحله ای یا خصوصی استفاده نمی کنید این سرویس برایتان بسیار مفید خواهد بود. برای نصب این سرویس دستور زیر را وارد کنید:

 

از فایل پیکربندی پیش فرض کپی بگیرید تا بتوانید تغییرات را بدون دردسر ایجاد نمایید:

 

فایل Jail.local را ویرایش کنید:

 

بلوک SSHD باید شبیه زیر باشد:

 

فایل را ذخیره کنید و سرویس را ریستارت نمایید تا تغییرات اعمال شود:

 

این سرویس را به گونه ای تنظیم کنید که بتواند در بوت سیستم اجرا شود:

 

آپاچی را امن کنید:

پیکربندی های پیش فرض آپاچی اطلاعات حساسی را در اختیار افراد قرار می دهد.  پنهان کردن این اطلاعات می تواند برایتان بسیار مفید باشد. یک فایل پیکربندی برای تنظیمات جدید ایجاد کنید. برای اینکار از دستور زیر کمک بگیرید:

 

محتوای زیر را در فایل پیست کنید:

 

ماژول هدر آپاچی را به کمک دستور زیر فعال کنید:

 

پیکربندی ها را فعال سازید:

 

آپاچی را ریستارت کنید:

 

mod_security را نصب و فعال سازید:

همانطور که می دانید mod_security فایروال وب اپلیکیشن است و می توان آن را به عنوان ماژول اضافی برای آپاچی نصب کرد.  این گزینه برای محافظت از سرور در برابر حملات متعدد به کار می رود. برای نصب و فعالسازی آن از دستور زیر کمک بگیرید:

 

بعد از اینکه نصب شد باید ماژل را پیکربندی کنید و CSR را فعال نمایید:

 

حالا فایل /etc/modsecurity/modsecurity.conf باز کنید و تنظیمات زیر را به آن اضافه کنید یا ویرایش نمایید:

 

فایل را ذخیره کنید و ببندید. CRS فعلی را حذف کنید و به کمک دستور زیر OWASP CRS را دانلود نمایید:

 

فایل /etc/apache2/mods-enabled/security2.conf file را ویرایش کنید. فایل باید شبیه فایل زیر باشد:

 

حالا آپاچی را ریستارت کنید تا تغییرات اعمال شود:

 

mod_evasive را نصب و فعال کنید:

mod_evasive ماژول آپاچی است که می توان از آن برای محافظت از وب سرور در برابر DOS، حملات DDOS و بروت فورس استفاده کرد. برای نصب آن بر روی سرور مجازی، دستور زیر را اجرا کنید:

 

فایل پیکربندی /etc/apache2/mods-enabled/evasive.conf  را باز کنید و تنظیمات زیر را انجام دهید:

 

فایل را ذخیره کنید و ببندید. یک دایرکتوری برای فایل لاگ ایجاد کنید:

 

آپاچی را به کمک دستور زیر ریستارت کنید:

 

MYSQL را امن سازید:

اولین کاری که برای امن کردن این گزینه باید انجام دهید اجرای اسکریپت mysql_secure_installation  است.

 

این اسکریپت به شما کمک می کند وظایف امنیتی مهم همچون تنظیم پسورد روت، غیر فعالسازی لاگین روت و حذف کاربران ناشناس را انجام دهید.

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

اگر بر روی سرور MYSQL خود کارهای ریموت را انجام نمی دهید بهتر است این دسترسی را غیر فعال سازید.  شما می توانید اینکار را با ویرایش فایل /etc/mysql/mysql.conf.d/mysqld.cnf  و تغییر bind-address  به ۱۲۷٫۰٫۰٫۱ انجام دهید:

 

سرویس را ریستارت کنید تا تغییرات اعمال شود:

 

کاربران MYSQL جداگانه ای ایجاد کنید:

موضوع دیگری که باید مدنظر داشته باشید ایجاد کاربر جداگانه برای هر پایگاه داده و اپلیکیشن است: به عنوان کاربر روت به MYSQL وارد شوید:

 

شما می توانید پایگاه داده MYSQL را ایجاد کنید و همه دسترسی ها را به کمک دستور زیر به کاربر جدید بدهید:

 

حالا می توانید پایگاه داده جدید و کاربر را برای اپلیکیشن خود به کار ببرید.

LOCAL INFILE را غیر فعال کنید:

اگر به طور واضح از این گزینه استفاده نمی کنید آن را غیر فعال نمایید. فایل پیکربندی MYSQL را ویرایش کنید و خط زیر را  به بخش زیرین بلوک MYSQLD اضافه نمایید:

 

سرویس MYSQL را ریستارت کنید.

PHP را امن تر نمایید:

اگر مراحل بالا را انجام داده اید، باید سروز مجازی تان امن شده باشد. آخرین بخش امن کردن PHP است. موقعیت فایل  PHP ini را بیابید. برای اینکار از دستور زیر کمک بگیرید:

 

همه  تغییرات در این فایل اعمال خواهد شد.

اطلاعات اصلی PHP را پنهان کنید:

اولین مرحله پنهان کردن اطلاعات فراهم شده توسط PHP است که برخی از هکرها از آن استفاده می کنند. فایل Php.ini را باز کنید و تغییرات زیر را در آن اعمال نمایید:

 

فایل را ببندید و خارج شوید:

 

PHP functions های خطرناک را غیر فعال کنید:

بخش disable_functions  به شما اجازه می دهد برخی از فانکشن هایی که می تواند برای سرور مجازی لینوکس مضر باشد را غیر فعال کنید. این گزینه را در فایل php.ini به صورت زیر ویرایش کنید:

 

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

 

آپلود فایل ها را محدود سازید:

اگر از قابلیت آپلود فایل ها استفاده نمی کنید بهتر است این گزینه را محدود سازید. فایل php.ini را باز کنید و تنظیمات زیر را انجام دهید:

 

در مواردی که از این قابلیت استفاده می کنید می توانید از دستور زیر کمک بگیرید:

 

حالا آپاچی را ریستارت کنید.

 زمان اجرای حداکثری را تنظیم کنید:

فایل PHP.ini را باز کنید  و تغییرات زیر را اعمال نمایید:

 

open_basedir را فعال کنید:

این گزینه به شما اجازه می دهد موقعیتی که از آن PHP به فایل های شما دسترسی دارد را تعیین نمایید. فایل php.ini  را  ویرایش کنید و موقعیت را تنظیم نمایید:

 

فراموش نکنید که باید آپاچی را ریستارت کنید.

خوب همانطور که مشاهده کردید در این مقاله موارد امنیتی برای LAMP را در سرور مجازی لینوکس با هم مرور کردیم.

چگونه LAMP سرور را امن کنیم؟
امتیاز دهید
برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

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

بستن