این مطلب برای زمانی است که Cisco ISE فقط یک اسم روی فاکتور یا یک گزینه داخل دیتاسنتر نیست؛ قرار است در یک شبکه واقعی کار کند، تغییر بگیرد، لاگ بدهد، و وقتی مشکلی پیش آمد مسیر عیب‌یابی آن روشن باشد. موضوع اصلی این نوشته طراحی Cisco ISE برای مدیریت دسترسی ادمین‌ها به تجهیزات شبکه است؛ یعنی همان بخشی که اگر از اول درست طراحی نشود، بعداً خودش را به شکل قطعی، خطای مبهم، یا تغییرات پرریسک نشان می‌دهد.

در کار عملی منطق مهم‌تر از حفظ کردن چند دستور است. باید بدانیم در شبکه‌ای با روتر، سوئیچ، فایروال یا Juniper/Cisco که ادمین‌ها نباید همه دسترسی یکسان داشته باشند چه چیزی ورودی تصمیم است، چه چیزی خروجی تصمیم است، و کدام نشانه‌ها می‌گویند مشکل از policy، route، certificate، session، health check یا وابستگی بیرونی آمده است. برای همین این متن را مثل یک چک‌لیست اجرایی نوشته‌ام، نه توضیح تبلیغاتی محصول.

برای دیدن مطالب مرتبط‌تر، صفحه Cisco ISE هم می‌تواند مسیر خوبی برای ادامه مطالعه باشد.

سناریوی واقعی مسئله

سناریوی معمول این است که تیم شبکه یک تغییر ظاهراً ساده می‌دهد: یک policy اضافه می‌شود، یک interface جابه‌جا می‌شود، یک سرویس پشت load balancer قرار می‌گیرد، یا یک مسیر مانیتورینگ/احراز هویت فعال می‌شود. در همان لحظه شاید همه چیز سالم به نظر برسد، اما چند ساعت بعد کاربر می‌گوید بخشی از سرویس کند شده یا بعضی connectionها fail می‌شوند. اینجا اگر فقط به آخرین تغییر نگاه کنیم، احتمالاً علت اصلی را از دست می‌دهیم.

در طراحی Cisco ISE برای مدیریت دسترسی ادمین‌ها به تجهیزات شبکه باید مسیر داده را مرحله به مرحله دید. اول باید معلوم شود packet یا request از کجا وارد می‌شود، با چه identity یا contextی شناخته می‌شود، کدام rule روی آن match می‌شود، بعد از تصمیم امنیتی به کجا می‌رود، و در نهایت سمت مقصد چه پاسخی می‌دهد. این نگاه ساده است، اما جلوی بیشتر عیب‌یابی‌های پراکنده و حدسی را می‌گیرد.

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

قبل از تغییر چه چیزهایی باید ثبت شود؟

قبل از هر اصلاح، snapshot عملیاتی لازم است. منظور فقط backup گرفتن از config نیست. باید بدانیم وضعیت sessionها، hit countها، logها، route table، objectها، certificateها و وضعیت health check در همان لحظه چه بوده است. اگر بعداً تغییر جواب نداد، بدون این snapshot نمی‌شود دقیق برگشت یا فهمید مشکل از کجا شروع شده.

  • تعریف Network Device Group بر اساس نوع و محل تجهیز
  • ساخت policy set جدا برای admin access
  • تست shell profile و command set با کاربر محدود
  • بررسی Live Logs برای success و failure

این موارد شاید بدیهی به نظر برسند، اما در عمل خیلی از downtimeها از همین جا شروع می‌شود: تغییر انجام شده، اما وضعیت قبل از تغییر ثبت نشده است. وقتی وضعیت قبلی نداریم، rollback هم فقط یک حدس خوش‌بینانه است.

روش عیب‌یابی مرحله‌ای

برای Cisco ISE بهتر است عیب‌یابی را از ساده‌ترین لایه شروع کنیم. اول دسترسی پایه و مسیر را ببینیم، بعد سراغ policy و inspection برویم، بعد وابستگی‌های پیشرفته‌تر مثل profile، identity، certificate یا automation را بررسی کنیم. اگر از همان ابتدا سراغ گزینه‌های پیچیده برویم، احتمالاً یک مشکل ساده routing یا object اشتباه را نمی‌بینیم.

