لینوکس ۳۰۳؛ شب ۱: اول آزمایشگاه، بعد قهرمانبازی
فهرست نوشته
فرض کن نگهداری یک کتابخانهٔ کوچک آنلاین به تو سپرده شده است. کتابها باید در دسترس باشند، پروندهٔ اعضا محرمانه بماند و کسی نتواند بیسروصدا محتوای آنها را عوض کند. از همین مسئلهٔ ساده، آزمایشگاه امنیت دوره را میسازیم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۳ در ۴۰ شب است.
محیط تمرین: دو VM با Ubuntu Server 24.04 LTS و یک VM با Rocky Linux 9؛ حساب sudo و کنسول Hypervisor.
جایگاه در دوره: هدفهای 335.1 آزمون 303-300.
امنیت را به یک سؤال قابل اندازهگیری تبدیل کن#
سه خواستهٔ کتابخانه، همان محرمانگی، تمامیت و دسترسپذیریاند. تمامیت یعنی تغییر قابل تشخیص باشد؛ دسترسپذیری یعنی کاربر مجاز بتواند در زمان لازم سرویس بگیرد. تهدید، اتفاقی است که یکی از این خواستهها را آسیب میزند؛ آسیبپذیری، ضعفی است که آن اتفاق را ممکن میکند. ریسک به احتمال و پیامد وابسته است، نه تعداد ابزارهای نصبشده.
داراییها را روی کاغذ بنویس: کلید خصوصی، دادهٔ اعضا، سرویس وب، DNS و نسخهٔ پشتیبان. برای هرکدام یک رخداد بد و یک شاهد تشخیص انتخاب کن. «سرور امن است» قابل آزمون نیست؛ «حساب student میتواند وارد شود و ورود مستقیم root رد میشود» قابل آزمون است.
سه ماشین و یک دفترچه#
شبکهٔ Host-only را از شبکهٔ واقعی جدا کن. سرور srv آدرس 192.168.56.10، کلاینت client آدرس 192.168.56.20 و ماشین SELinux به نام mac آدرس 192.168.56.30 دارد. کارت NAT جدا فقط برای دریافت بهروزرسانی است؛ آدرسهای تمرین را روی کارت Host-only تنظیم کن. نام کارت را با ip -br address پیدا کن؛ در درسها enp0s8 یک نام نمونه است.
روی هر ماشین، با کاربر عادی:
mkdir -p ~/lpic303/evidence
cat /etc/os-release
uname -r
ip -br address
ip route
timedatectl status
ss -lntup
این فرمانها نسخه، مسیر ارتباط، ساعت و سرویسهای شنونده را ثبت میکنند. خروجی خودت را در دفترچه نگه دار؛ خروجی آمادهای در این درس ادعای آزمایش واقعی ندارد. یک کاربر آزمایشگاهی به نام student بساز؛ حساب sudo فعلی را برای بازیابی نگه دار. پیش از هر ماژول Snapshot بگیر، نه فقط ابتدای دوره.
آزمون شروع#
از client، سرور را ping کن و SSH را با حسابی که واقعاً ساختهای آزمایش کن. از کنسول سرور هم وارد شو. اگر SSH قطع شود ولی کنسول کار کند، راه برگشت داری. سرویس ناشناس در ss را حذف نکن؛ ابتدا بسته و کاربردش را پیدا کن.
آزمایشهای فایروال و VPN هرکدام از Snapshot پایه شروع میشوند. نصب همزمان چند مدیر فایروال نتیجه را مبهم میکند. کلید، رمز و فایل capture را عمومی منتشر نکن؛ دفترچهٔ قابل اشتراک باید فقط شواهد ضروری و پاکشده داشته باشد.
مأموریت امشب#
یک جدول با سه ستون «دارایی، تهدید، شاهد» برای کتابخانه بساز. سرقت دیسک و سرقت نشست SSH چه کنترلهای متفاوتی میخواهند؟ پاسخ راهنما: رمزنگاری دیسک به دادهٔ خامِ خاموش کمک میکند؛ دسترسی یک نشست مجاز به فایل بازشده، مسئلهٔ دیگری است.
برای شناخت الگوهای رخداد از ماتریس MITRE ATT&CK برای Linux استفاده کن؛ این فهرست جای ارزیابی ریسک آزمایشگاه خودت را نمیگیرد.