×

ایمن سازی وب سرویس Nginx در لینوکس

خانه » آخرین اخبار و رویدادها » ایمن سازی وب سرویس Nginx در لینوکس
ایمن سازی Nginx

پشتیبان

درباره نویسنده
زمان انتشار : 550 روز پیش دسته بندی : آخرین اخبار و رویدادها, ایمن سازی

Nginx یک وب سرور و پروکسی معکوس ( Reverse Proxy ) با کارایی بالا می باشد. از این رو ایمن سازی وب سرور Nginx اهمیت پیدا می کند.

 

این وب سرور بر روی سیستم عامل های UNIX, GNU/Linux ، Mac OS X ، Solaris و Microsoft Windows اجرا می شود.

امروزه Nginx حدود ۱۴ درصد از وب سرور های سطح اینترنت را تشکیل می دهد.

همچنین Nginx برای پاسخ به درخواست کاربران از متد های جدیدی استفاده می کند و به درخواست کاربران در وب سایت های پر ترافیک جهان مانند WordPress و Github پاسخ می دهد.

در این پست به بررسی نکاتی جهت افزایش امنیت Nginx در Linux می پردازیم …

کانفیگ و پورت پیش فرض Nginx

فایل پیشفرض پیکربندی وب سرور Nginx با نام nginx.conf در مسیرهای زیر موجود است :

/usr/local/nginx/conf/

/etc/nginx/

همچنین document ها در مسیر های زیر موجود می باشند :

/usr/local/nginx/html/

/var/www/html

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

/usr/local/nginx/logs/

/var/log/nginx

و وضعیت پورت های آن به صورت زیر می باشد :

  • Nginx HTTP default port : TCP 80
  • Nginx HTTPS default port : TCP 443

می توانید تغییرات پیکربندی nginx را با دستور زیر تست کنید :

# nginx -t

که خروجی آن مانند زیر است :

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

# nginx -s reload

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

# nginx -s stop

۱- SELinux را فعال کنید

Security-Enhanced Linux (SELinux) یک ویژگی هسته لینوکس است که مکانیزمی را برای پشتیبانی از سیاست های امنیتی و کنترل دسترسی فراهم می کند.

که می تواند حملات بسیاری را قبل از اینکه دسترسی ریشه ( Root ) گرفته شود را متوقف کند.

نحوه فعال کردن SELinux در سیستم های CentOS / RHEL :

۲- کانفیگ sysctl.conf در لینوکس

می توانید تنظیمات هسته و شبکه را در لینوکس با پیکربندی فایل /etc/sysctl.conf کنترل کنید.

 

۳- ایمن سازی وب سرویس Nginx : حذف ماژول های اضافی Nginx

یکی از ساده ترین راه ها برای ایمن سازی وب سرویس Nginx حذف ماژول های اضافی است که ممکن است دارای آسیب پذیری باشند.

هر چقدر از ماژول های کمتری استفاده کنید ، ریسک به وجود آمدن آسیب پذیری کمتر می شود.

به عنوان مثال برای غیر فعال کردن ماژول های SSI و autoindex به این صورت عمل می کنیم :

همچنین با دستور زیر می توانید ببینید که هنگام اجرای وب سرور Nginx کدام یک از ماژول ها را می توانید فعال یا غیرفعال کنید :

خلاصه تمام ماژول هایی که مورد نیاز نیستند را حذف کنید .

۴- Monitoring nginx 

با فعال سازی وضعیت Stub  می توانید تعداد در خواست های کاربر را مشاهده کنید و اطلاعات اضافی دیگری را استخراج کنید.

 

۵- ایمن سازی وب سرویس Nginx : استفاده از HTTPS

کاربران خود را مجبور کنید تا بطور پیش فرض از HTTPS  استفاده کنند.

 

۶- ایمن سازی وب سرویس Nginx : فعال سازی فیلتر Cross-site scripting (XSS) 

دستور زیر را در فایل nginx.conf بنویسید تا فیلتر XSS فعال شود.

 

۷- غیر فعال کردن Sniffing نوع محتوا در برخی مرورگر ها

دستور زیر را در فایل nginx.conf بنویسید:

 

۸- ایمن سازی وب سرویس Nginx : جلوگیری از clickjacking

دستور زیر را در فایل nginx.conf بنویسید:

 

۹- ایمن سازی وب سرویس Nginx : آپدیت نگه داشتن نرم افزار ها

شما باید دائما نرم افزار ها و هسته ی سیستم عامل لینوکسی خود را آپدیت کنید.

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

 

۱۰- اتصالات خروجی Nginx را محدود کنید

کرکرها (Cracker) فایل های محلی روی سرور را با استفاده از ابزار هایی مانند wget دانلود می کنند.

برای بستن اتصالات خارجی از iptables استفاده کنید. rule زیر را به iptables خود اضافه کنید : 

 

۱۱- محدود سازی تعداد درخواست های هر IP در فایروال

یک وب سرور باید به دقت هر درخواست را پردازش کند و محدود سازی در مورد درخواست ها داشته باشد.

iptables و pf می توانند در خواست های کاربران را قبل از رسیدن به Nginx کنترل کنند.

 

۱۲- ایمن سازی وب سرویس Nginx : ایمن سازی PHP و Nginx

PHP یکی از زبان های برنامه نویسی محبوب تحت وب می باشد . جهت ایمن سازی PHP نصب شده بر روی Nginx فایل /etc/php.ini را ادیت کنید :

 

۱۳- ایمن سازی وب سرویس Nginx : پیکربندی SSL در Nginx

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

 

۱۴- محدودیت های دایرکتوری

شما می توانید برای دسترسی به دایرکتوری ها محدودیت اعمال کنید.

محدود سازی بر اساس IP

محدود سازی با رمز عبور

فایل پیکربندی nginx.conf را نیز باید ویرایش کنید :

بعد از ایجاد پرونده رمز عبور با دستور زیر می توانید کاربران را اضافه کنید :

 

۱۵- ایمن سازی وب سرویس Nginx : جلوگیری از Hotlink خوردن تصاویر

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

که می تواند منابع سرور شما را اشغال کند؛ برای جلوگیری از این عمل از دستور زیر استفاده نمایید :

 

۱۶- بلاک کردن اسپم های ارجاعی

اسپم های ارجاعی برای سئوی (SEO) سایت شما خطرناک است. لذا می تواند Spam Score سایت را افزایش داده و افت رتبه داشته باشید. 

با کد زیر می توانید از آن جلوگیری کنید :

 

برچسب ها

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

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

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