درس ۱۱ از ۱۲

Firewall در Linux

این درس درباره Firewall در Linux است؛ مسیر را مرحله‌به‌مرحله جلو می‌بریم: اول مفهوم، بعد مشاهده در سیستم واقعی و در آخر عیب‌یابی؛ وقتی درس تمام شد باید بتوانی با systemctl، journalctl، ip، ss، df، free و ps وضعیت این بخش را بررسی کنی و نتیجه را با حالت سالم مقایسه کنی در این درس Linux را از دید یک پشتیبان شبکه بررسی می‌کنیم؛ لازم نیست همه جزئیات سیستم‌عامل را حفظ کنی، اما باید ساختار فایل‌ها، User و Permission، Serviceها، Network و Log را بشناسی؛ هدف این است که قبل از تغییر بدانی کدام Service و فایل درگیر است، از Log شواهد بگیری و تغییر را با حداقل دسترسی و امکان بازگشت انجام بدهی

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

با حوصله بخوان، مثال‌ها را تحلیل کن و تمرین‌ها را انجام بده؛ هدف حفظ کردن تعریف‌ها نیست

nftables پایه مدرن Firewall است

nftables چارچوب مدرن Firewall در Linux است و Ruleهای Filter و NAT می‌توانند بر پایه آن اجرا شوند؛ در Distributionهایی که firewalld یا ufw دارند، این ابزارها ممکن است مدیریت ساده‌تری روی همان لایه Firewall فراهم کنند Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

ufw یا firewalld مدیریت را ساده می‌کنند

ufw و firewalld لایه‌های مدیریتی ساده‌تری برای Firewall هستند؛ Rule نهایی و Zone/Source را بررسی کن و هنگام Remote تغییر دسترسی SSH خودت را حفظ کن Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

Listening Port با Allowed Rule فرق دارد

Listening Port با Allowed Rule فرق دارد Port عدد منطقی داخل TCP یا UDP است که سرویس مقصد را مشخص می‌کند؛ برای تست سرویس باید IP مقصد، پروتکل و Port را با هم بدانیم Port فیزیکی Switch با Port نرم‌افزاری TCP/UDP یکی نیست Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

Rule باید Source را محدود کند

Rule باید Source را محدود کند برای سرویس مدیریتی به‌جای باز کردن Port برای همه، Sourceهای مورد اعتماد یا شبکه مدیریت را محدود کن تا سطح دسترسی کمتر شود Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

تغییر Remote Firewall نیاز Plan دارد

Firewall ترافیک را بر اساس Rule، جهت، پروتکل، Port و آدرس اجازه یا مسدود می‌کند؛ برای عیب‌یابی به‌جای خاموش کردن کامل، Rule و Log مرتبط را بررسی کن Firewall ترافیک را بر اساس سیاست و شرایطی مانند مبدأ، مقصد، پروتکل، Port و وضعیت Connection کنترل می‌کند؛ Ruleها معمولاً به ترتیب ارزیابی می‌شوند و جای Rule می‌تواند نتیجه را عوض کند؛ برای تحلیل مشکل باید مشخص شود Packet در کدام Chain یا جهت حرکت می‌کند، چه Ruleای با آن Match می‌شود و آیا Rule دیگری پیش از آن تصمیم را گرفته است؛ اصل حداقل دسترسی نیز می‌گوید فقط ترافیکی مجاز شود که برای سرویس لازم است در Linux مدیریت سرویس‌ها، فایل‌ها، Userها و شبکه بر پایه ابزارها و فایل‌های پیکربندی مشخص انجام می‌شود؛ systemd وضعیت Serviceها و وابستگی آن‌ها را مدیریت می‌کند و journal می‌تواند رویدادهای Kernel، Service و فرایندهای مختلف را ثبت کند؛ Permissionهای فایل از Owner، Group و Other و بیت‌های دسترسی تشکیل می‌شوند و استفاده از sudo باید کنترل‌شده باشد؛ پیش از تغییر باید مسیر فایل پیکربندی، Service مرتبط و Log همان Service شناخته شود

