آموزش سطح دسترسی لینوکس | امنیت لینوکس

تاریخ انتشار : آذر ۱۹, ۱۳۹۷
1 ستاره2 ستاره3 ستاره4 ستاره5 ستاره (5٫00 / 5)

آموزش سطح دسترسی لینوکس | امنیت لینوکس

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

در این آموزش قصد ما این است که سطح دسترسی به پوشه ها و پرونده های سایت را مقداری برای شما توضیح دهیم، پس با ما باشید!

یکی از موارد خیلی مهم برای کسانی که سایت طراحی می کنند امنیت سایت می باشد، چون سروری که برای سایت هایی که با PHP طراحی می شوند اکثرا سرور لینوکس است لازم هست که در مورد پرمیشن ها یا مجوزهای دسترسی به پرونده ها و پوشه ها بیشتر بدانید چون کل امنیت لینوکس به این مجوزها وابسته هست. ( امنیت لینوکس )

مسلماً اگه مجوزها مناسب نباشند می تواند برای سیستم خطرناک باشد و هاست ناامن مساوی ست با دسترسی هکرها و در نتیجه از دست رفتن سایت. ما ۳ سطح دسترسی داریم :

  •  Read : توانایی خواندن
  •  Write : توانایی نوشتن
  •  Execute : توانایی

و ۳ گروه دسترسی داریم :

  •  Owner مالک یا ادمین
  •  Group افراد عضو گروه یا اعضای گروه که در سایت عضو هستن
  •  Public دیگران یا سایر بازدیدکنندگان

در واقع اعدادی که برای مجوزها نوشته می شود در مبنای هشت هستند. رقم های اول و دوم و سوم (از چپ به راست) مجوز owner و group و Public را مشخص می کنند. هر کدام از این سه رقم را که به مبنای دو برده شود یک عدد سه رقمی در مبنای دو می شود که رقم اول و دوم و سومش (از چپ به راست) مجوز Read و Write و Execute را مشخص می کند. ( امنیت لینوکس )
حالا بیاید ۷۷۷ را معنی کنیم
owner -> 7 = 4 + 2 + 1 = read + write + execute group -> 7 = 4 + 2 + 1 = read +write + execute others -> 7 = 4 + 2 + 1 = read +write + execute

یا یک طور دیگه بگوییم :
owner -> 7 = (111) = rwxgroup -> 7 = (111) = rwxothers -> 7 = (111) = rwx
در اینجا عدد ۱۱۱ همان عدد هفت در مبنای هشت است .
permission = 777 = rwxrwxrwx

و این همان چیزیست که در کنترل پنل هاست جلوی فایل ها و فولدرها نمایش داده می شود .
یک نکته بسیار مهم : مراقب باشید مجوز ۷۶۶ اصلاً جالب نیست، چون به Group و Public اجازهٔ هر کاری را می دهد اما به خود Owner فایل، مجوز اجرا نمی دهد !! اینچنین مجوزی هیچ جا بکار نمی رود شما هم در هنگام کار با مجوزها مواظب باشید اشتباهی همچین مجوزی صادر نکنید !!! همین اشتباه را درباره مجوز ۶۶۶ هم مرتکب نشوید. ( امنیت لینوکس )

توضیح بیشتر : فرض کنید که برای همه پرونده ها و پوشه های سایت، مجوز ۷۷۷ را تعیین کردیم. باید بگویم بازدیدکنندگان عادی سایت شما فقط امکانات و اینترفیس وبی را که شما در سایت در اختیارشان گذاشته اید در اختیار دارند، بنابراین از این طریق نمی توانند کاری کنند. اما تعیین مجوز ۷۷۷ می تواند از جهات دیگری خطرناک باشد یعنی اگر کسی سایت شما را هک کند و بتواند فرامین دلخواهش را با PHP اجرا کند، مجوز ۷۷۷ به او کمک می کند که به چیزهای خیلی بیشتری دسترسی نامحدود داشته باشد و در مورد تمام فایلها و دایرکتوری ها بتواند محتویات آنها را بخواند، حذفشان کند، یا محتویاتشان را دستکاری کند و شاید اینطور بتواند هک شدن سایت را خیلی راحتتر پنهان کند و تا مدتها از سایت و کاربران شما سوء استفاده کند، بطور مثال می تواند محتویات فایلهای PHP شما را دستکاری کند و مثلا کدهای جاسوسی در آنها کار بگذارد. بنابراین هرجا فقط مجوزهایی را که واقعا لازمست تنها در مورد فایلها و دایرکتوری هایی که لازم هست اعمال کنید. ( امنیت لینوکس )

فقط هم بحث بازدیدکنندگان نیست، امکان دارد صاحبان سایت های دیگر روی سرور اشتراکی شما که هم اکانت و دسترسی به نرم افزارها و سرویسهای سرور را دارند، بتوانند کارهای خیلی بیشتری کنند. دسترسی به فایلهای شما هم لزوما فقط از طریق PHP ممکن نیست که بگوییم مثلا تنظیم open_basedir جلوی دسترسی آنها را می گیرد، بلکه از روش ها و نرم افزارهای دیگری هم می تواند باشد و ممکنست تنظیمات امنیتی لازم در مورد آن سرویس ها درست انجام نشده باشد. مثلا طرف می تواند یک برنامه اجرایی واقعی را روی سرور اجرا کند و شاید بتواند از طریق آن برنامه خیلی محدودیت ها را دور بزند. ( امنیت لینوکس )

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

