اطلاعیه

بستن
No announcement yet.

چگونه امنیت سیستم عامل لینوکس خود را برقرار کنیم

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    چگونه امنیت سیستم عامل لینوکس خود را برقرار کنیم

    معیار منحصر به فرد امنیت سیستم در اکثر سیستم ها در حقیقت password ها هستند به خصوص در سیستم عامل لینوکس اگر شما پسورد root را بدانید مالک سیستم خواهید بود پسورد ها به عنوان یک ابزار امنیتی برای BIOS, Login, Disk, Application و غیره میباشد.

    سیستم عامل لینوکس به عنوان یکی از سیستم عامل های بسیار امن در مقابل hack یا crack شدن میباشد و در واقعیت هم چنین است در اینجا ما درباره یکسری loop-holes (باگ های امنیتی) و exploit ها بحث خواهیم کرد در طول این پست ما از لینوکس centos به منظور کرک کردن امنیت سیستم مان استفاده میکنیم.

    بعد از ریبوت کردن سرور، در این قسمت یک کلید از کیبرد را به منظور توقف پروسه در Boot سیستم فشار میدهیم و منوی GRUB را در این لحظه خواهیم دید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 13.png مشاهده: 1 حجم: 6.2 کیلو بایت






    کلید ‘e‘ را برای ویرایش و رفتن به خطی که برای start کرنل میباشد (عموما خط دوم) فشار میدهیم :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 31.png مشاهده: 1 حجم: 8.4 کیلو بایت






    اکنون کلید ‘e‘ را برای ویرایش کرنل فشار میدهیم و در پایان خط عدد 1 را اضافه میکنیم (بعد از یک space عدد 1 را اضافه میکنیم) و با این کار force میکنیم که در مد single user استارت شود و بنابراین از وارد شدن به runlevel پیش فرض جلوگیری میکنیم. کلید enter را برای خارج شدن از محیط ویرایش کرنل فشار میدهیم و سپس boot میکنیم. برای boot شما نیاز به فشردن کلید ‘b‘ دارید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 41.png مشاهده: 1 حجم: 4.5 کیلو بایت






    اکنون شما با مد single user لاگین میشوید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 51.png مشاهده: 1 حجم: 6.0 کیلو بایت






    اکنون با استفاده از دستور passwd میتوانیم پسورد root را تغییر دهیم و به محض اینکه شما پسورد root را داشته باشید در حقیقت شما مالک ماشین لینوکس باشید. اکنون شما میتوانید به صفحه گرافیکی برای ویرایش هر چیزی سوییچ کنید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 61.png مشاهده: 1 حجم: 14.3 کیلو بایت






    توجه : در مثال بالا دستور passwd برای شما کار نخواهد کرد و شما هیچ گونه خروجی از ان نخواهید گرفت و این بسیار ساده است یعنی SELinux شما در مد enforcing میباشد و شما باید آن را ابتدا disable کنید و بعد از آن اقدام به تغییر پسورد نمایید. دستور زیر را برای غیر فعال کردن آن اجرا کنید :
    کد PHP:
    # setenforce 0 
    سپس دستور passwd را اجرا کنید و پسورد root را تغییر دهید که دستورات آن قبلا گفته شد.



    سوییچ به X Windows :

    در سیستم های fedora-base از دستور "init 5" و در سیستم های debian-base از دستور "gdm3" استفاده کنید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 71.png مشاهده: 1 حجم: 110.8 کیلو بایت





    دیدید که هک ماشین لینوکس به چه سادگی انجام شد فکر کنید اگر این سناریو را شخص دیگری روی سیستم تان انجام دهد. وحشتناک هست. اکنون یاد میگیریم که چگونه ماشین لینوکس خود را از تغییر در مد single user محافظت کنیم.

    چگونه به سیستم وارد شدیم؟ با استفاده مد single user . بسیار خب در نتیجه باگ همین جا بود وارد شدن به مد single user بدون نیاز به وارد کردن هیچ گونه پسوردی.

    برای رفع این باگ باید روی مد single user پسورد بگذارید که برای این منظور فایل “/etc/rc1.d/S99single” را باز کنید و خط زیر را در آن جستجو کنید :
    کد PHP:
    exec init -t1 s 
    فقط کافیست خط زیر را در بالای خط سرچ شده اضافه کنید و فایل را ذخیره و خارج شوید :
    کد PHP:
    exec sbin/sulogin 
    قبل از اعمال تغییر :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 81.png مشاهده: 1 حجم: 43.0 کیلو بایت






    بعد از اعمال تغییر :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 91.png مشاهده: 1 حجم: 44.8 کیلو بایت






    اکنون قبل از وارد شدن به مد single user از شما پسورد میخواهد اگر مجددا تلاش کنید تا به این مد وارد شوید با پیغام زیر روبه رو خواهید شد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 101.png مشاهده: 1 حجم: 6.0 کیلو بایت







    Hack کردن سیستم Linux خود بدون استفاده از مد Single User :

    اکنون از امنیت سیستم خود احساس بهتری دارید به هر حال به صورت نسبی درست است که شما تا حدودی سیستم تان را امن کردید اگر چه لینوکس شما در حال حاضر نمیتواند از طریق مد single user کرک شود اما همچنان سیستم شما از راه دیگر میتواند هک شود.

    در مرحله بالا ما کرنل را به منظور ورود به مد single user تغییر دادیم در این مرحله نیز قادر خواهیم بود که کرنل را تغییر دهیم البته با یک پارامتر متفاوت که در ادامه خواهیم دید.

    در مرحله ی قبل ما عدد 1 را به عنوان یک پارامتر کرنل اضافه کردیم به هر حال در این قسمت هم میتوانیم ‘init=/bin/bash’ را اضافه و با استفاده از ‘b‘ بوت کنیم :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 111.png مشاهده: 1 حجم: 4.9 کیلو بایت





    و همانطور که میبینید دوباره سیستم تان را هک کردید و به دست آوردن یک prompt کامند کافیست :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 121.png مشاهده: 1 حجم: 8.1 کیلو بایت






    اکنون سعی میکنیم پسورد root را با استفاده از مراحل شبیه به بالا همانطور که در روش اول گفتیم با استفاده از دستور passwd تغییر دهیم. همانند زیر error دریافت خواهید کرد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 131.png مشاهده: 1 حجم: 13.6 کیلو بایت







    علت و راه کار Error بالا :
    • علت : پارتیشن root (اسلش(/)) به صورت read only مانت شده (بعلاوه پسورد قابل خواندن نیست)
    • راه کار : پارتیشن '/' را با پرمیژن Read-Write باید mount کنیم.


    برای مانت کردن پارتیشن '/' با پرمیژن Read-Write دستور زیر را به دقت وارد کنید :
    کد PHP:
    # mount -o remount,rw / 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 14.png مشاهده: 1 حجم: 13.9 کیلو بایت






    اکنون دوباره تلاش کنید تا پسورد root را با استفاده از دستور passwd تغییر دهید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 15.png مشاهده: 1 حجم: 11.6 کیلو بایت






    و در این لحظه باری دیگر سیستم خود را هک کردید. ما به سادگی به سیستم نفوذ کردیم اما در حقیقت اینطور نیست آنچه که نیاز دارید تنظیم با دقت سیستم خودتان است.

    هر 2 شیوه بالا شامل پاس دادن پارامتر به کرنل منجر به هک سیستم میشوند بنابراین اگر ما 2 شیوه بالا را مسدود کنیم لینوکس مان را امن (Secure) کردیم و به آسانی نمیتوان به آن راه یافت به منظور جلوگیری از ویرایش کرنل به هنگام بوت ما باید برای bootloader پسورد بگذاریم. (password protect the grub)
    Lilo یکی از دیگر bootloader های لینوکس هست اما ما در اینجا درباره آن بحث نخواهیم کرد.



    پسورد گذاشتن روی bootloader grub :

    برای پسورد گذاشتن روی bootloader از دستور ‘grub-md5-crypt‘ استفاده میکنیم و پسورد مورد نظر را وارد مینماییم تا در مرحله اول پسورد مان را encrypt کنیم :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 16.png مشاهده: 1 حجم: 8.1 کیلو بایت





    سپس پسورد encrypt شده بالا را به دقت کپی میکنیم تا در مرحله بعد از آن استفاده کنیم. اکنون فایل grub.conf را باز کرده (ممکن است در مسیر /etc/grub.conf باشد) و خط زیر را به آن اضافه میکنیم :
    کد PHP:
    password --md5 $1$t8JvC1$8buXiBsfANd79/X3elp9G1 
    عبارت “$1$t8JvC1$8buXiBsfANd79/X3elp9G1” را با پسورد encrypt شده خودتان که در مرحله قبل ایجاد کردید و آن را به دقت کپی کردید جایگزین کنید.

    فایل grub.conf را بعد از وارد کردن خط بالا ذخیره و از آن خارج شوید :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 17.png مشاهده: 1 حجم: 55.5 کیلو بایت






    اکنون به هنگام boot سعی در تغییر کرنل کنید. همانطور که میبینید همانند زیر پسورد میخواهد :
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: 18.png مشاهده: 1 حجم: 8.2 کیلو بایت






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

    بهتر است بدانید که شما میتوانید با استفاده از مد enforce rescue اقدام به تغییر یا حذف پسورد با استفاده یک bootable image کنید.

    کافیست CD/DVD نصب خود را درون درایو قرار دهید و Rescue Install System را انتخاب کنید یا از هر CD Rescue دیگری استفاده کنید حتی میتوانید از یک Live Linux Distro استفاده کنید هارد را mount کرده و فایل grub.conf را ویرایش و خط مربوط به پسورد را از آن حذف و سپس reboot کنید. سپس مجددا login کنید.

    توجه : در مد Rescue هارد شما تحت ‘/mnt/sysimage‘ مانت میشود :
    کد PHP:
    # chroot /mnt/sysimage
    # vi grub.conf (remove the password line)
    # reboot 
    ممکن است اکنون در ذهن تان سوال ایجاد شود واقعا پایان کار کجاست. باید بگویم :
    • روی bios خود پسورد بگذارید.
    • ترتیب boot سیستم تان را به نحوی تغییر دهید که ابتدا هارد بالا بیاید و سپس به ترتیب (cd/dvd, network, usb)
    • پسورد های خود را به اندازه کافی طولانی و سخت (غیرقابل حدس زدن) انتخاب کنید و به گونه ای باشد که به آسانی آن را به یاد بیاورید.
    • تحت هیچ شرایطی پسورد خود را جایی یادداشت نکنید.
    • در پسورد تان از حرف بزرگ، کوچک، اعداد و کاراکترهای خاص استفاده کنید تا به سختی هک بشوند.


    همچنین توصیه میشود مطالعه کنید :

    5 نمونه از بهترین روش ها برای امنیت و نگهداری سرورهای لینوکس

    فعال کردن احراز هویت دو مرحله ای هنگام لاگین SSH (توسط Google Authenticator)

    ارسال ایمیل هشدار برای ادمین سیستم ها هنگام ssh کردن با یوزر root

    غیرفعال یا فعال کردن دسترسی login یوزر root به SSH

    آموزش SSH کردن بدون پسورد با استفاده از public key در لینوکس

    20 ترفند برای امنیت سرورهای CentOS - بخش 1

    چگونه امنیت سیستم عامل لینوکس خود را برقرار کنیم

    نحوه مقابله با باج افزار ها

    استفاده از Pam_Tally2 برای Lock کردن و Unlock کردن login های Fail شده به SSH



    هدف از این پست تنها اگاه کردن شما از این حقایق و همچنین نحوه امن کردن سیستم تان و همچنین جلوگیری از هک میباشد.

    این مطلب صرفا برای امن کردن سرورهای لینوکسی از attack های فیزیکی مطرح شده و مسئولیت سوء استفاده کنندگان از آن برعهده سایت منطقه لینوکسی نمیباشد.



    با تشکر
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-25-2021, 12:57 AM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X