آموزشامنیت و حریم خصوصی در اینترنت

درس ۳۸ از ۴۸، شبکه و اینترنت، حدود ۲۲ دقیقه خواندن

امنیت و حریم خصوصی لینوکس

جواب کوتاه

لینوکس هم بدافزار و حمله داره، فقط راه رسیدنش فرق می‌کنه. طبق سندهای رسمی اوبونتو، مهم‌ترین کارها این‌هان: سیستم رو مرتب به‌روز کنید (روی اوبونتو، به‌روزرسانی امنیتی خودکار به‌طور پیش‌فرض روزی یه بار نصب می‌شه)؛ از نسخه‌ای استفاده کنید که هنوز پشتیبانی می‌شه (LTS پنج سال، و با Ubuntu Pro که برای استفاده‌ی شخصی رایگانه، ده سال)؛ با کاربر عادی کار کنید و sudo رو فقط برای کار مدیریتی بزنید؛ برنامه رو از مخزن رسمی بگیرید، نه از مخزن یا اسکریپت ناشناس؛ موقع نصب، رمزگذاری دیسک رو روشن کنید؛ و فایروال ufw رو روشن کنید.

اسکریپتی از یه انجمن

مثلا فرض کنید یه برنامه روی لینوکس کار نمی‌کنه، و توی یه انجمن یکی نوشته «این یه خط رو بزنید، درست می‌شه». یه خط طولانیه که با sudo شروع می‌شه، یه چیزی رو از یه سایت دانلود می‌کنه و همون لحظه اجرا می‌کنه. رمزتون رو می‌زنید، چند خط متن رد می‌شه، و برنامه درست می‌شه. ولی اون اسکریپت، با کلید کل سیستم، هر کار دیگه‌ای هم که می‌خواست، می‌تونست بکنه؛ و شما نمی‌دونید کرده یا نه.

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

لینوکس ویروس می‌گیره؟

«آیا لینوکس ویروس می‌گیره» و «چرا لینوکس ویروسی نمی‌شه» از پرتکرارترین جستجوهای این موضوعه. جواب کوتاه: آره، لینوکس هم بدافزار، حمله و «آسیب‌پذیری» (Vulnerability)، یعنی یه ایراد توی برنامه که خلافکار می‌تونه ازش سوءاستفاده کنه، داره. یه نشونه‌ی ساده‌ش: صفحه‌ی امنیت دبیان هر روز «اطلاعیه‌ی امنیتی» (Debian Security Advisory یا DSA) منتشر می‌کنه؛ همین امروز که این درس رو نوشتیم، چند تا اطلاعیه برای برنامه‌های مختلف اومده بود. هر کدوم یعنی یه در که پیدا شد و بسته شد.

ولی بیشتر حمله‌ها به لینوکس، به سرورها و دستگاه‌هاییه که به اینترنت وصلن و درست تنظیم نشدن یا به‌روز نیستن، نه به یه لپ‌تاپ خونگی. برای یه کاربر دسکتاپ، خطر اصلی همون داستان اوله: چیزی که خودمون با دست خودمون نصب یا اجرا می‌کنیم.

چرا امن‌تر شناخته می‌شه

«امنیت لینوکس نسبت به ویندوز» یه سوال همیشگیه. چند دلیل واقعی هست که از سندهای رسمی اوبونتو و دبیان در میاد. اول، حساب مدیر کل، که اسمش root‌ه، به‌طور پیش‌فرض بسته‌ست و کارهای روزمره با یه کاربر عادی انجام می‌شه؛ پس یه برنامه‌ی مخرب که با دسترسی شما اجرا بشه، به‌خودی‌خود به کل سیستم نمی‌رسه. دوم، برنامه‌ها از «مخزن» (Repository) رسمی میان، نه از هزار تا سایت. سوم، به قول صفحه‌ی امنیت دبیان، «امنیت از راه پنهون‌کاری هیچ‌وقت کار نمی‌کنه»؛ کد بازه و آسیب‌پذیری‌ها عمومی گفته و زود درست می‌شن.