مثال محیط واقعی

فرض کن در Server Linux مشکلی گزارش شده و احتمال می‌دهی به Firewall در Linux مربوط باشد. قبل از تغییر، وضعیت فعلی را با systemctl، journalctl، ip، ss، df، free و ps بررسی می‌کنی و نتیجه را با یک حالت سالم یا مستند معتبر مقایسه می‌کنی. اگر شواهد فرضیه را تأیید کردند، فقط همان بخش مرتبط را تغییر می‌دهی و بعد همان تست را دوباره اجرا می‌کنی تا مطمئن شوی مشکل واقعاً برطرف شده است

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

این اشتباه‌ها را تکرار نکن

  • Firewall ترافیک را بر اساس Rule، جهت، پروتکل، Port و آدرس اجازه یا مسدود می‌کند؛ برای عیب‌یابی به‌جای خاموش کردن کامل، Rule و Log مرتبط را بررسی کن
  • برای سرویس مدیریتی به‌جای باز کردن Port برای همه، Sourceهای مورد اعتماد یا شبکه مدیریت را محدود کن تا سطح دسترسی کمتر شود
  • تغییر دادن تنظیمات مرتبط با Firewall در Linux قبل از اینکه مطمئن شوی مشکل واقعاً به همین بخش مربوط است
تمرین عملی

حالا خودت انجام بده

  1. در یک نمونه آزمایشی مرتبط با Firewall در Linux، فقط وضعیت فعلی را مشاهده کن و سه نکته‌ای را که برای تشخیص حالت سالم مهم‌اند یادداشت کن
  2. با systemctl، journalctl، ip، ss، df، free و ps وضعیت مرتبط با Firewall در Linux را بدون تغییر بررسی کن، سه داده واقعی جمع کن و توضیح بده هرکدام چه چیزی به تو می‌گویند
  3. یک خطای فرضی مرتبط با Firewall در Linux بنویس و مشخص کن اولین تست کم‌خطر تو چیست و چه نتیجه‌ای فرضیه‌ات را رد می‌کند

نکته‌هایی که باید با خودت ببری

  • nftables پایه مدرن Firewall است
  • ufw یا firewalld مدیریت را ساده می‌کنند
  • Listening Port با Allowed Rule فرق دارد
  • Rule باید Source را محدود کند
  • تغییر Remote Firewall نیاز Plan دارد
  • با root دائمی کار نکن و قبل از ویرایش فایل تنظیمات نسخه برگشت داشته باش
خودسنجی

قبل از رفتن به درس بعد، جواب را برای خودت توضیح بده

این نکته را با یک مثال توضیح بده: nftables پایه مدرن Firewall است. بعد بگو در عمل چطور آن را بررسی می‌کنی.

Firewall ترافیک را بر اساس Rule، جهت، پروتکل، Port و آدرس اجازه یا مسدود می‌کند؛ برای عیب‌یابی به‌جای خاموش کردن کامل، Rule و Log مرتبط را بررسی کن

این نکته را با یک مثال توضیح بده: ufw یا firewalld مدیریت را ساده می‌کنند. بعد بگو در عمل چطور آن را بررسی می‌کنی.

ufw و firewalld لایه‌های مدیریتی ساده‌تری برای Firewall هستند؛ Rule نهایی و Zone/Source را بررسی کن و هنگام Remote تغییر دسترسی SSH خودت را حفظ کن

این نکته را با یک مثال توضیح بده: Listening Port با Allowed Rule فرق دارد. بعد بگو در عمل چطور آن را بررسی می‌کنی.

Port عدد منطقی داخل TCP یا UDP است که سرویس مقصد را مشخص می‌کند؛ برای تست سرویس باید IP مقصد، پروتکل و Port را با هم بدانیم

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

برای ذخیره پیشرفت، دوره را رسمی شروع کن

با ثبت‌نام، تکمیل درس‌ها و نمره آزمون روی حساب ذخیره می‌شود

ثبت‌نام و شروع رسمی