بررسی وضعیت دستگاه VPN مسدود نمیکند؟ ابتدا گزارش را دنبال کنید
عامل نقطه پایانی شما وضعیت سالم را گزارش میکند، اما برنامه داخلی هنوز باز میشود. جمعآوریکننده، حکم و مسدودسازی را مرور کنید و سپس رد را با یک درخواست اثبات کنید.
اگر لپتاپی که امضاهای آنتیویروسش هفتهها پیش بهروزرسانی را متوقف کردهاند هنوز میتواند برنامه داخلی شما را باز کند، بهندرت سند سیاست چیزی است که اشکال دارد. سه سامانه جداگانه باید پیش از رد دسترسی توافق کنند: چیزی نقطه پایانی را اندازه میگیرد، چیزی آن اندازهگیری را به حکم اجازه یا رد تبدیل میکند، و چیزی واقعاً ترافیک را میاندازد. وقتی دستگاهی ناسازگار با این حال وارد میشود، دقیقاً یکی از این حلقهها غایب است یا به شواهدی اعتماد میکند که نباید. بررسیهای زیر به همین ترتیب اجرا میشوند و هر کدام یک نقطه توقف دارند.
مسدودسازی آخرین گام است، نه نخستین
احراز هویت و وضعیت دستگاه به پرسشهای متفاوتی پاسخ میدهند. ورود موفق ثابت میکند که یک اعتبارنامه ارائه شده است؛ درباره نرمافزاری که روی همان ماشینِ ارائهکننده اجرا میشود چیزی نمیگوید. همین شکاف توضیح میدهد چرا یک نمایه مشتری کپیشده میتواند نشستی سالمبهنظر را به میزبان ناسالم ببرد.
کار انطباق نقطه پایانی از قبل واژگان این زنجیره را دارد. مدل مرجع NEA در RFC 5209 کار را به جمعآوریکننده، گام ارزیابی و نقطه اجرا تقسیم میکند و صریح میگوید مشتریای که درباره وضعیت خودش دروغ میگوید بیرون از مدل است. این قید از نمودار مهمتر است: ماژول پلتفرم مورد اعتماد یک اندازهگیری خودگزارششده را به واقعیت تبدیل نمیکند.
جمعآوریکننده را درباره دامنه صادق نگه دارید. باید ویژگیهایی را که سیاست شما نام میبرد، روی دستگاهی که درخواست دسترسی دارد، گزارش دهد و کم چیز دیگری. عامل فهرستی که هر بسته نصبشده را میشمارد ابزاری متفاوت از جمعآوریکننده وضعیت است، و تفاوت هم مسئله نگهداری است و هم مسئله دقت. اگر گزارش به یک هویت دستگاه گره نخورد، ارزیاب دارد حدس میزند کدام ماشین را همین حالا تأیید کرده است.
داشبوردی که وضعیت قرمز نشان میدهد کنترل نیست. بپرسید کاربر ردشده هنوز به چه چیزی میرسد: ویکی، اشتراک فایل، درگاه پایگاه داده؟ اصلاح به یک سطح باریک نیاز دارد و هر چیز دیگری پشت مسدودسازی است.
پیش از خواندن قاعده، گزارش را بخوانید
از سرچشمه شروع کنید نه از تیک سبز مشتری. در Windows اندازهگیری محلی از Defender میآید یا از هر محصولی که خودش را در Security Center ثبت کرده باشد، و هر دو بدون کنسول فروشنده خواندنی هستند:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
فرمان دوم یک عدد صحیح به نام productState برمیگرداند. بیتهایش بهشکل سستی مستند شدهاند و فروشندگان پرچمهای فعالسازی و بهروزبودن را متفاوت بستهبندی میکنند، پس آن را تأیید کنید نه تحلیل. بستههای شخص ثالث پس از حذف نصب هم ورودی Security Center را باقی میگذارند و آن درباره نرمافزاری گزارش میدهد که دیگر روی دیسک نیست.
سن همان فیلدی است که مردم از آن میگذرند. مهر زمانی امضا فقط در مقایسه با ساعت ماشینی که ارزیابی را انجام میدهد معنا دارد، پس آن را به یک بازه تبدیل کنید نه اینکه چشمی تخمین بزنید:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
اکنون سیاست یک عدد برای خواندن دارد. اگر قاعده شما 72 ساعت میگوید، همین عددی است که استفاده میکند، و لپتاپی که یک هفته خوابیده بدون اینکه کسی برچسبی را تفسیر کند رد میشود. آستانه را کنار فرمان ثبت کنید، چون وقتی ابزار نقطه پایانی عوض شود این دو از هم فاصله میگیرند.
هر وضعیت دستگاه را به حکم نوشتهشده تبدیل کنید
بیشتر اختلافها درباره وضعیت در واقع اختلاف درباره ردیف ناشناخته است. پیش از نخستین رخداد آن را تصمیم بگیرید، در جدولی که شواهد، حکم و مالک را نام میبرد، تا کسی در کنسول دروازه بداهه عمل نکند.
| Evidence the assessor has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents that fail open under load |
ردیف پایین همان جایی است که محصولها تفاوت میکنند. برخی دروازهها اتصال را رد میکنند و توضیح میدهند چرا؛ برخی دیگر تونل را بالا میآورند و سیاست محدود اعمال میکنند؛ چند تایی هم به آخرین گزارش سالم شناختهشده برمیگردند. فقط دو تای اول قابل دفاعاند و ارزش دارد بیازمایید مال شما کدام را میکند.
هویت و اجازه را هم در خطوط خودشان نگه دارید. لپتاپی که از هر آزمون وضعیت میگذرد باز هم برای برنامه به مجوز انسانی درست نیاز دارد، و گواهی دستگاه مالکیت یک کلید را ثابت میکند نه وضعیت سامانه پروندهها. فشردهکردن این سه در یک boolean همان راهی است که حساب میز پشتیبانی دسترسی دائمی به محیط تولید پیدا میکند.
مسیر اجرا را با یک درخواست بررسی کنید، نه با داشبورد
اجرا ویژگی یک درخواست است، پس آن را با یک درخواست بسنجید. ماشینی ناسازگار را روی تونل بگذارید و همان فراخوانی را بکنید که کاربر واقعی میکند:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
پاسخ 200 از دستگاهی که باید مسدود باشد یعنی تصمیم هرگز به مسیر داده نرسیده است. دو علت معمول: سیاست به گروهی وصل است که حساب آزمایشی هرگز در آن عضو نشده، یا برنامه از مسیری قابل دسترسی است که VPN مالک آن نیست.
نخست فرض مسیریابی را بررسی کنید. اگر نام داخلی به نشانیای حل شود که مشتری از قبل از طریق LAN محلی به آن میرسد، تونل بیاهمیت است و هیچ سیاستی اعمال نمیشود. آن نشانی را با مسیری که دروازه هل میدهد مقایسه کنید. در OpenVPN سیاست هر مشتری در پروندههایی زندگی میکند که با نام مشترک کلید خوردهاند، پس بررسیاش آسان است:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
پروندهای که disable دارد آن مشتری را یکسره قطع میکند، در حالی که خط push "route ..." تنگ میکند که به کجا برسد. هر دو اجرا هستند و هر دو برای کسی که گزارش را اشکالزدایی میکند دیدنیاند.
چهار حالت را روی یک حساب آزمایشی بیازمایید
بررسی نهایی ماتریسی کوچک است، نه مسیری خوش. یک حساب آزمایشی را از چهار وضعیت بگذرانید: جاری، امضای منقضی، حفاظت غیرفعال، عامل نصبشده. برای هر یک حکم را در گزارش ارزیابی، وضعیت HTTP که برنامه برمیگرداند و اینکه صفحه اصلاح بارگذاری شد یا نه ثبت کنید.
foreach ($case in 'current', 'stale', 'disabled', 'absent') {
Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}
دو جزئیات آسان از دست میروند. نخست بازپخش: گزارشی که هنگام سالم بودن ماشین گرفته شده نباید برای نشست بعدی روی همان دستگاه پذیرفته شود، پس دنبال مهر زمانی گرهخورده به اتصال کنونی بگردید. سپس برداشتن: حذف نصب عامل باید همان رد را بدهد که گزارش کهنه میدهد، نه یک عبور پاک، و همین حالتی است که بیشتر وقتها هرگز آزموده نمیشود.
وقتی ماتریس با جدول جور درآمد، سه چیز را به کسی که بعد از شما دروازه را میگرداند بسپارید: فرمانها، آستانه و چهار نتیجه مورد انتظار. همین تحویل خروجی واقعی است، چون طرح وضعیتی که فقط در سند سیاست زندگی میکند نخستین بار که ابزار نقطه پایانی فیلد گزارشیاش را عوض کند از مسیر خارج میشود.