25 نکته برای بهبود امنیت در لینوکس

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

حفظ یک سیستم در مقابل نفوذ هکرها و کراکرها یک کار چالش برانگیز برای یک مدیر سیستم است. این اولین مقاله ما مربوط به “چگونگی ایمن تر کردن لینوکس” است. در این پست ما 25 راهنما و ترفندهای مفید برای ایمن سازی سیستم لینوکس را توضیح خواهیم داد. امیدوارم راهنمایی ها و ترفندهای زیر به شما در گسترش برخی از سیستم های امن شما کمک کند.

1. امنیت فیزیکی سیستم

پیکربندی BIOS بسیار مهم است برای برقرای امنیت بهتر تمامی boot ها مانند CD/DVDExternal DevicesFloppy Drive را غیر فعال کنید و برای برای BIOS خود یک رمز عبور انتخاب کنید.

2. پارتیشن های دیسک

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

3. کم کردن بسته ها برای کاهش آسیب پذیری

در سیستم شما بسته هایی وجود دارند که شما نیازی به آنها ندارید و از آنها استفاده نمی کنید برای به حداقل رساندن نفوذ پذیری بهتر است تمامی بسته هایی که غیر قابل استفاده هستند حذف و یا غیرفعال شوند. از دستور ‘chkconfig’ برای پیدا کردن سرویس هایی که در سطح دسترسی 3 اجرا می شوند استفاده کنید.

هنگامی که متوجه شدید هر سرویس ناخواسته در حال اجرا است، آنها را با استفاده از دستور زیر غیر فعال کنید.

از بسته مدیریت RPM مانند yum و apt-get برای مشاهده و بررسی تمامی بسته استفاده کنید و بسته هایی که نیاز ندارید را حذف کنید.

4. بررسی پورت های باز

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

5. استفاده از پوسته امن (SSH)

Telnet و rlogin با استفاده از متن ساده، فرمت رمزگذاری نشده است که نقض امنیتی است. SSH یک پروتکل امن است که در هنگام ارتباط با سرور از تکنولوژی رمزگذاری استفاده می کند.

هرگز مستقیما به عنوان ریشه وارد نشیده مگر اینکه لازم باشد. از دستور sudo برای اجرای دستور استفاده کنید. sudo در فایل /etc/sudoers مشخص شده است، بنابراین می توان آن را با ابزار visudo که در ویرایشگر VI باز می شود ویرایش کنید.

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

غیر فعال کردن ورود با کاربر root

دسترسی ورود به کاربران خاص

استفاده از SSHProtocol نسخه 2

6. بروز نگه داشتن سیستم

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

7. بستن Cronjobs

Cron را حتما کنترل کنید و برای کاربران که نیازی به اجرای آن ندارند ببندید و این کار را با استفاده از فایل های به نام /etc/cron.allow و /etc/cron.deny کنترل می شود. برای قفل کردن یک کاربر با استفاده از cron، به سادگی نام کاربر اضافه کردن در cron.deny و اجازه می دهد تا کاربر را به اجرا cron را اضافه کنید، فایل cron.allow. اگر شما می خواهم برای غیر فعال کردن همه کاربران را از با استفاده از cron، اضافه کردن آن “همه” خط به cron.deny فایل.

8. غیرفعال کردن USB

در بعضی موارد پیش می آید که بایستی USB را برای کاربران غیرفعال کنیم و استفاده از آن را از کاربران بگیریم. برای این کار فایلی در مسیر /etc/modprobe.d/no-usb ایجاد کنید و خط زیر را در آن قرار دهید.

9. فعال کردن SELinux

Security-Enhanced Linux (SELinux) یک کنترل دسترسی اجباری ارائه شده در هسته است. غیر فعال کردن SELinux به معنای حذف امنیت از سیستم است. قبل از از غیرفعال کردنبیشتر درباره این موضوع فکر کنید.

SELinux شامل سه حالت اساسی عملیات است

  • Enforcing: این حالت پیش فرض است که سیاست امنیتی SELinux را در دستگاه فعال و اجرا می کند.
  • Premissive: در این حالت، SELinux نمی خواهد سیاست امنیتی را در سیستم اجرا کند، تنها اقدامات هشدار دهنده و ورودی را اعمال می کند. این حالت در حل کردن مسائل مرتبط با SELinux بسیار مفید است.
  • Disabled: غیرفعال کردن SELinux

