یوشا

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

یوشا

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

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی

۳ مطلب با کلمه‌ی کلیدی «hardening» ثبت شده است

۰۵
اسفند

 

OpCache اکستنشنی در PHP هست که برای بهبود پرفورمنس و سرعت پردازش فایلهای PHP ایجاد شده.

این اکستنشن با ذخیره کردن OpCode تولید شده فایلهای PHP در قسمت shared memory حافظه، از بارگذاری و تفسیر مجدد اسکریپت ها در هر درخواست جلوگیری میکنه. و همیشه همون OpCode ذخیره شده رو مصرف میکنه. در نتیجه اسکریپت با سرعت بیشتری پردازش میشه.

در حال حاضر سریعترین، کاملترین و قوی ترین سیستم cache برای PHP اکستنشن opcache هستش که هم optimization و هم caching رو فراهم میکنه.

 

فهرست مندرجات

  • الزامات و نیازمندیها
  • فعالسازی
  • مقایسه OPcache با سایر ابزارهای مشابه
  • نکات
  • تنظیم محیط گرافیکی
  • ابزارهای کمکی در فریمورک ها
  • قابلیت Preloading در PHP 8+
  • رفع مشکلات

  • یوشا آل ایوب
۱۶
اسفند

پارامترهای پیشنهادی جهت Hardening هسته لینوکس توسط cmdline موقع boot-time و توسط sysctl موقع run-time.
 

  • توسط cmdline موقع boot-time:
vga=normal mds=full rodata=on mitigations=auto,nosmt page_alloc.shuffle=1 init_on_alloc=1 init_on_free=1 hardened_usercopy=1 iommu.strict=1 iommu.passthrough=0 randomize_kstack_offset=1 pti=on iommu=force tsx=off vsyscall=xonly vdso32=0 debugfs=on

نکته: این پارامترهارو باید به برنامه bootloader تون بدید:

  • اگر بوت لودر Grub هستش، داخل فایل /boot/grub/grub.cfg و در جلوی متغیر GRUB_CMDLINE_LINUX_DEFAULT باید قرار بگیرن.
  • اگر بوت لودر eLiLo هستش، داخل فایل /boot/EFI<OS>/elilo.conf و در جلوی متغیر append باید قرار بگیرن.

توضیحات و مستندات Kernel command-line parameters

 

  • توسط برنامه sysctl موقع run-time:
sysctl -w net.core.bpf_jit_harden="2"
sysctl -w kernel.dmesg_restrict="1"
sysctl -w kernel.perf_event_paranoid="3"
sysctl -w kernel.kexec_load_disabled="1"
sysctl -w user.max_user_namespaces="0"
sysctl -w dev.tty.ldisc_autoload="0"
sysctl -w kernel.unprivileged_bpf_disabled="1"
sysctl -w kernel.kptr_restrict="2"
sysctl -w dev.tty.legacy_tiocsti="0"
sysctl -w vm.unprivileged_userfaultfd="0"
sysctl -w fs.protected_symlinks="1"
sysctl -w fs.protected_hardlinks="1"
sysctl -w fs.protected_fifos="2"
sysctl -w fs.protected_regular="2"
sysctl -w fs.suid_dumpable="0"
sysctl -w kernel.yama.ptrace_scope="3"
sysctl -w kernel.randomize_va_space="2"

نکته: برای اعمال این تنظیمات به کاربر root یا دسترسی sudo نیاز دارید.

توضیحات مقادیر موجود در /proc/sys

 

Hardening / سخت‌ سازی

Hardening به مجموعه‌ ای از روش‌ ها و تکنیک‌ های امنیتی گفته  میشه که با هدف کاهش سطح حمله (attack surface) و افزایش مقاومت سیستم در برابر تهدیدات امنیتی انجام میشن. در مورد هسته لینوکس، Hardening شامل تنظیم پارامترها، غیرفعال کردن ویژگی‌ های غیرضروری و اعمال محدودیت‌ های امنیتی میشود تا آسیب‌ پذیری‌ های احتمالی به حداقل برسد.

cmdline / پارامترهای راه‌ اندازی

cmdline یا kernel command-line parameters مقادیری هستند که در زمان bootstrap سیستم به هسته لینوکس ارسال میشن. این پارامترها معمولاً در فایل‌ هایی مثل/boot/grub/grub.cfg یا /boot/EFI/<OS>/elilo.conf یا از طریق bootloader تنظیم میشن و رفتار هسته رو هنگام راه‌ اندازی کنترل می کنن.

sysctl / پارامترهای کنترل

sysctl (system control) مکانیزمی در لینوکس برای تنظیم پارامترهای هسته در زمان اجرا (runtime) میباشد. این پارامترها از طریق فایل‌ های مجازی در مسیر /proc/sys/ قابل دسترسی و تغییر هستن و معمولاً برای بهینه‌ سازی عملکرد و افزایش امنیت سیستم استفاده میشوند.

  • یوشا آل ایوب
۰۱
شهریور

- کانفیگ hardening شده هسته Linux برای محیط production x64:

(قبل از کامپایل هسته Linux بهمین شکل پارامترهارو داخل فایل .config موجود در سورس لینوکس تون اعمال کنید)

  • یوشا آل ایوب