خانه WHM پیکربندی سرور چگونه امنیت لینوکس و سرویس های LEMP را افزایش دهیم؟ ( بخش سوم )

چگونه امنیت لینوکس و سرویس های LEMP را افزایش دهیم؟ ( بخش سوم )

1 دقیقه خوانده شده
۰
0
75
امنیت لینوکس و پایگاه داده MySQL

امنیت لینوکس ، در بخش دوم این مقاله ، ما به شما آموزش دادیم که یکی از راه های برقراری امنیت لینوکس ، بستن پورت های غیر ضروری و غیر فعال کردن سرویس هایی است که استفاده ای از آنها نمیشود . شما با انجام این کار ها میتوانید سطوح دسترسی سرور خود را کاهش دهید تا هکرها نتوانند آن ها را هدف بگیرند و به سرور شما لطمه ای وارد کنند . همچنین دانستیم که امنیت وب سرور یکی از عوامل مهم در ایجاد امنیت لینوکس می باشد . برای برقراری امنیت وب سرور Nginx نیز به شما راه هایی ارائه کردیم که با استفاده از آنها میتوانید به اهداف خود دست پیدا کنید . در ادامه این مقاله ما قصد داریم تا بحث ایمن کردن وب سرور Nginx را ادامه دهیم و سایر روش های موجود را نیز ارائه دهیم و نیز به شما آموزش دهیم که چگونه پایگاه داده MySQL یا MariaDB خود را ایمن کنید .

امنیت لینوکس و پایگاه داده MySQL

ارسال درخواست های کنترل نشده به سرویس PHP :

بسیاری از آموزش هایی که در سطح اینترنت برای تنظیم Nginx در جهت پشتیبانی از PHP ، شامل بخش هایی مانند زیر می باشد :

location ~* \.php$ {
    fastcgi_pass backend;
    # [...]
}

در مثال بالا ، هر درخواستی که به پسوند php. ختم شود ، به FastCGI هدایت می شود . تنظیمات پیش فرض PHP به گونه ای است که اگر مسیر مشخص شده دارای یک فایل PHP نباشد ، خود این سرویس حدس خواهد زد که شما قصد اجرای چه فایلی را دارید .

به عنوان نمونه اگر یک درخواست برای فایل yoursite.com/wp-content/uploads/1232.jpg/file.php داده شود و این فایل وجود نداشته باشد ، وب سرور بررسی خواهد کرد و در صورتی که فایل yoursite.com/wp-content/uploads/1232.jpg وجود داشته باشد ، آن را پردازش خواهد کرد . شاید پیش خودتان بگویید که چرا سرویس PHP یک فایل عکس با پسوند jpg. را بررسی میکند . در جواب باید بگوییم که گاهی اوقات برخی از کدهای PHP درون عکس ها مخفی میشوند . در حالت عادی سرویس PHP نباید یک عکس را بررسی کند ولی اگر فایل yoursite.com/wp-content/uploads/1232.jpg دارای کدهای PHP باشد ، این کار را انجام خواهد داد .

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

اگر شما به دنبال یک هاست ایمن برای میزبانی سایت وردپرس خود هستید ، پیشنهاد ما به شما استفاده از خدمات هاستینگ چیتاهاست می باشد که امنیت و آرامش خیال کامل را برای شما به ارمغان خواهد آورد .

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

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

در مثالی که در زیر برای شما آورده ایم ، سرور ما فقط فایل هایی با نام index.php ، site.php و cms.php را اجرا خواهد کرد .

location ~* (index.php|site.php|cms.php)\.php$ {
    fastcgi_pass backend;
    # [...]
}

یک روش دیگر این است که شما از دستورات try_files استفاده کنید . در مثال زیر اگر فایل ارائه شده پیدا نشود ، وب سرور Nginx یک ارور ۴۰۴ را نمایش خواهد داد .

location ~* \.php$ {
    try_files $uri =404;
    fastcgi_pass backend;
    # [...]
}

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

در مثال زیر ما پوشه uploads را طوری تعریف کرده ایم که PHP آن را پردازش نکند :

location /uploads {
    location ~ \.php$ {return 403;}
    # [...]
}

برقراری امنیت لینوکس با ایمن کردن پایگاه داده MySQL یا MariaDB :

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

mysql_secure_installation

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

برای آن دسته از افرادی که سرور خود را راه اندازی کرده اند و نمیخواهند از این اسکریپت استفاده کنند ، بهترین مکان برای بررسی موارد ذکر شده در بالا ، داخل فایل etc/my.cnf/ می باشد . شما باید مطمئن شوید که مقدار bind-address = 127.0.0.1 تنظیم شده باشد و همچنین کاراکتر # قبل از آن قرار نداشته باشد که آن را غیر فعال کند .

یکی دیگر از روش هایی که بسیار به امنیت لینوکس و پایگاه داده MySQL کمک میکند ، استفاده از یک یوزر و دیتابیس برای هر سایت می باشد . بسیاری از وب سایت هایی که روی اینترنت وجود دارند ، از کاربر root سرویس MySQL برای برقراری اتصال میان دیتابیس و وب سایت استفاده میکنند . کاربر root به صورت پیشفرض به تمامی دیتابیس های موجود روی سرور دسترسی دارد . این بدان معنا است که اگر یک راه نفوذ روی پایگاه داده یک سایت پیدا شود ، هکر قادر خواهد بود تا به تمامی دیتابیس های شما دسترسی داشته باشد .

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

این مقاله ادامه خواهد داشت . منتظر ادامه این مقاله باشید …

بارگذاری نوشته های مرتبط بیشتر
مطالب بیشتر از این نویسنده علی دربان
بارگذاری بیشتر در پیکربندی سرور

پاسخ دهید

بررسی کنید

اسکریپت ارسال ایمیل به مدیر سرور در زمان افزایش مصرف RAM در لینوکس

اگر شما هم مدیریت یک سرور لینوکسی را بر عهده دارید ، حتما با شرایطی مواجه شده اید که مصرف …