شما می توانید وضعیت فعلی SELinux را از خط فرمان با استفاده از دستورات ‘system-config-selinux’، ‘getenforce’ یا ‘sestatus’ مشاهده کنید.

اگر آن غیر فعال باشد، SELinux را با استفاده از دستور زیر فعال کنید.

همچنین می توانید از فایل “/etc/selinux/config” مدیریت کنید که در آن شما می توانید آن را فعال یا غیر فعال کنید.

10. حذف بسته های میزکار KDE/GNOME

در سرور های عملیاتی نیازی به اجرای دسکتاپ X Window مانند KDE یا GNOME نیست. شما می توانید آنها را حذف یا غیر فعال کنید تا امنیت سرور و عملکرد افزایش یابد. برای غیرفعال کردن فقط کافیست سطح اجرایی را در فایل ‘/etc/inittab’ به 3 تغییر دهید. اگر می خواهید آن را از سیستم حذف کنید، از دستور زیر استفاده کنید.

11. غیرفعال کردن IPv6

اگر از پروتکل IPv6 استفاده نمی کنید پس بهتر است آن را غیرفعال کنید. به فایل پیکربندی شبکه بروید و خطوط زیر را برای غیرفعال کردن آن اضافه کنید.

12. محدودکردن کاربران برای استفاده از رمزعبورهای قدیمی

اگر می خواهید کاربران را از استفاده از کلمه عبور قدیمی منع کنید این کار بسیار مفید است. فایل رمز عبور قدیمی در /etc/security/opasswd قرار دارد. این فایل را می توان با استفاده از ماژول PAM بدست آورد.

فایل ‘/etc/pam.d/system-auth‘ در سیستم عامل های RHEL / CentOS / Fedora را باز کنید.

در سیستم های Ubuntu/Debian/Linux Mint فایل ‘/etc/pam.d/common-password‘ را بایستی ویرایش کنید.

خط زیر را در قسمت auth اضافه کنید.

در قسمت password خط زیر را برای اجازه ندادن به کاربر برای استفاده از 5 رمزعبور آخر اضافه کنید.

12. بررسی اتقضای رمزعبور کاربران

در لینوکس، گذرواژه های کاربر در فایل /etc/shadow در فرمت رمزگذاری ذخیره می شوند. برای بررسی تاریخ انقضای کاربر، باید از دستور chage استفاده کنید. این دستور اطلاعات مربوط به جزئیات انقضای رمز عبور را با آخرین تاریخ تغییر رمز عبور نمایش می دهد. این اطلاعات توسط کاربر برای تغییر رمز عبور خود استفاده می شود.

برای تغییر تاریخ انقضا، از دستور زیر استفاده کنید.

  • M: حداکثر تعداد روزها را تنظیم کنید
  • m: حداقل تعداد روزها را تنظیم کنید
  • W: تعداد روزهای هشدار را تنظیم کنید

14. فعال و غیرفعال کردن کاربر

ویژگی قفل و باز کردن بسیار مفید است، به جای اینکه آنها را از سیستم حذف کنید، میتوانید آن را برای یک هفته یا یک ماه قفل کنید. برای قفل کردن یک کاربر خاص، می توانید از دستور زیر استفاده کنید.

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

برای باز کردن یا فعال کردن دسترسی به حساب قفل شده، از فرمان استفاده کنید. این کار باعث حذف (!) رشته با رمز عبور رمز شده می شود.

15. استفاده از رمزعبور های قوی

تعدادی از کاربران از کلمه عبور نرم و یا ضعیف استفاده می کنند و رمز عبور آنها ممکن است با حملات ساده هک شود. ماژول pam_cracklib در پشته ی ماژول PAM (Modules Authentication Pluggable) موجود است که می خواهد گذرواژه های قوی کاربر را تنظیم کند. فایل زیر را با ویرایشگر باز کنید.

و اضافه کردن خط با استفاده از پارامترهای اعتبار به عنوان (lcredit، ucredit، dcredit و / یا ocredit به ترتیب پایین تر، حروف بزرگ، رقمی و غیره)

16. فعال کردن IPtables

به شدت توصیه می شود که فایروال لینوکس را فعال کنید تا از دسترسی غیر مجاز به سرورهایتان محافظت شود. قوانین در فیلترها را برای بسته های ورودی، خروجی و حمل و نقل اعمال کنید. ما می توانیم آدرس منبع و مقصد را مشخص کنیم تا در شماره پورت udp / tcp خاص اجازه داده شود و انکار شود.