ولی «امن‌تر» به معنی «بی‌نیاز از مراقبت» نیست. لینوکسی که سال‌ها به‌روز نشده، یا هر اسکریپتی رو با sudo اجرا می‌کنه، از یه ویندوز به‌روز و درست تنظیم‌شده امن‌تر نیست. سیستم‌عامل امن، سیستم‌عامل به‌روز با کاربر هوشیاره؛ درس ویندوز و مک هم همینو گفتن.

آنتی‌ویروس لازمه؟

«آیا لینوکس به آنتی‌ویروس نیاز داره» هم زیاد جستجو می‌شه. توی فهرست «پیشنهادهای امنیتی» رسمی اوبونتو، آنتی‌ویروس نیست؛ پیشنهادها به‌روز نگه داشتن سیستم، پاک کردن برنامه‌های بی‌مصرف، دوری از مخزن‌های شخص ثالث، کمترین دسترسی، و فایروال‌ان. یعنی روی لینوکس دسکتاپ، دفاع اصلی اینه که چیز ناشناس نصب و اجرا نکنید و سیستم به‌روز باشه. ما هم برنامه‌ی آنتی‌ویروس پولی معرفی نمی‌کنیم.

root کجاست

لینوکس از اول برای چند کاربر ساخته شده. هر کاربر فقط به فایل‌های خودش دسترسی داره، و یه کاربر ویژه به اسم root، یعنی «ریشه»، به همه‌چیز. سند مدیریت کاربرها‌ی اوبونتو می‌گه سازنده‌های اوبونتو تصمیم گرفتن حساب root رو توی همه‌ی نصب‌ها به‌طور پیش‌فرض ببندن: پاک نشده، ولی رمزی بهش داده شده که با هیچ رمزی جور نمی‌شه، پس نمی‌شه مستقیم باهاش وارد شد.

اگه root بسته‌ست، کارهای مدیریتی چطور انجام می‌شن؟ با sudo، که بخش بعدی می‌گه. سند «پیشنهادهای امنیتی» اوبونتو اسم این فکر رو «اصل کمترین دسترسی» (Principle of least privilege) گذاشته: حساب‌هایی بسازید که تا جای ممکن دسترسی کمتری دارن، و از sudo فقط برای کار مدیریتی استفاده کنید. مثلا مثل آپارتمانی که هر کسی کلید واحد خودش رو داره و کلید کل ساختمون پیش هیچ‌کس نیست. سند اوبونتو یه دستور هم برای باز کردن root داره، ولی این کار، برای یه کاربر معمولی، فقط همون قفل رو برمی‌داره.

sudo یعنی چی

«sudo مخفف چیه» از جستجوهای پرتکراره. طبق سند اوبونتو، sudo کوتاه‌شده‌ی superuser do، یعنی «به جای ابرکاربر انجام بده»، و ابزاریه که با اون یه کاربر مجاز، دسترسی خودش رو موقتا بالا می‌بره، با رمز خودش، بی اینکه رمز root رو بدونه. همون سند می‌گه این کار «پاسخ‌گویی» (Accountability) هم میاره: معلومه کدوم کاربر چه کار مدیریتی کرده. هر کاربری که توی گروه sudo باشه، می‌تونه این کار رو بکنه؛ پس به هر کسی که از کامپیوتر استفاده می‌کنه، دسترسی sudo ندید.

یه نکته‌ی تازه هم از همون سند: از اوبونتو 25.10، sudo یه پیاده‌سازی تازه به اسم sudo-rs داره که با زبان Rust نوشته شده، و سند می‌گه برای بیشتر آدم‌ها تغییرش دیده نمی‌شه. نکته‌ی مهم برای امنیت ثابته: هر بار که sudo رمز می‌خواد، یعنی کاری که می‌کنید به کل سیستم دست می‌زنه. اون لحظه یه بار دیگه به دستوری که زدید نگاه کنید.

دستورهای خطرناک

