سامانه آموزش آنلاین

مقلات آموزشی

سرویسهای FreeBSD برای مهندسین شبکه

File Flag و kernel secure level در FreeBSD:

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

یکی دیگر از امکانات پیشرفته سیستم عامل های مبتنی بر BSD استفاده کردن از یک سطح دسترسی است که جدای دو سطح دسترسی معمولی و ACL است. این سطح دسترسی به File Flag معروف است و شما می توانید علاوه بر دو روش ذکر شده سطح دسترسی مثل append-only یا undelete را برای افزایش دادن امنیت سیستم خود به فابلها اضافه کنید. در زیر شما لیست file flag ها موجود در FreeBSD را مشاهده می کنید:

archived: با این flag فایل حتما باید آرشیو شود.

opaque: این flag برروی شاخه اعمال می شود و در حالتی که شما شاخه ای را در زیر شاخه دیگر mount می کنید باعث مخفی شدن شاخه می شود. به این نوع از mount کردن به اصطلاح unionfs می گویند.

nodump: فایلی که این flag را داشته باشد به هیچ عنوان backup گرفته نمی شود.

sappend: هر فایلی که شامل این flag باشد فقط می توانید به آخر آن اضافه کنید و به هیچ عنوان قابل تغییر محتوای قبلی نیست.

schange: فایلی که شامل این flag باشد به هیچ عنوانی برای هیچ کاربری قابل تغییر دادن نیست.

sunlink: لینک کردن یک فایل یکی از قابلیت های موجود در BSD است شما می توانید بعد از این کار flag مذکور را به فایل اضافه کنید تا کسی نتواند آنرا از حالت link خارج کند.

uappend: فایلی که شامل این flag باشد فقط توسط صاحب آن فایل قابل اضافه کردن است و دیگران به آن دسترسی ندارند.

uchange: فایلی که شامل این flag باشد فقط توسط صاحب آن فایل قابل تغییر دادن  است و دیگران به آن دسترسی ندارند.

uunlink: فایلی که شامل این flag باشد فقط توسط صاحب آن فایل قابل تغییر دادن  link  و دیگران به آن دسترسی ندارند.

 

در لیست بالا آن دسته از flag هایی که با حرف s شروع می شود فقط توسط کاربر root قابل تغییر است.

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

  • باید سعی کنید که برای فایلهای log که بخش مهمی در کشف کردن حملات و تغییرات در سیستم شما هستند از sappend استفاده کنید.
  • سعی کنید که فایلهای مهم پیکربندی سیستم را در حالتی قرار دهید که قابل تغییر نباشد. حتی در بخش بعدی شما یاد خواهید گرفت که به چه صورت دسترسی کاربر root را هم تغییر دهید تا در صورتی که سیستم شما به خطر افتاد و هکری با کاربر root به سیستم شما وارد شد نتواند فایلهای پیکربندی اصلی را که امنیت سیستم شما را حفظ می کند تغییر دهد.

اعمال کردن file flag در FreeBSD:

برای اعمال کردن file flag در FreeBSD شما باید از یک فرمان خاص به نام chflags  استفاده کنید، در شکل زیر یک مثال از این بخش را مشاهده می کنید:

 

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

در خط دوم با استفاده از فرمان chflags به فایل ایجاد شده حالت بدون تغییر را اضافه کردیم.

همانطور که مشاهده می کنید دسترسی در shell با کاربر root است و در خط بعدی فصد داریم که فایل را با فرمان rm با سطح دسترسی کاربر root حذف کنیم که این عمل امکانپذیر نیست.

با استفاده از فرمان بالا و flag مشاهده کردید که می توانید سطح دسترسی جدید به فایلها اضافه کنید، برای مشاهده کردن file flag شما باید از فرمان ls به سویچ های –lo استفاده کنید که در شکل زیر خروجی این فرمان را در شاخه قبلی که شما فایل در این ایجاد کرده اید را مشاهده می کنید:

همانطوری که مشاهده می کنید در فیلد بعد از مشخص شدن گروه صاحب فایل شما file flag اعمال شده به نام schg را مشاهده می کنید.

 

securelevel در FreeBSD:

هدف اصلی از بیان file flag در FreeBSD بیان کردن قابلیت امنیتی اضافه شده به سیستم عامل های مبتنی بر BSD است به نام security profiles یا همان securelevel،.