من در این نوع کار معمولاً سه سؤال ثابت می‌پرسم: آیا ترافیک به نقطه تصمیم می‌رسد؟ آیا rule درست match می‌شود؟ آیا بعد از تصمیم، مسیر برگشت و state درست است؟ همین سه سؤال برای بیشتر تجهیزات امنیتی و شبکه‌ای جواب می‌دهد، حتی اگر اسم featureها فرق کند.

ISE: Work Centers > Device Administration > Policy Sets
ISE: Operations > TACACS > Live Logs
Device: test aaa group tacacs+ <user> <password> legacy

دستورها و خروجی‌ها باید در همان change record نگهداری شوند. اگر بعداً یک نفر دیگر بخواهد ادامه کار را بگیرد، نباید مجبور شود از صفر بفهمد چه چیزهایی بررسی شده است.

خطاهای رایج

  • قرار دادن همه تجهیزات در یک group عمومی
  • فعال کردن command authorization بدون تست fallback
  • نداشتن local emergency user روی device
  • بی‌توجهی به تفاوت TACACS و RADIUS برای admin command

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

طراحی درست برای محیط production

در محیط production، اینکه ISE فقط authentication بدهد یا authorization و accounting دستورات هم فعال شود باید از قبل مشخص باشد. یعنی تیم بداند اگر تست اول fail شد چه کاری می‌کند، اگر فقط بخشی از کاربران مشکل داشتند چه چیزی را جدا می‌کند، و اگر rollback لازم شد دقیقاً کدام object یا policy برمی‌گردد. طراحی خوب فقط دیاگرام نیست؛ طراحی خوب یعنی تصمیم‌های روز حادثه از قبل آماده باشند.

برای طراحی Cisco ISE برای مدیریت دسترسی ادمین‌ها به تجهیزات شبکه بهتر است naming هم جدی گرفته شود. اسم object، rule، profile و monitor باید طوری باشد که شش ماه بعد هم قابل فهم باشد. اسم‌های کوتاه و مبهم شاید زمان ایجاد سریع‌تر باشند، اما هزینه عیب‌یابی را بالا می‌برند. وقتی policy زیاد می‌شود، naming ضعیف خودش به یک ریسک امنیتی تبدیل می‌شود.

موضوع دیگر logging است. لاگ زیاد بدون معنا کمک نمی‌کند؛ لاگ کم هم تیم را کور می‌کند. باید مشخص باشد برای چه decisionهایی log لازم داریم، کدام logها فقط noise تولید می‌کنند، و کدام رویدادها باید به مانیتورینگ یا SIEM بروند. در Cisco ISE این تنظیم اگر درست انجام شود، هم troubleshooting را سریع‌تر می‌کند و هم ردپای تغییرات را نگه می‌دارد.

چک‌لیست اجرا

  1. اول device groupها را تمیز بساز
  2. policy set را از دسترسی کاربران عادی جدا کن
  3. برای هر role shell profile مشخص بده
  4. command set را با دستورهای واقعی تست کن
  5. Live Logs را بخشی از تحویل کار کن

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

تحویل کار به تیم بعدی

Cisco ISE وقتی برای admin access ارزش دارد که فقط بگوید چه کسی login کرد نه؛ باید بگوید چه کسی چه دستوری را مجاز یا غیرمجاز اجرا کرد. بدون Live Logs و accounting، بخش مهم داستان گم می‌شود.

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

اگر این موضوع در شبکه شما درگیر چند محصول یا چند تیم است، بهتر است قبل از تغییر نهایی یک جدول مسئولیت هم داشته باشید: مالک policy، مالک route، مالک application، مالک certificate، و کسی که decision نهایی rollback را می‌گیرد. نبودن همین مالکیت‌ها معمولاً زمان حل مشکل را چند برابر می‌کند.

علیرضا عربیان

مشاور و مدرس امنیت شبکه، متخصص FortiGate، FortiWeb و F5 BIG-IP در زیرساخت‌های سازمانی.

مشاهده همه مقالات ←

دیدگاه بگذارید