«sudo rm -rf چیه» هم یه جستجوی رایجه، و جوابش این درس رو خلاصه می‌کنه: rm یعنی پاک کردن، -rf یعنی همه‌ی پوشه‌ها و زیرپوشه‌ها، بی پرسیدن؛ و sudo یعنی با دسترسی کل سیستم. یه اشتباه کوچیک توی مسیری که بعدش میاد، می‌تونه کل فایل‌ها رو پاک کنه.

قانون ساده‌ش: هیچ دستوری رو که نمی‌فهمید، با sudo نزنید؛ مخصوصا دستوری که یه چیزی رو از اینترنت دانلود می‌کنه و همون لحظه اجرا می‌کنه. اگه یه آموزش این رو خواست، اول فایل رو دانلود کنید، بخونیدش، یا دست‌کم مطمئن بشید از سایت رسمی همون برنامه‌ست. درس مک گفت اپل چسبوندن دستور ناشناس توی ترمینال رو جزو کلاهبرداری‌های رایج آورده؛ روی لینوکس هم همون ترفنده.

مخزن رسمی

«مخزن» (Repository) روی لینوکس یه جور فروشگاه برنامه‌ست، که سازنده‌ی توزیع نگهش می‌داره؛ برنامه‌ها اونجا بسته‌بندی، امضا و به‌روز می‌شن. روی اوبونتو و دبیان، با sudo apt install و اسم برنامه، یا از برنامه‌ی نصب نرم‌افزار خود دسکتاپ، از همین مخزن نصب می‌کنید.

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

یه جزئیات دیگه از همون سند: مخزن اوبونتو چند بخش داره. برنامه‌های بخش Main رو خود تیم امنیت اوبونتو پنج سال برای LTS به‌روز می‌کنه؛ برنامه‌های بخش Universe، که خیلی بیشترن، بی Ubuntu Pro «فقط پشتیبانی جامعه» دارن. یعنی حتی توی مخزن رسمی هم، همه‌ی برنامه‌ها یه اندازه مراقبت نمی‌شن؛ بخش Ubuntu Pro این درس همینو درست می‌کنه.

مخزن و بسته‌ی بیرونی

سند «پیشنهادهای امنیتی» اوبونتو صاف می‌گه: از «مخزن‌های شخص ثالث» (Third-party repositories) دوری کنید، و اگه لازمه، اول خطرهاش رو بفهمید. چرا؟ اضافه کردن یه مخزن یعنی به سازنده‌ش اجازه می‌دید هر بار که سیستم رو به‌روز می‌کنید، با دسترسی root روی سیستم شما برنامه نصب یا عوض کنه. اگه اون مخزن هک بشه یا صاحبش عوض بشه، همون اجازه دست کس دیگه‌ست.

یه نکته‌ی غافلگیرکننده هم از سند «به‌روزرسانی خودکار» اوبونتو: فقط اضافه کردن یه مخزن تازه، باعث نمی‌شه به‌روزرسانی خودکار، برنامه‌های اون مخزن رو هم به‌روز کنه. پس برنامه‌ای که از یه مخزن بیرونی گرفتید، ممکنه خیلی بیشتر از چیزی که فکر می‌کنید کهنه بمونه. برنامه‌های خیلی شناخته‌شده، مثل مرورگرها، گاهی مخزن رسمی خودشون رو دارن؛ اون فرق داره با یه مخزن که یه آدم ناشناس توی یه انجمن پیشنهاد داده.

AppArmor

اوبونتو یه قفل دیگه هم داره که بیشتر آدم‌ها نمی‌بیننش: AppArmor. سند امنیت اوبونتو می‌گه مدل قدیمی دسترسی لینوکس «کنترل دسترسی اختیاری» (Discretionary Access Control یا DAC)‌ه: هر کاربر یا برنامه، به چیزهایی دسترسی داره که صاحبشون اجازه داده. AppArmor یه لایه‌ی دیگه اضافه می‌کنه به اسم «کنترل دسترسی اجباری» (Mandatory Access Control یا MAC): برای هر برنامه یه «پروفایل» نوشته می‌شه که می‌گه دقیقا به کدوم فایل‌ها و کارها دست بزنه، و برنامه، حتی اگه کاربر بخواد، بیشتر از اون نمی‌تونه.

