اینجوری خیلی خوب میشه چون باز هم توزیع نصب شده فضای کمتری روی دیسک اشغال میکنه !
البته نباید تفاوت زیادی داشته باشه. کرنل اکثر توزیعها حدود 5 تا 7 Mib هست، initramfs هم معمولا بیشتر از 60Mib نمیشه، کل گراب به همراه متعلقاتش هم فکر نکنم بیشتر از 10Mib بشه.
دیگه چه مواردی هست که میتونه روی usb قرار بگیره ؟
دیگه چی رو میخواهید روی فلش usb قرار بدید؟
دقت کنید فلش usb ها معمولا از ارزونترین حافظه flash ساخته شدند و به خاطر همین سرعت خیلی بالایی ندارند، در اکثر مواقع یه هارد سرعت بهتری از اونها داره. به خاطر همین اگه بخواهید چیزهای زیادی روی فلش بنویسید و از اون بخونید، معمولا میبینید که کار خیلی سریع پیش نمیره. این در مورد استاندارد usb3 بود، درمورد usb1 و usb2 که معمولا توی کامپیوترهای قدیمی استفاده میشه، کندتر هم هست.
حتی ممکنه با منتقل کردن کرنل، initramfs و گراب به فلش usb، زمان بوت بیشتر بشه. چون سرعت خوندن و بارگذاری کرنل و initramfs از روی فلش usb به روی رم کمتره.
روی بایوس هستم ولی اگه حوصله داشتید ، کنجکاوم بدون چرا قضیه متفاوته ، اصراری نیست : )
وقتی توی uefi الویت بوت رو تنظیم میکنید، توی یه سری متغیر EFI ذخیره میشن. داخل اون متغیرها نوشته شده که چه فایلی روی چه پارتیشنی و با چه آپشنهایی اجرا بشه.
مشکل اینجاست که اکثر پیادهسازیهای uefi وقتی سعی میکنند یکی از الویتها رو بوت کنند و متوجه میشن که اون فایل یا پارتیشنی که فایل داخلش قرار داره دردسترس نیست، کلا اون الویت رو از توی متغیرهای EFI پاک میکنند.
به همین دلیل اگه شما بوتلودر رو روی فلش و الویت رو هم روی اون تنظیم کرده باشید و کامپیوتر رو روشن کنید بدون اینکه فلش متصل باشه، uefi سعی میکنه بوتلودری که روی فلش هست رو بوت کنه ولی چون فلش وصل نیست، اینکار انجام نمیشه، uefi میره سراغ الویت بعدی و الویتی که پیدا نشده رو از متغیرهای EFI حذف میشه.
اگه بعد از این کامپیوتر رو خاموش، فلش رو وصل و کامپیوتر رو دوباره روشن کنید، بوتلودر شما بالا نمیاد چون الویت اون از متغیرهای EFI پاک شده.
اکثر مادربردهای کامپیوترهای معمولی اینجوری هستند. معمولا مادربردهای سرورها اینجوری عمل نمیکنند.
یه راه برای این مشکل اینه که بوتلودر رو توی مسیر بوتلودر پیشفرض قرار بدید تا uefi اون رو بوت کنه. مسیر بوتلودر پیشفرض برای معماری x86_64 میشه این:
/EFI/Boot/bootx64.efi
مسیر بالا نسبت به ESP (همون EFI system partition) هست. از اونجایی که معمولا ESP با vfat فرمت میشه، بزرگ و بودن اسم فایلها و دایرکتوریها مهم نیست چون vfat به بزرگ و کوچک بودن حروف حساس نیست و مثلا BOOT و boot رو یکی حساب میکنه.
گفتید بله میشه از باقی فضای usb بهره برد ، یعنی افراز بندی میشه دیگه نه ؟
بله فلش رو پارتیشنبندی میکنید.
نمیشه بهشون هم افزود این امکانو ؟
شاید بشه، مطمئن نیستم. میتونید خودتون firmware روی مادربرد رو بخونید، با مهندسی معکوس بفهمید چیکار میکنه و بعد مال خودتون رو پیاده کنسد که قابلیتهای مورد نیاز رو هم داشته باشه. کار سادهای نیست.
اونجور که فهمیدم گویا هیچ غلطی نمیتونیم بکنیم اگر دسترسی فیزیکی داشته باشه مهاجم 😶
در همه اون حالتها لازم بوده مهاجم حداقل ۲ بار بیاد و بره، یه بار برای پیدا کردن رمز و یه بار برای برداشتن اطلاعات. توی بعضی موارد هم لازم بوده ۳ بار بیاد.
رمزنگاری از اینکه یکی بیاد و هارد رو بدزده و بتونه به اطلاعاتش دست پیدا کنه جلوگیری میکنه. (برای دستگاههای همراه مثل لپتاپها یا موبایلها مناسبه)
ممنون میشم توضیح بدین نحوه جدا کردن اون سه مورد رو ؟ فقط یه افزار درست کنم و شاخه boot رو کپی کنم روش مثلا ؟
باید فایل fstab رو هم تغییر بدید. از اونجایی که ممکنه بعد از بوت فلش رو جدا کنید، شاید لازم باشه یه سری قوانین برای apt بنوسید که بروزرسانیهای کرنل رو فقط وقتی انجام بده که پارتیشن مربوط به بوت سوار شده. گراب رو هم باید روی اون فلش نصب کنید. الویت بوت توی bios رو هم باید تغییر بدید.
میدونیم که هکر ها ...
شاید منظور شما از هکر با منظور ما از هکر یکی نباشه. فکر کنم منظور شما در اصل شکننده (cracker) بوده. درباره هکرها میتونید
اینجا یه سری اطلاعات بدست بیارید.
چه مواردی لازمه رعایت بشه برای افزایش امنیت ؟ اونایی که من بخاطر دارم : یه توزیع امن و نامدار ، رمز نگاری داده ها ، ماندن در مخازن ، تور !
خود همین محیط گرافیکی (مخصوصا x11) شامل آسیبپذیریهای مختلف هست. خیلی از این آسیبپذیریها سعی شده که توی wayland برطرف بشن، ولی اگه از x11 استفاده میکنید، بیشتر نگران باشید.
اگه روی wayland، برنامهها رو از طریق xwayland اجرا کنید، بهبودهای امنیتی wayland رو دریافت نمیکنید. دلیلش اینه که وقتی برنامهای از طریق xwayland اجرا میشه، شبیه وقتی هست که مستقیم توی x11 اجرا شده.
معمولا برنامهایی که از wayland پشتیبانی نمیکنند از طریق xwayland اجرا میشن. (که تعدادشون هنوز نسبتا زیاده)
هیچوقت اسکریپتهایی که بهشون اعتماد ندارید رو مستقیم دریافت و اجرا نکنید. اگه مشکل امنیتی ایجاد نکنند، ممکنه تغییراتی توی سیستم یا هوم شما ایجاد کنند که با وضعیت فعلی شما سازگار نباشه، یا چیزهایی رو تغییر بدهند که نمیخواهید عوض بشن. اینکه با دسترسی روت هم اجراش کنید دسترسی اسکریپت برای خرابکاری رو بالا میبرید.
مثلا این یکی از بدترین دستوراتی هست که میتونید اجرا کنید:
bash <(wget -qO- "URL")
یا این یکی که بدتره و با دسترسی روت اجراش میکنه:
sudo su -c 'bash <(wget -qO- "URL")' root
به جای "URL" آدرس جایی که قراره اسکرسپت رو ازش دانلود کنید قرار میگیره.
اگه به اسکریپت اعتماد دارید مثلا خودتون نوشتیدش یا به کسی که اون رو نوشته اعتماد دارید یا محتواش رو خوندید، اونوقت دریافت و اجرای مستقیم اون نباید خیلی نگران کننده باشه.
ولی معمولا گزینه بهتر اینه که اول اسکریپت رو دانلود و بعد اجرا کنید.
اگه یه دیوار آتش هم تنظیم کنید خوبه. ولی معمولا کم پیش میاد کامپیوتر خانگی بهش نیاز پیدا کنه.
چندین پارامتر کرنل هم هستند که با تغییر اونها میشه امنیت سیستم رو بهبود داد. ولی با توجه به شرایط، ممکنه امنیت رو بهبود نده.
میتونید از ابزار lynis استفاده کنید تا ببینید وضعیت امنیت سیستم چجوریه. میتونید تنظیمات اون رو مطابق نیازتون عوض کنید، مییتونید خودتون هم سری test برای اون بنویسید تا چیزهای دیگه رو هم بررسی کنه. lynis توی مخازن دبیان هست پس فکر کنم توی مخازن دوان هم باشه . بسته lynis شامل خود lynis به همراه چیزهای مربوط هست.
بعد از اینکه lynis رو نصب کردید، میتونید دستور زیر رو بزنید تا امنیت سیستم رو بررسی کنه.
sudo lynis audit system
قابلیتهای دیگه هم داره، مثلا میتونه امنیت image های docker رو هم بررسی کنه.
از اونجایی که روی شاخه ناپایدار دوان هستید، بهتره بستههای apt-listchanges و apt-listbugs رو نصب کنید.
اولی وقتی به کار میافته که یه بسته رو با APT نصب یا بروزرسانی میکنید.
قبل از اینکه dpkg شروع به کار کنه، بررسی میکنه که چه چیز خاصی توی اون بستههایی که قراره نصب بشن تغییر کرده.
مثلا اگه رفتار یه آپشن از یه دستور تغییر کرده باشه، این بسته شما رو از اون آگاه میکنه. بعد میتونید انتخاب کنید که عملیات ادامه پیدا کنه یا اینکه کلا متوقف بشه یا اینکه سعی کنه یه جوری اون بسته رو نصب/بروزرسانی نکنه.
دومی وقتی به کار میفته که یه بسته رو با APT نصب، حذف و بروزرسانی میکنید.
این یکی هم مثل بالایی قبل از اینکه dpkg شروع به کار کنه اجرا میشه و به شما باگهای مرتبط با عملیاتی که قراره روی اون بستهها انجام بدید رو نشون میده و میپرسه که چیکار کنه. (عملیات رو کلا متوقف کنه، به عملیات ادامه بده یا سعی کنه یه جوری اون بستهها رو نصب/بروزرسانی/حذف نکنه.)
مثلا اگه دارید یه بسته رو نصب یا بروزرسانی میکنید، apt-listbugs باگهای اون بسته رو نشون میده. (اگه چیز مهمی شناسایی شده باشه)
برای موقع حذف، باگهایی رو به شما نشون میده که بسته موقع حذف شدن داره. مثلا ممکنه اسکریپتهای postrm یه بسته مشکل داشته باشند یا با حذف یه بسته، یه بسته دیگه که بهش وابستگی نداره به مشکل بخوره و اینجور چیزها.
از اونجایی که روی شاخه ناپایدار هستید، احتمال وقوع این چیزها بیشتره.
apt-listbugs به یه سری دلایلی روی اوبونتو کار نمیده و توی مخازن اوبونتو هم نیست. در مورد دوان نمیدونم قضیه چجوری هست.
دقت کنید با نصب این دوتا بسته، زمان نصب، بروزرسانی و حذف همه بستهها از طریق APT بیشتر میشه. دلیلش اینه که اول باید یه سری bugreport و changelog از اینترنت دریافت بشن که اینکار زمان میبره. معمولا حجم این bugreport ها و changelog ها زیاد نیست، ولی حواستون به این موضوع باشه.
اپراتور های اینترنت مثل ایرانسل و شاتل و الباقی ، به اطلاعات ما دسترسی ندارن ؟ اگه دارن راهی برای جلوگیری هست ؟
اگه از پروکسی یا vpn استفاده نمیکنید، میتونند ببینند که به چه جاهایی وصل میشید و از کجا اطلاعات دریافت میکنید.
اینکه بفهمند چه اطلاعاتی میفرستید و میگیرید، بستگی به جایی داره که بهش وصل شدید. اگه ارتباط رمزنگاری شده باشه اونوقت کسی نمیتونه وسط راه بفهمه که چی میفرستید و دریافت میکنید. فقط میبینه که کی فرستاده و قراره به کی برسه.
اکثر وبسایتهای از https استفاده میکنند. https در اصل همون http هست که رمزنگاری بهش اضافه شده.
اگه از پروکسی و vpn استفاده کنید، دو حالت پیش میاد. یا ترافیک رمزنگاری شده هست یا نیست.
در هر دو حالت بقیه میتونند ببینید که یه سری اطلاعات از شما داره به سمت یه جای دیگه (سرور پروکسی یا vpn) حرکت میکنه.
اگه ارتباط رمزنگاری شده باشه، کسی نمیتونه وسط راه (از شما تا سرور پروکسی/vpn) اونها رو ببینه و در نتیجه نمیتونه بفهمه که واقعا دارید از کجا اطلاعات میگیرید. فقط میفهمه که دارید یه سری اطلاعات به سرور پروکسی/vpn میفرستید و دریافت میکنید.
سرور پروکسی/vpn میفهمه که دارید در واقع به کجا وصل میشید، شما رو هم میشناسه.
اینکه بتونه اطلاعات رو هم بخونه، بستگی به جایی داره که بهش وصل میشید. ممکنه از رمزنگاری استفاده شده باشه (مثلا با پروتکل https وصل شدید) در این حالت سرور پروکسی/vpn نمیتونه بفهمه چی دارید میفرستید و میگیرید، کسی هم وسط مسیر (بین سرور پروکسی/vpn و مقصد شما) نمیتونه اطلاعات شما رو ببینه.
اگه برای اتصال به سرور پروکسی/vpn از رمزنگاری استفاده نشده باشه، در ظاهر فقط میبینند که دارید به سرور پروکسی/vpn وصل میشید و یه سری اطلاعات از اونجا دریافت میکنید، اما اگه اطلاعات رو بیشتر بررسی کنند، متوجه میشن که مقصد اصلی شما کجا هست.
اینکه ببینید دقیقا چی دارید به اون مقصد میفرستید، باز هم به خود مقصد بستگی داره، اگه ارتباط شما تا مقصد اصلی رمزنگاری شده باشه (مثلا از https استفاده کردید) اونوقت کسی نمیتونه وسط راه بفهمه که دقیقا چی دارید به مقصد اصلی میفرستید و دریافت میکنید. ولی متوجه میشن که مقصد اصلی کیه.
تا جایی که میدونم، همه vpnها از رمزنگاری استفاده میکنند. در مورد پروکسیها فکر نکنم اینطور باشه، مطمئن نیستم.
سوال بعدیم اینه که خب اون رمز نگاری ها چطوریه ؟ مثلا من یه فلش رو رمزنگاری کنم برای دسترسی به اطلاعاتش باید چیکار کنم ؟
منظورتون رمزنگاری دیسک هست؟ من فرض میکنم اینجوری هست.
رمزنگاری به صورت متقارن انجام میشه. یعنی با یه کلید رمزنگاری و رمزگشایی انجام میشه. کلیدهای رمزنگاری و رمزگشایی یکسان هستند، متفاوت نیستند.
وقتی یه چیزی رو با dm-crypt لینوکس رمزنگاری میکنید، برای دسترسی به اطلاعات داخلش اول باید کلیدی که اطلاعات با اون رمز شدند رو به dm-crypt بدید. بعد از اینکار، یه block device مجازی توی /dev/ درست میشه که با دسترسی به اون میتونید اطلاعات رمزنگاری شده رو بخونید یا چیزهای جدید بنویسید تا رمزنگاری بشن.
نحوه کار اینجوریه که هر چی رو از اون دستگاه مجازی میخونید، اول سعی میشه که اطلاعات رمزنگاری شده روی حافظه پشتی خونده و با کلید رمزگشایی بشن، بعد این اطلاعات در اختیار شما قرار میگیرن.
وقتی یه سری اطلاعات روی اون دستگاه مجازی مینویسید، اول اطلاعات با کلید رمزنگاری میشن و بعد روی اون حافظه پشتی نوشته میشن.
تا وقتی که اطلاعات رو از اون دستگاه مجازی میخونید و روی اون مینویسید، متوجه رمزنگاری نمیشید و لازم نیست نگران اون باشید. میتونید اون دستگاه مجازی رو مثل بقیه block device ها با یه فایلسیستم (مثلا ext4 یا btrfs) فرمت کنید. بعد هم خیلی راحت با دستور mount اون فایلسیستم رو سوار و استفاده کنید.
رمزنگاری زیر اون دستگاه مجازی اتفاق میافته.
اگه از dm-crypt برای رمزنگاری استفاده کنید، نمیتونید اون اطلاعات رمزنگاری شده رو روی ویندوز بخونید. چون bitlocker ویندوز نمیتونه اونها رو شناسایی کنه.
dm-crypt قابلیتی داره که header ها و اینجور چیزها رو به شکلی بنویسه که bitlocker بتونه اونها رو شناسایی و استفاده کنه. نمیدونم این قابلیت چقدر پایداره و چقدر کار میده.
dm-crypt میتونه اطلاعات رمزنگاری شده با bitlocker رو شناسایی و رمزگشایی کنه.
بایوس چجوری میتونه یه usb رمزنگاری شده حاوی گراب و کرنل رو بخونه و گراب رو بوت کنه ؟
اون قسمت اول گراب که توسط bios اجرا میشه به صورت رمزنگاری نشده روی فلش نوشته میشه.
تنها چیزی که من از رمز نگاری میدونم ، رمز نگاری دو کلیده و pgp هست و برنامه gpg
اون رمزنگاری نامتقارن هست که از دوتا کلید استفاده میکنه. اطلاعاتی که با یه کلید رمزنگاری میشن فقط توسط کلید متناظر قابل رمزگشایی هستند.