قاعدتا شما نمی خواهید همه ی افراد به تمام فایل ها و پوشه های سایت شما دسترسی داشته باشند. سطح دسترسی یا پرمیشن (Permission) از دو بخش اصلی تشکیل شده است :

  •  گروه کاربری
  •  مجوز استفاده

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

  • اولی User یا در بعضی موارد Owner است. این گروه کاربری یعنی خود شما. یا به عبارتی کسی که با نام کاربری و رمز عبور وارد Cpanel شده است و یا اینکه با یک نام کاربری FTP یا Web Disk به پوشه های سایت دسترسی دارد . ( امنیت لینوکس)
  • گروه دوم Group است، که شامل گروه کاربرانی است که به سایت شما دسترسی دارند، که در اینجا Cpanel شما فقط یک نام کاربری و رمز عبور دارد که خود شما هستید. به عبارتی در اینجا Group تقریبا شامل هیچ کس نمی شود!
  • و اما گروه سوم که World یا Public است. این گروه یعنی تمام کسانی که به اینترنت دسترسی دارند .حال شما باید برای هر کدام از این سه گروه مجوز استفاده صادر کنید .

مجوز استفاده: سه مجوز استفاده وجود دارند :

  • Read یا قابلیت خوانده شدن است. اگر Read را برای یکی از سه گروه بالا فعال کنید آن گروه اجازهی خواندن فایل یا پوشه ی مورد نظر را دارد . ارزش رقمی خواندن ۴ است (در این باره توضیح داده خواهد شد).
  • Write یا اجازه ثبت تغییرات است. که اگر این مجوز به یکی از سه گروه بالا داده شود آن گروه اجازهی تغییر در فایل یا پوشه ی مورد نظر را دارند . ارزش رقمی ثبت تغییرات ۲ است.
  • Execute یا اجازهی اجرای فایل است. که اگر این مجوز به یکی از سه گروه بالا داده شود آن گروه اجازهی اجرا در فایل یا پوشه ی مورد نظر را دارند . ارزش رقمی اجرای فایل ۱ است.

ارزش های رقمی در زیر نمایش داده شده اند. هرکدام از این مجوزها یک ارزش رقمی دارند. که ارزش رقمی کل برای یک گروه از جمع این سه عدد به دست می آید.
برای مثال اگر به گروه User ۱ خواهد بود. +۲+۱ هر سه مجوز را بدهید، سطح دسترسی برای این گروه معادل عدد ۷ خواهد بود یا اگر به همین گروه فقط اجازه ی خواندن و ثبت تغییرات بدهیم، سطح دسترسی این گروه معادل ۶.

سطح دسترسی کل: یک عدد سه رقمی است که از کنار هم قرار گرفتن سطح دسترسی سه گروه User ، Group و World به دست می آید .برای مثال سطح دسترسی ۶۱۱ برای یک فایل یعنی خود شما اجازه ی خواندن و ثبت تغییرات در آن فایل را دارید، Group و سایر افراد در اینترنت فقط اجازه ی خواندن این فایل را دارند. تنظیم سطح دسترسی پوشه ها و فایل های سایت خیلی مهم است. زیرا با اشتباه در این امر ممکن است به هکرها اجازه ی نفوذ به بخش های اصلی سایت خود را بدهید و یا اینکه به کل یک پوشه یا فایل را از دسترس همه، حتی خودتان خارج کنید!. ( امنیت لینوکس)

اگر سطح دسترسی یک فایل را معادل ۰۰۰ تعیین کنید دیگر فقط می توانید آنرا حذف کنید! حتی اجازه ی اینکه سطح دسترسی آن را دوباره عوض کنید نخواهید داشت! در کل به طور خلاصه معنی سطح های دسترسی عمومی این است :

برای پرونده ها ۵۰۰۰ هیچ کس هیچ نوع دسترسی به این فایل ندارد و فقط خود شما می توانید حذفش کنید . ۵۰۰۰ به جز شما هیچ کس به این فایل دسترسی ندارد .
o۰۴۴ شما اجازه ی کار با این فایل را دارید و دیگران فقط می توانند آن را اجرا کنند .o۰۰۰ یک حالت خاص که بعضی فایلها را از دسترس نرم افزارهای نصب شده روی سایت خارج می کند .o۶۰۰ همه ی افراد همه نوع دسترسی به این فایل دارند. این سطح دسترسی فقط برای حالتهای خاص است !

برای پوشه ها ۵۰۰۰ هیچ کس هیچ نوع دسترسی به این پوشه ندارد .o۰۴۴ هیچ کس به جز شما اجازه ی دسترسی به این پوشه را ندارد و حتی فایل ها و پوشه های داخل این پوشه نیز قابل دسترسی نخواهند بود .o۶۱۱ شما کامل به این پوشه دسترسی دارید و بقیه فقط می توانند به فایل ها و پوشه های داخل این پوشه دسترسی داشته باشند. یعنی اگر فقط به آدرس این پوشه مراجعه شود خطای ۴۰۴ صادر می شود. یعنی دسترسی مستقیم به این پوشه امکان پذیر نیست .o۶۷۷ شما کامل به این پوشه دسترسی دارید و بقیه هم به طور کامل به این پوشه دسترسی دارند. حتی اگر فقط آدرس این پوشه را وارد نمایند و فایل index در این پوشه موجود نباشد، لیست فایل ها و پوشه هایی را که در این پوشه قرار دارند برایشان نمایش داده خواهد شد !o۶۶۶ همه ی افراد همه نوع دسترسی به این پوشه دارند. این سطح دسترسی فقط برای حالتهای خاص است !

و اما پیشنهاد ما به شما بهترین سطح دسترسی برای فایلهای شما ۶۱۱ و برای پوشههای شما ۷۱۱ است . البته برای بعضی از CMS ها لازم است سطح دسترسی پوشهها ۷۷۷ باشد .


نظرات

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

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