نصب و ایمنسازی کالی لینوکس برای استفاده مطمئن در محیط دسکتاپ


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

آسانترین روش برای استفاده از کالی اجرای آن بر روی یک ماشین مجازی است. ابزارهایی مانند ویرچوالباکس امکان اجرای سیستمهای عامل دیگر درون یک محیط ایزوله (sandbox) بر روی سیستم عامل میزبان ویندوز، مکاواس، لینوکس و یا BSD را فراهم میسازد. محدودیتهای ماشین مجازی شامل پیکربندی دشوارتر، استفاده بالاتر از حافظه، عملکرد کندتر و مشکلاتی در رابطه با سختافزار شبکه هستند. برخی از این مسائل را میتوان با اجرای کالی لینوکس به صورت یک سیستم عامل بوت live حل کرد.
استفاده از کالی به عنوان یک ابزار بوت Live بدین صورت است که یک تصویر (Image) از دیسک قابل بوت بر روی درایو اکسترنال ایجاد میشود و سپس این سیستم عامل از دستگاهی به جز آن که سیستم عامل میزبان بر روی آن نصب شده است بوت میشود. بدین ترتب امکان دسترسی مستقیم به سیستم و سختافزار شبکه فراهم میآید و دیگر نیازی به یک لایه اضافی به صورت سیستم عامل میزبان که در مجازیسازی استفاده میشود، وجود ندارد. کالی همچنین گزینههای ایمیج Live دائمی و رمزنگاریشدهای را ارائه میکند که باعث میشود هر کاری که در محیط live صورت میگیرد را بتوان در همان درایو ذخیره کرد. با این که این تغییرات دائمی باعث مفیدتر شدن کالی به عنوان یک سیستم live شده اند؛ ولی مسئله کندی عملکرد و فضای ذخیرهسازی سیستم میتواند خود یک مشکل محسوب شود.
اگر نخواهید هیچ کدام از حالتهای فوق را مورد استفاده قرار دهید و تمایل داشته باشید به استفاده از ویندوز ادامه داده و حتی سیستم را رستارت نکنید و یا نخواهید هیچ نرمافزار مجازیسازی را نصب نکنید؛ در این حالت باز میتوانید کالی را به عنوان یک زیرسیستم ویندوز مورد استفاده قرار دهید.
کالی به هیچ روی برای استفاده به عنوان سیستم عامل دسکتاپ توصیه نمیشود و مناسب این منظور نیست. این مسئله در مستندات کالی لینوکس چنین بیان شده است:
«در هر حال واقعیت امر این است که کالی یک توزیع از لینوکس است که به طور خاص برای استفاده تست کنندههای حرفهای نفوذ و متخصصین امنیت طراحی شده است. در صورتی که آشنایی چندانی با لینوکس نداشته باشید یا به دنبال یک توزیع لینوکس دسکتاپ مناسب عموم برای برنامهنویسی، طراحی وب، بازی و مواردی از این دست باشید، استفاده از آن توصیه نمیشود.»
اگر صرفاً به دنبال یک سیستم عامل برای اجرای وظایف معمول و همچنین یادگیری تست نفوذ هستید، باید توجه داشته باشید که تقریباً همه ابزارهایی که در کالی گنجانده شده اند را میتوان بر روی پلتفرمهای دیگر نیز کامپایل یا نصب کرد.
با این حال اگر میخواهید کالی لینوکس را نصب کنید، برای تبدیل این سیستم عامل به یک محیط مناسب برای استفاده دسکتاپ و همچنین تست نفوذ چند کار را باید انجام داد. این کارها به منظور اجرای پروژههای طولانیتر، تولید مستندات یا گزارشها در طی زمان کار با سیستم عامل مفید هستند. رویههایی که در ادامه معرفی شده اند برای محدودسازی تعداد سیستمهای عامل و پارتیشنهایی که فرد بر روی هر سیستم نیاز دارد نیز مناسب ارزیابی می شوند.
مرحله یکم: نصب کالی
زمانی که رسانه نصب این سیستم عامل مانند سیدی، یا درایو یواسبی را آماده کردید، سیستم را با استفاده از آن بوت کنید.
زمانی که منوی بوت ظاهر شد از کلیدهای جهتی استفاده کرده و با زدن اینتر گزینه «Graphical install» را به جای وارد شدن به گزینههای نصب «Live» یا متنی انتخاب کنید.
نصب کالی برای کسی که هر نوع توزیع لینوکس دیگری را تاکنون نصب کرده باشد، فرایند آشنایی محسوب میشود. نصب کننده گرافیکی به خوبی شما را راهنمایی میکند و درک دستورات آن آسان است. در زمان نصب کالی چند مرحله وجود دارند که باید توجه خاصی به آنها داشته باشید. نخستین مرحله از این مراحل صفحه «Set up users and passwords» است.
در این صفحه میتوانید رمز عبور اصلی (root) را برای سیستم تعیین کنید. این رمز عبور پس از کامل شدن فرایند نصب، برای مدیر سیستم استفاده میشود و همچنین برای اجرای دستوراتی که به مجوزهای superuser نیاز دارند، مورد استفاده قرار خواهد گرفت. به خاطر داشته باشید که این رمز عبور از نظر امنیتی، اهمیت بسیار بالایی دارد و از این رو باید یک رمز عبور قوی برای آن انتخاب کرد. از طرف دیگر این نکته را نیز در نظر داشته باشید که احتمالاً مجبور خواهید بود این رمز عبور را به دفعات متعدد تایپ کنید.
به دلایل امنیتی لازم است که به پیکربندی پارتیشنهای خود نیز توجه ویژهای داشته باشید. نسخه نصب شده از روی دیسک یک سیستم به وسیله سیستم عامل میزبان یک ماشین مجازی و یا توسط گزینه «encrypted persistence» بوت live محافظت نمیشود. در عوض میتوانید گزینه راهاندازی پارتیشن LVM رمزنگاریشده را انتخاب کنید که در این حالت کل سیستم رمزنگاری میشود و حتی در زمان خاموش شدن دستگاهی که روی آن نصب شده است نیز امن است.
زمانی که فرایند نصب کالی به پایان رسید میتوانید به طور مستقیم وارد حساب کاربر root شده و محیط کاربری پیشفرض کالی را لود کنید.
در این محیط دسکتاپ میتوانیم کار پیکربندی کالی برای هر چه مناسبتر و امنتر کردن آن را آغاز کنیم.
مرحله دوم: پیکربندی حسابهای کاربری
در پیکربندی پیشفرض کالی، این سیستم عامل تک کاربر است. این حساب کاربری همان حساب root یا حساب superuder است که در اغلب سیستمها طراحی شده است تا مجوزهایی که تنها مدیر سیستم باید داشته باشد از بقیه کاربرها مجزا باشند. بر روی سیستم عامل کالی این وضعیت تک کاربر مناسبتر است، زیرا نیاز به انتقال بین حسابهای کاربری مختلف وجود ندارد.
vd
در یک توزیع لینوکس معمول مبتنی بر دسکتاپ، این مجوزها به دلایل امنیتی از هم جدا میشوند. در چنین سیستمهایی وقتی یک کاربر معمولی پشت سیستم است، برای انجام هر کار مهم یا نصب برنامه باید به این مجوزهای در سطح مدیر سیستم، دسترسی داشته باشد. اگر دستور «whoami» را روی کالی اجرا کنید متوجه میشوید که سیستم را به عنوان کاربر root مورد استفاده قرار میدهید.
root@kali:~# whoami root root@kali:~# _
با این که استفاده از سیستم به عنوان کاربر root رویه امنیتی مناسبی برای یک توزیع لینوکس محسوب نمیشود؛ اما این روش باعث سادهتر شدن فرایند ایجاد حساب کاربری جدید میشود. برای آغاز ایجاد یک حساب کاربری جدید باید دستور زیر را اجرا کنید و در آن به جای «username» نام کاربر جدید که میخواهید ایجاد شود را وارد نمایید.
adduser -m username
دستور فوق یک حساب کاربری جدید و همچنین دایرکتوری home جدیدی برای این کاربر ایجاد میکند. میتوان وجود این دایرکتوری جدید را با اجرای دستور ls /home/ بررسی کرد.
root@kali:~# useradd -m nullbyte root@kali:~# ls /home/ nullbyte root@kali:~# _
سپس میتوانیم برای این حساب کاربری تازه ایجاد شده یک رمز عبور تعیین کنیم. این رمز عبور باید از رمز عبور کاربر root متفاوت باشد. برای تنظیم رمز عبور در دستور زیر به جای username نام کاربری حساب ایجاد شده را وارد کنید:
passwd username
پس از اجرای این دستور از شما خواسته میشود که رمز عبور را دو بار وارد کنید.
root@kali:~# passwd nullbyte Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@kali:~# _
زمانی که حساب کاربری ایجاد و رمز عبور آن تعیین شد، میتوان مجوزهای این حساب کاربری را تنظیم نمود. تغییر اصلی که در این حساب کاربری ایجاد میکنیم آن است که آن را به گروه کاربران «Sudoers» اضافه میکنیم. کاربران درون این گروه اجازه استفاده از دستور Sudo را دارند. این دستور امکان اجرای دستوراتی به نمایندگی از کاربران دیگر را فراهم میکند. نام این ابزار اختصاری در ابتدا از عبارت «superuser do» یعنی «کاربر ارشد انجام میدهد» گرفته شده بوده است؛ اما اینک بیشتر به صورت «substitute user do» یعنی «کاربر جایگزین انجام میدهد» مورد استناد قرار میگیرد، زیرا این دستور امکان اجرای دستورات به نمایندگی از کاربران دیگر علاوه بر کاربر root را نیز فراهم میسازد. در مورد لینوکس کالی، دستور Sudo به طور کلی برای اجرای دستورهایی که نیازمند مجوزهای root هستند و برای اجرای آنها کاربر باید مجوزهای خاصی داشته باشد، مورد استفاده قرار میگیرد.
برای این که این کاربر جدیداً ایجاد شده را به گروه کاربران «sudo» اضافه کنید، باید دستور زیر را اجرا نمایید. تنها تفاوت این است که به جای «username» نام کاربری که میخواهید به گروه اضافه شود را وارد میکنید.
usermod -aG sudo username
همان طور که در ادامه مشاهده میکنید این کار برای کاربری به نام Faradars صورت گرفته است:
root@kali:~# usermod -aG sudo Faradars root@kali:~# _
پس از این که این کاربر ایجاد شد میتوانید از سیستم خارج شده و دوباره با وارد کردن نام و رمز عبور این حساب کاربری در صفحه اصلی ورود کالی لینوکس وارد این سیستم عامل شوید. برای انجام این کار کافی است نام کاربری کاربر جدید را به جای کاربر root نمایید.
زمانی که وارد سیستم شدید میتوانید پنجره ترمینال را باز کرده و با اجرای دستور «whoami» نام کاربری حساب کاربری جدید را ببینید. همچنین شاید متوجه شوید که در این پنجره ترمینال جدید پوسته (shell) مورد استفاده تا حدودی متفاوت از پوسته حساب کاربر root ظاهر میشود. دلیل این تفاوت آن است که پوسته کاربر جدید هنوز به صورت BASH تنظیم نشده است. برای تنظیم این مسئله دستور زیر را مجدداً با تغییر username به نام کاربری حساب مربوطه اجرا کنید.
chsh -s /bin/bash username
برای مثال در مورد کاربری به نام Faradars وضعیت ترمینال پس از اجرای دستور به صورت زیر در میآید:
$ whoami nullbyte $ chsh -s /bin/bash Faradars Password: $ _
اینک که حساب کاربری جدید و پوسته آن تنظیم شد، میتوان آن را مورد استفاده قرار داد. دستوراتی را که هنگام کار با یک کاربر استاندارد میخواهید با مجوزهای root اجرا کنید، میتوانید با دستور Sudo وارد نمایید و بدین ترتیب امنیت و ایزولاسیون مجوزهای عرضه شده از سوی توزیع استانداردتر لینوکس را نیز رعایت کنید.
مرحله سوم: تغییر رویههای سرویس شبکه
همان طور که در مستندات کالی نیز اشاره شده است: «طرز برخورد کالی لینوکس با سرویسهای شبکه به روشی بسیار متفاوت از توزیعهای دیگر لینوکس است. به خصوص کالی به طور پیشفرض به هیچ یک از درخواستهایی که از بیرون میآید را پذیرش نمیکند که هدف از این کار کمتر ساختن مخاطرات سیستم در وضعیت پیشفرض بوده است.» این تغییرات بدان معنی است که کالی «به طور پیشفرض در هنگام شروع مجدد سیستم تنظیمات خدمات شبکه را حفظ نمیکند.»
بدین ترتیب سرویسهای خاص شبکه که در زمان نصب انتخاب میکنید، درزمان شروع به کار اولیه ممکن است فعال باشند؛ اما در زمان شروع به کار مجدد سیستم به طرز مرموزی از کارمی افتند. با این که امکان آغاز دستی این سرویسها در صورت نیاز به حفظ دائمی یک سرویس با استفاده از مؤلفه «systemctl» در Systemd وجود دارد؛ اما باید فهرست سفید/فهرست سیاه را ویرایش کنید.
برای ویرایش این فایل با استفاده از ویرایشگر Nano میتوانید دستور زیر را اجرا کنید:
sudo nano /usr/sbin/update-rc.d
گرچه بخش آغازین این فایل بیشتر شبیه یک اسکریپت پرل (Perl) است تا یک فهرست سفید؛ اما با اسکرول کردن بیشتر این فایل میتوانید بخشی که به فهرست سفید و فهرست سیاه اختصاص دارد را مشاهده کنید.
اگر سرویسی دارید که میخواهید به فهرست سفید اضافه کنید، ابتدا مطمئن شوید که در بخش فهرست سیاه فایل قرار ندارد. اگر چنین باشد ابتدا از آنجا حذف کنید، سپس یک مدخل جدید ایجاد کرده و صرفاً نام سرویس و در ادامه عبارت «enabled» را در یک خط جدید در بخش فهرست سفید (whitelist) وارد کنید.
پس از انجام ویرایشهای مورد نیاز میتوانید با فشردن کلیدهای Ctrl + O و خروج با دکمههای Ctrl + X تغییرات را ذخیره نمایید. هر گونه تغییراتی که در راهاندازی اولیه سرویسها ایجاد میشود در زمان شروع مجدد بعدی اعمال میشوند.
مرحله چهارم: فعالسازی Kali Rolling
پس از نصب کردن کالی باید منابع ریپازیتری را بررسی کنید تا مطمئن شوید که آدرس صحیحی برای آن تعیین شده است. دستور زیرا را وارد کنید تا بتوانید فایل مربوطه را ویرایش کنید:
sudo nano /etc/apt/sources.list
سپس تأیید کنید که فایل مربوطه شامل خط زیر است و این که به وسیله کاراکتر # در ابتدای خط به صورت توضیح در نیامده است.
deb http://http.kali.org/kali kali-rolling main non-free contrib
پس از این که مطمئن شدید چنین خطی وجود دارد و یا در صورت عدم وجود، آن را به فایل اضافه کردید کلیدهای Ctrl + O و سپس Ctrl + X را بزنید تا تغییرات ذخیره شوند.
پس از بهروزرسانی فایل میتوانید سیستم را نیز بهروز کنید و یا آن را ارتقا دهید. نخست دستور apt-get زیر را اجرا کنید تا ریپازیتریها بهروز شوند.
sudo apt-get update
اگر میخواهید سیستم را به طور کلی ارتقا دهید و نسخه جدیدی از همه نرمافزارهای نصب شده داشته باشید، میتوانید دستور زیر را وارد کنید:
sudo apt-get upgrade
زمانی که ریپازیتریهای شما بهروز شدند و متعاقباً سیستم نیز بهروز شد، میتوانید شروع به نصب نرمافزارهای اضافی برای پیکربندی بیشتر نصب کالی خود بکنید.
nullbyte@kali:~$ sudo nano /etc/apt/sources.list nullbyte@kali:~$ sudo apt-get update Get:1 http://mirrors.ocf.berkley.edu/kali kali-rolling InRelease [30.5 kB] Ign:1 http://mirrors.ocf.berkley.edu/kali kali-rolling InRelease Get:2 http://mirrors.ocf.berkley.edu/kali kali-rolling/main amd64 Packages [16.0 MB] 15% [2 Packages 22.9 kB/16.0 MB 0%]_
مرحله پنجم: سفارشیسازی رابط دسکتاپ
یکی از انتخابهایی که برای سفارشیسازی سیستم وجود دارد، ایجاد تغییر در محیط دسکتاپ بنا به سلیقه شخصی است. این کار میتواند صرفاً مبتنی بر سلیقه بصری یا بر پایه عملکرد، مثلاً تصمیمگیری در خصوص گردش کار بین پنجرهها به صورت چینش پشتهای یا موزاییکی باشد.
ریپازیتری Rolling کالی چند بسته دارد که رابط استاندارد دسکتاپ و نرمافزار مدیریت پنجرهها را ارائه میکند. به عنوان مثال ما بسته XFCE را نصب میکنیم. ابتدا دستور زیرا را اجرا کنید تا فرابسته (meta-package) XFCE4 که شامل اجزای اصلی محیط دسکتاپ است نصب شود.
sudo apt-get install xfce4
پس از نصب شدن XFCE4 به محض شروع به کار مجدد سیستم میتوان از آن استفاده کرد. پس از این که نام کاربری را در صفحه ورود به سیستم وارد میکنید بر روی آیکون چرخ دهنده زیر فیلد رمز عبور کلیک کرده و محیط دسکتاپی که میخواهید استفاده کنید را انتخاب کنید. در این مثال ما از محیط «Xfce Session» استفاده میکنیم.
پس از بوت شدن، سیستم اینک با دسکتاپ انتخاب شده در بخش مدیریت ورود بارگذاری میشود.
یک محیط دسکتاپ جدید علاوه بر گزینههای پیکربندی بیشتری که ارائه میکند در برخی موارد نیز منوی گسترده ابزارهای تست نفوذ را به صورتی که در تصویر زیر میبینید ارائه میکند:
با وجود انتخابهای بیشماری که برای محیطهای دسکتاپ و نرمافزارهای مدیریت پنجرهها مانند GNOME، KDE، XFCE، LXDE، OpenBox، i3 و موارد دیگر وجود دارد؛ امکانات بهبود گردش کار در هر سیستم عامل لینوکسی شامل کالی، عملاً بینهایت است. حتی با وجود این که کالی لینوکس به طور پیشفرض برای استفاده دسکتاپ طراحی نشده است؛ اما پشتیبانی و سازگاری چندگانه ارائه شده با جامعه نرمافزارهای آزاد، بدان معنی است که میتوان آن را به سادگی با موقعیتهای بسیار متنوعی هماهنگ ساخت.
اگر به این نوشته علاقهمند بودید، موارد زیر نیز احتمالاً مورد توجه شما واقع میشوند:
- آموزش مقدماتی سیستم عامل لینوکس (Linux)
- بهترین توزیعهای لینوکس در سال ۲۰۱۸
- ترمینال لینوکس و آنچه برای شروع به کار با آن باید بدانید
- آموزش های شبکه های کامپیوتری
- آموزش لینوکس مقدماتی – ساختار داخلی و ترمینال لینوکس
- دروس مهندسی کامپیوتر
==