مثال خود سند: یه قانون که می‌گه یه فایل فقط خونده بشه و هیچ‌وقت عوض نشه. اگه یه برنامه‌ی محافظت‌شده با AppArmor هک بشه، خلافکار توی همون جعبه‌ی برنامه گیر می‌کنه. طبق همون سند، AppArmor فناوری پایه‌ی امنیت اوبونتو و همین‌طور بسته‌های Snap‌ه. روی اوبونتو پیش‌فرض روشنه؛ کاری لازم نیست، فقط خاموشش نکنید.

به‌روزرسانی

«دستور آپدیت اوبونتو» از جستجوهای همیشگیه. طبق سند «پیشنهادهای امنیتی» اوبونتو، این دستور رو هر چند وقت یه بار بزنید:

sudo apt update && sudo apt upgrade

اولی، apt update، فهرست برنامه‌های تازه رو از مخزن می‌گیره؛ دومی، apt upgrade، اون‌ها رو نصب می‌کنه. روی اوبونتو دسکتاپ، طبق سند امنیت اوبونتو، لازم نیست حتما ترمینال باز کنید: وقتی به‌روزرسانی بیاد، یه اعلان می‌بینید، و برنامه‌ی Software Updater اون رو نصب می‌کنه. سند همین‌طور می‌گه به‌روزرسانی‌های امنیتی اوبونتو معمولا امکان تازه نمیارن و فقط در رو می‌بندن، تا سیستم پایدار بمونه؛ پس ترسی از خراب شدن نداشته باشید.

«آپدیت اوبونتو ۲۰ به ۲۲» هم سوال رایجیه: این یه چیز دیگه‌ست، رفتن به یه نسخه‌ی تازه‌تر، که بخش «هر نسخه تا کی» می‌گه چرا مهمه.

چرا شماره‌ی نسخه قدیمی می‌مونه

یه چیز که خیلی‌ها رو گیج می‌کنه: برنامه‌ای که روی سایت سازنده‌ش نسخه‌ی ۵ شده، روی لینوکس شما هنوز نسخه‌ی ۳‌ه، و فکر می‌کنید پس آسیب‌پذیره. سند امنیت اوبونتو و سوال‌های رایج امنیتی دبیان هر دو همینو جواب دادن: اوبونتو و دبیان توزیع «نسخه‌ثابت» (Fixed-release)‌ان؛ به جای اینکه برنامه رو به نسخه‌ی تازه ببرن، فقط همون تیکه‌ی کدی که در رو می‌بنده رو به نسخه‌ی قدیمی منتقل می‌کنن، که بهش می‌گن «انتقال به عقب» (Backport).

دلیلش رو دبیان گفته: آدم‌ها به رفتار دقیق یه نسخه تکیه کردن، و هر تغییر، ممکنه سیستم کسی رو خراب کنه؛ پس وصله‌ی امنیتی باید کمترین تغییر ممکن باشه. نتیجه‌ش برای شما: عدد نسخه‌ی قدیمی به معنی ناامن بودن نیست. طبق همون سوال‌ها، برای فهمیدن اینکه نسخه‌ی شما وصله‌شده‌ست، می‌شه «تغییرات» (Changelog) بسته رو نگاه کرد، یا عدد دقیق نسخه رو با عددی که توی اطلاعیه‌ی امنیتی نوشته شده، مقایسه کرد.

پشت هر به‌روزرسانی امنیتی

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

یه نکته‌ی مهم هم از همون سوال‌ها: این مراقبت مال نسخه‌ی «پایدار» (Stable) دبیانه. امنیت نسخه‌ی «ناپایدار» (Unstable) بیشتر دست نگه‌دارنده‌های بسته‌هاست، و نسخه‌ی «آزمایشی» (Testing) وصله‌ها رو دست‌کم دو روز دیرتر، و گاهی خیلی دیرتر، می‌گیره. دبیان صاف می‌گه اگه یه سیستم امن و پایدار می‌خواید، روی Stable بمونید.