17. غیرفعال کردن Ctrl+Alt+Delete در inittab

در بیشتر توزیع های لینوکس، با فشار دادن کلید CTRL-ALT-DELETE، سیستم شما را مجددا راه اندازی می کند. بنابراین، ایده خوبی نیست که این گزینه حداقل در سرورهای مهم و عملیاتی فعال باشد. این در فایل
/etc/inittab‘ تعریف شده است، اگر شما دقیقا در آن فایل نگاه کنید. خط به طور پیش فرض از نظر خارج نشده است ما باید آن را بیان کنیم این سیگنال مخصوص دنباله کلید خاص می خواهد یک سیستم را خاموش کند.

18. بررسی کاربران بدون رمزعبور

هر حساب دارای یک رمز خالی به معنی آن است که برای دسترسی غیر مجاز به هر کسی در وب باز شده است و این یک سرور امنیتی است. بنابراین، شما باید مطمئن شوید که تمام رمزهای عبور قوی و دسترسی مجاز ندارید. حساب های رمز عبور خالی خطرات امنیتی هستند و به آسانی قابل هک می باشند. برای بررسی اینکه آیا هر حساب با رمز عبور خالی وجود دارد، از دستور زیر استفاده کنید.

19. نمایش بنر SSH قبل از اتصال

همیشه یک ایده خوب برای تأیید هویت SSH است. برای تنظیم چنین آگهی ها مقاله زیر را بخوانید.
محافظت از اتصال از راه دور با SSH وMOTD تابلوی پیغام

20. بررسی و مانیتور فعالیت های کاربران

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

دو ابزار مفید به نام psacct و acct وجود دارد که برای نظارت بر فرایندها در پس زمینه سیستم استفاده می شود. MySQL، SSH، FTP، و غیره. برای اطلاعات بیشتر در مورد نصب، پیکربندی و استفاده، از آدرس زیر دیدن کنید.
مانیتورینگ فعالیت های کاربران با psacct و acct

21. بررسی Log ها به صورت مرتب

در زیر لیست معمولی نام فایل و استفاده Log ها در لینوکس است:

  • /var/log/message کل سیستم های ورودی و یا فعالیت های فعال فعلی در دسترس هستند.
  • /var/log/auth.log لاگ های احرازهویت ها
  • /var/log/kern.log لاگ های کرنل
  • /var/log/cron.log لاگ های Cron
  • /var/log/maillog لاگ های ایمیل ها
  • /var/log/boot.log لاگ های بوت سیستم
  • /var/log/mysqld.log لاگ های MySQL
  • /var/log/secure لاگ هویت ها
  • /var/log/utmp or /var/log/wtmp لاگ های ورود به سیستم
  • /var/log/yum.log لاگ های مدیریت بسته ها

22. اهمیت فایل های پشتیبان

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

23. توسعه رابط شبکه (NIC Bonding)

دو روش برای bonding رابط شبکه وجود دارد که بایستی آن را در تنظیمات کارت شبکه اضافه کرد.

mode=0 – Round Robin
mode=1 – Active and Backup

Bonding NIC به ما کمک می کند که از دست رفتن یک ارتباط تنها جلوگیری کنیم. در این کار ما دو یا چند کارت شبکه را به عنوان یک کارت شبکه به سیستم معرفی می کنیم که همگی از یک آدرس IP استفاده می کنند و هنگامی که یکی از کارت شبکه ها از کار بیفتد دیگری بدون توقف شروع به کار می کند.
ساخت شبکه Bonding در لینوکس

24. دسترسی فقط خواندنی برای دایرکتوری /boot

هسته لینوکس و فایل های مرتبط آن در دایرکتوری /boot است که به طور پیش فرض به عنوان خواندن و نوشتن است. تغییر آن به خواندن تنها خطر تغییر غیر مجاز فایل های بوت بحرانی را کاهش می دهد. برای انجام این کار، فایل “/etc/fstab” را باز کنید.

خط زیر را به پایین اضافه کنید، ذخیره کنید و آن را ببندید.

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

25. نادیده گرفتن درخواست های ICMP و Broadcast

خط زیر را در فایل “/etc/sysctl.conf” اضافه کنید تا درخواست ping یا broadcast را نادیده بگیرید.

با اجرای فرمان زیر، تنظیمات یا تغییرات جدید را بارگیری کنید


شاید این مطالب را هم دوست داشته باشید

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

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