هسته سیستم عامل های مبتنی بر BSD به صورتی طراحی شده اند که می توانند حتی دسترسی کاربر root را هم محدود کنند تا سطح امنیتی سیستم شما را افزایش دهند. برای این منظور پنچ سطح مختلف از securelevel در FreeBSD در نظر گرفته شده است که هر کدام در ادامه توضیح داده شده است:

 

سطح -1:

 در این سطح هیچ بخش امنیتی برروی سیستم شما اعمال نمی شود و به صورت پیش فرض هم از این سطح استفاده می شود که هیچ تغییر امنیتی در سطر هسته بررروی سیستم شما فعال نیست.

 

سطح 0:

 در این سطح اگر کاربری file flag های غیر فایل تغییری به فایلها اضافه کرده باشد می توان در این سطح آنها را خاموش کند. این نوع از flag ها فقط در سطح 0 اعمال می شود و شما اگر سطح 1- را فعال کنید این flag ها غیر فعال می شوند. در این سطح هم همه دستگاه ها قابل خواندن و نوشتن هستند با توجه به سطح دتسرسی مشخص شده.

 

سطح 1:

در این سطح اگر کاربری file flag های غیر فایل تغییری به فایلها اضافه کرده باشد نمی توان در این سطح آنها را خاموش کند.

فایل سیتم های /dev/mem, /dev/kmem و  dev/io اگر در ساختار سخت افزاری شما وجود داشته باشد، در این سطح از امنیت غیر قابل mount کردن است.

یکی از قابلهایی که از کاربر در این سطح گرفته می شود این است که دیگر نمی توان در هسته FreeBSD ماژولی با استفاده kldload بارگذاری کرد و یا ماژول های بارگذاری شده را با استفاده از فرمان kldunload از حالت بارگذاری خارج کرد.

 

سطح2:

این سطح علاوه براینکه  قابلیتهای سطح 1 را شامل می شود قابلتهای دیگری به صورت زیر در هسته سیستم عامل روش می شود:

در این سطح دیسک ها برای خواندن و نوشتن نمی توانند mount شوند،

فرمان newfs  حتی اگر سیستم شما در حالت multi-user محدود شده و دیگر دیسک جدید را شما نمی تواند فرمت کنید و دیسک های قبلی را که در سیستم شما هست غیر قابل پاک شدن با استفاده از فرمان newfs است.

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

 

سطح 3 :

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

securelevel با استفاده از فرمان init قبل زا راه اندازی شدن سیستم در حالت multi-user اجرا و اعمال می شود.

به این نکته توجه کنید که کاربر root یا همان super-user فقط می تواند سطح را افزایش دهد.

کاهش دادن securelevel در زمان راه اندازی شدن سیستم حتی توسط کاربر root هم امکان پذیر نیست.

اگر تغییرات securelevel را بصورت دایمی در سیستم خود اعمال نکرده باشید، که در بخش بعدی روش آن توضیح داده می شود شما با راه اندازی مجدد سیستم می توانید آنرا پایین آورید، ولی اگر به صورت خودکار و در زمان راه اندازی توسط فایل rc.onf تغییر دادن securelevel را اعمال کرده باشید فقط باید در حالت single user mod  وارد شوید و خط مربوطه را از فایل rc.conf پاک کنید.

نمایش و تغییر دادن Live سطح securelevel:

برای نمایش دادن سطح خاضر سیستم شما می توانید از فرمان sysctl به صورت اجرا شده در شکل زیر استفاده کنید:

برای تغییر دادن این سطح کافیست از فرمان زیر استفاده کنید:

# sysctl kern.securelevel=2

با استفاده از فرمان بالا شما securelevel را به سطح 2 افزایش داده اید، حال در شکل پایین مشاهده می کنید که حتی کاربر root هم نمی تواند سطح securelevel را به سطح پایین تر تغییر دهد:

 

تغییر دادن دایمی securelevel :

برای انجام دادن این کار کافیست که از فایل rc.conf استفاده کنید و خطوط زیر را در این فایل اضافه کنید:

kern_securelevel_enable="YES"

kern_securelevel="2"

با استفاده از این دو خط سطح securelevel به سطح 2 تغییر پیدا می کند.

نظرات (0)

هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان ثبت نام یا ورود به حساب کاربری خود.
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟
آموزش BSD با محمدعابدینی

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

کلیه حقوق این سایت متعلق به محمد عابدینی است که در زمینه آموزش BSD فعالیت می کند.
All rights are reserved for Mohammad Abedini 2019

Search

09356757020
محمد عابدینی
کرج 
مهرشهر
Your SEO optimized title