به‌روزرسانی خودکار

خبر خوب: طبق سند «به‌روزرسانی خودکار» اوبونتو، اوبونتو به‌روزرسانی‌های امنیتی رو خودکار و بی دخالت شما نصب می‌کنه. این کار ابزاری به اسم unattended-upgrades، یعنی «به‌روزرسانی بی‌مراقب»، می‌کنه، که به‌طور پیش‌فرض نصبه و روزی یه بار اجرا می‌شه. اگه به هر دلیلی نصب نبود، سند می‌گه:

sudo apt install unattended-upgrades

روی دسکتاپ، تنظیمش توی برنامه‌ی Software & Updates‌ه، که طبق سند امنیت اوبونتو، اعلان‌ها و به‌روزرسانی خودکار رو اونجا می‌شه تعیین کرد. سند به‌روزرسانی خودکار هم می‌گه از اوبونتو 24.04 LTS، بعد از به‌روزرسانی، سرویس‌هایی که لازمه دوباره راه‌اندازی بشن، خودکار ری‌استارت می‌شن. صفحه‌ی امنیت دبیان هم همین ابزار رو برای به‌روز موندن پیشنهاد می‌کنه. پس اگه هیچ کاری نکنید، به‌روزرسانی امنیتی می‌رسه؛ فقط مطمئن بشید کسی خاموشش نکرده.

هر نسخه تا کی

به‌روزرسانی خودکار فقط تا وقتی به‌روزرسانی میاد، کار می‌کنه. هر نسخه‌ی اوبونتو یه «دوره‌ی پشتیبانی» داره، و بعدش دیگه وصله نمی‌گیره؛ همون حرفی که درس ویندوز درباره‌ی ویندوز ۱۰ گفت. جدول رسمی سند امنیت اوبونتو:

  • نسخه‌ی میانی۹ ماه
  • LTS۵ سال
  • LTS با Ubuntu Pro۱۰ سال؛ برای استفاده‌ی شخصی رایگان

«نسخه‌ی میانی» (Interim)، مثل 25.10، فقط ۹ ماه پشتیبانی داره؛ «پشتیبانی بلندمدت» (Long Term Support یا LTS)، مثل 24.04 یا 26.04، که کنار عددش LTS نوشته شده، ۵ سال برای بخش Main. برای یه کامپیوتر شخصی که می‌خواید سال‌ها بی دردسر کار کنه، LTS بهتره. برای فهمیدن نسخه‌تون، توی ترمینال بزنید lsb_release -a؛ اگه دوره‌ش تموم شده، سند «پیشنهادهای امنیتی» می‌گه به آخرین نسخه برید.

Ubuntu Pro

Ubuntu Pro یه اشتراک از Canonical، شرکت سازنده‌ی اوبونتوئه، و طبق صفحه‌ی رسمیش، «همیشه برای استفاده‌ی شخصی رایگانه»؛ سند «پیشنهادهای امنیتی» اوبونتو هم می‌گه برای استفاده‌ی شخصی تا ۵ دستگاه رایگانه. دو کار مهمش برای امنیت: «نگهداری امنیتی تمدیدشده» (Expanded Security Maintenance یا ESM)، که پشتیبانی LTS رو از ۵ سال به ۱۰ سال می‌رسونه و بخش Universe رو هم پوشش می‌ده؛ و Livepatch. «هسته» (Kernel) قلب لینوکسه، و معمولا وصله‌ی هسته فقط با ری‌استارت اثر می‌کنه؛ و خیلی‌ها ری‌استارت رو عقب می‌ندازن. طبق صفحه‌ی رسمی Livepatch، وقتی یه آسیب‌پذیری «بحرانی» یا «شدید» توی هسته پیدا می‌شه، Livepatch وصله‌ش رو، همون‌طور که سیستم روشنه، روی هسته‌ی در حال کار می‌ذاره، و بعد از فعال شدن، وصله‌ها خودکار می‌رسن. یعنی فاصله‌ی بین پیدا شدن در و بسته شدنش، کوتاه‌تر می‌شه. سند اوبونتو مخصوصا برای کسایی که نسخه‌ی قدیمی‌تر دارن، پیشنهادش می‌کنه، و طبق سند به‌روزرسانی خودکار، وقتی فعال باشه، به‌روزرسانی‌های ESM هم خودکار نصب می‌شن.

رمزگذاری دیسک

«رمزگذاری کامل دیسک» (Full Disk Encryption یا FDE)، طبق سند امنیت اوبونتو، یعنی همه‌ی داده‌های دیسک، یا بخش‌هایی که انتخاب کردید، وقتی کامپیوتر خاموشه رمزگذاری‌شده‌ان؛ اگه لپ‌تاپ دزدیده بشه یا گم بشه، کسی بی رمز به داده‌ها نمی‌رسه. همون کاری که بیت‌لاکر روی ویندوز و FileVault روی مک می‌کنن.

اوبونتو این کار رو با LUKS، کوتاه‌شده‌ی Linux Unified Key Setup، یعنی «راه‌اندازی یکپارچه‌ی کلید لینوکس»، انجام می‌ده، و طبق همون سند، به‌طور پیش‌فرض از AES-256 استفاده می‌کنه؛ همون رمزنگاری که درس رمزنگاری گفت. سند می‌گه موقع نصب اوبونتو، خود نصب‌کننده می‌پرسه رمزگذاری کامل دیسک رو روشن کنید یا نه. پس مهم‌ترین لحظه، همون لحظه‌ی نصبه؛ اگه دارید اوبونتو نصب می‌کنید، روشنش کنید.

رمز دیسک

وقتی رمزگذاری رو روشن می‌کنید، یه «عبارت رمز» (Passphrase) می‌خواد که هر بار موقع روشن شدن کامپیوتر می‌زنید. سند امنیت اوبونتو توضیح می‌ده که این رمز مستقیم کلید رمزگذاری نیست: از یه «تابع ساخت کلید» (Key Derivation Function یا KDF)، که توی نسخه‌ی تازه‌ی LUKS اسمش Argon2‌ه، رد می‌شه و کلید واقعی دیسک رو باز می‌کنه. نتیجه‌ی مهمش رو خود سند گفته: توی رمزگذاری با رمز، امنیت داده‌ها خیلی به قدرت همون رمز بستگی داره.

پس یه عبارت بلند، مثل چند کلمه‌ی بی‌ربط کنار هم، که درس رمز عبور گفت. و یادتون باشه، اگه این رمز گم بشه، هیچ راه برگشتی برای داده‌ها نیست؛ جای امنی، مثل مدیر رمز روی یه دستگاه دیگه، نگهش دارید.

راه دیگه، طبق همون سند، TPM‌ه: یه تراشه‌ی امنیتی روی مادربرد که کلیدها رو می‌سازه و نگه می‌داره، و اوبونتو دسکتاپ می‌تونه کلید دیسک رو به اون بسپره. سند می‌گه می‌شه هر دو رو با هم داشت، مثلا چند تا رمز، یا رمز یا TPM.

رمزگذاری پوشه‌ی خونه، یه راه قدیمی

اگه یه آموزش قدیمی دیدید که می‌گه «پوشه‌ی خونه رو رمزگذاری کنید»، این تاریخچه به دردتون می‌خوره. طبق سند امنیت اوبونتو، اوبونتو 8.10 «پوشه‌ی خصوصی رمزگذاری‌شده» (Encrypted Private) رو با ابزاری به اسم eCryptfs آورد، و 9.04 «پوشه‌ی خونه‌ی رمزگذاری‌شده» (Encrypted Home) رو. از اوبونتو 18.04 LTS، این دو دیگه پشتیبانی نمی‌شن و eCryptfs کنار گذاشته‌شده حساب می‌شه. یه ابزار تازه‌تر به اسم fscrypt هست که پوشه‌ها رو رمزگذاری می‌کنه، ولی طبق همون سند، رسما پشتیبانی نمی‌شه. نتیجه رو خود سند گفته: رمزگذاری کامل دیسک با LUKS راه پیشنهادیه و باید بهش اولویت داد.

فایروال ufw

«فایروال لینوکس اوبونتو» یه جستجوی رایجه. طبق سند اوبونتو، ابزار پیش‌فرض فایروال اوبونتو ufw‌ه، کوتاه‌شده‌ی Uncomplicated Firewall، یعنی «فایروال ساده»، که روی ابزارهای فایروال خود هسته‌ی لینوکس سوار می‌شه و کار باهاشون رو آسون می‌کنه. یه نکته‌ی مهم از همون سند: ufw به‌طور پیش‌فرض خاموشه. روشن کردنش یه دستوره:

sudo ufw enable

و دیدن وضعیتش: sudo ufw status. اگه یه برنامه‌ی واقعی لازم داشت از بیرون بهش وصل بشن، مثلا SSH، سند می‌گه با sudo ufw allow 22 فقط همون در رو باز کنید و با deny دوباره ببندید. روی یه لپ‌تاپ معمولی که سرویسی برای بیرون نداره، روشن کردن ufw کافیه.

SSH

SSH، کوتاه‌شده‌ی Secure Shell، یعنی «پوسته‌ی امن»، راه وصل شدن به یه کامپیوتر لینوکسی از راه دوره. سند «پیشنهادهای امنیتی» اوبونتو می‌گه برای دسترسی از راه دور از SSH استفاده کنید، که اوبونتو با OpenSSH فراهم می‌کنه. سند OpenSSH اوبونتو دلیلش رو هم گفته: ابزارهای قدیمی‌تر، مثل telnet، رمز کاربر رو «متن ساده» (Cleartext)، یعنی بی رمزگذاری، می‌فرستادن، و هر کسی وسط راه بود، می‌دیدش. روی یه کامپیوتر خونگی، اگه لازمش ندارید، نصبش نکنید؛ هر سرویسی که از بیرون در باز می‌کنه، یه در بیشتره.

اگه SSH دارید، همون سند به جای رمز، «کلید SSH» (SSH key) رو پیشنهاد می‌کنه: یه «کلید خصوصی» (Private key) که پیش شما می‌مونه، و یه «کلید عمومی» (Public key) که روی کامپیوتر مقصد گذاشته می‌شه؛ همون فکر رمزنگاری کلید عمومی که درس رمزنگاری گفت. سند الگوریتم ed25519 رو پیشنهاد می‌کنه، با ssh-keygen -t ed25519، و موقع ساختن یه «عبارت رمز» برای خود کلید می‌خواد، تا اگه فایل کلید دزدیده شد، بی اون عبارت به کار نیاد. کلید خصوصی رو به هیچ‌کس ندید. سند حتی دومرحله‌ای برای SSH، با کلید سخت‌افزاری FIDO، رو هم گفته؛ درس تایید دومرحله‌ای. و فایروال فقط همون در رو باز بذاره.

قفل صفحه و کاربرها

رمزگذاری دیسک فقط وقتی کامپیوتر خاموشه از داده‌ها محافظت می‌کنه؛ وقتی روشن و باز گذاشتیدش، هر کسی پشتش بشینه، به همه‌چیز می‌رسه. پس قفل خودکار صفحه رو با زمان کوتاه روشن کنید؛ توی Settings دنبال Screen Lock بگردید. اگه چند نفر از یه کامپیوتر استفاده می‌کنن، طبق همون اصل کمترین دسترسی، هر کسی حساب خودش رو داشته باشه و فقط کسی که لازمه، توی گروه sudo باشه.

کمتر یعنی امن‌تر

سند «پیشنهادهای امنیتی» اوبونتو یه پیشنهاد ساده داره که خیلی‌ها فراموشش می‌کنن: برنامه‌هایی که لازم ندارید رو پاک کنید، تا «سطح حمله» (Attack surface)، یعنی تعداد جاهایی که یه خلافکار می‌تونه ازشون وارد بشه، کمتر بشه. هر برنامه یه در احتمالیه؛ برنامه‌ای که سال‌هاست ازش استفاده نکردید، دری‌ه که باز مونده و حواستون بهش نیست. با sudo apt remove و اسم برنامه، یا از برنامه‌ی نصب نرم‌افزار، پاکش کنید.

توزیع‌های دیگه

«امن‌ترین لینوکس» هم زیاد جستجو می‌شه. لینوکس یه سیستم‌عامل نیست، یه خانواده‌ست؛ هر «توزیع» (Distribution)، مثل اوبونتو، دبیان، فدورا یا مینت، یه بسته از همون هسته با برنامه‌ها و تنظیم‌های خودش. فکرهای این درس برای همه‌شون یکیه: به‌روزرسانی، نسخه‌ی پشتیبانی‌شده، کاربر عادی و sudo، مخزن رسمی، رمزگذاری دیسک و فایروال. فقط اسم ابزارها فرق می‌کنه. مثلا دبیان، که اوبونتو روش ساخته شده، هم unattended-upgrades رو پیشنهاد می‌کنه، و اگه بخواید اطلاعیه‌های امنیتیش رو مستقیم بگیرید، فهرست ایمیلی debian-security-announce رو داره.

توزیعی که برای یه کاربر معمولی «امن‌ترین»ه، معمولا توزیعیه که یه تیم امنیتی فعال داره، به‌روزرسانی مرتب می‌ده، و هنوز پشتیبانی می‌شه؛ نه توزیعی که اسمش «امنیتی»ه ولی برای کار روزمره ساخته نشده.

پونزده دقیقه

  1. نسخه رو ببینید (lsb_release -a)؛ هنوز پشتیبانی می‌شه؟
  2. sudo apt update، بعد sudo apt upgrade.
  3. Software & Updates: به‌روزرسانی امنیتی خودکار روشن باشه.
  4. اگه LTS دارید، Ubuntu Pro رایگان برای استفاده‌ی شخصی.
  5. sudo ufw enable، بعد sudo ufw status.
  6. قفل خودکار صفحه با زمان کوتاه.
  7. فهرست مخزن‌های بیرونی و برنامه‌های بی‌مصرف رو ببینید و کم کنید.
  8. نصب بعدی: رمزگذاری کامل دیسک با یه عبارت رمز بلند.

اشتباه‌های رایج

  • «لینوکس ویروس نمی‌گیره، پس به‌روزرسانی مهم نیست.» دبیان هر روز اطلاعیه‌ی امنیتی می‌ده.
  • «یه خط از انجمن رو با sudo زدم.» با کلید کل سیستم، هر کاری می‌تونست بکنه.
  • «رمز root گذاشتم که راحت باشم.» قفلی که اوبونتو عمدا بسته بود رو باز کردید.
  • «یه مخزن از یه وبلاگ اضافه کردم.» به صاحبش اجازه‌ی نصب با root دادید، و به‌روزرسانی خودکار هم نمی‌گیره.
  • «اوبونتوی چند سال پیش رو دارم، کار می‌کنه.» بعد از دوره‌ی پشتیبانی، وصله نمیاد؛ یا نسخه‌ی تازه، یا Ubuntu Pro.
  • «ufw نصبه، پس روشنه.» طبق سند اوبونتو، به‌طور پیش‌فرض خاموشه.

آخرین بررسی سندهای رسمی اوبونتو و دبیان: ۲۴ مهر ۱۴۰۵.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • به‌روزرسانی امنیتی خودکار روشن باشه؛ نسخه‌ی پشتیبانی‌شده.
  • با کاربر عادی کار کنید؛ sudo فقط برای کار مدیریتی.
  • برنامه از مخزن رسمی؛ دستور ناشناس رو با sudo نزنید.
  • رمزگذاری دیسک موقع نصب، با یه رمز قوی.
  • فایروال: sudo ufw enable.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد