کلید VPN شما برای همه قابل خواندن است: چه چیزی را اصلاح کنید
کلید خصوصی باید فقط توسط سرویسی که از آن استفاده میکند خوانده شود و نه کس دیگری. حالت را اصلاح کنید، نسخهها را پیدا کنید و اگر فایل افشا شده کلید را عوض کنید.
اولین نشانه معمولاً یک هشدار است، نه خرابی. یک کلاینت از بارگذاری کلید امتناع میکند چون فایل برای گروه یا همه قابل خواندن است، یا یک بازبینی امنیتی client.key را با حالت 644 در پوشه پروفایلی مییابد که بستههای صادرشده هم دارد. هنوز هیچ چیز خراب نشده، و دقیقاً همین دلیل نادیده گرفتن هشدار است. کلید کار میکند، تونل بالا میآید، و فایل برای هر حساب روی دستگاه قابل خواندن است.
نشانه، هشدار مجوز است، نه قطع سرویس
در یک سیستم شبیه یونیکس، کلید خصوصی باید فقط توسط حسابی که سرویس را اجرا میکند خوانده شود. حالت 600 با مالک درست ترتیب معمول است. حالت 644 یعنی هر کاربر محلی میتواند کلید را کپی کند، و روی میزبان ساخت مشترک این مخاطب واقعی است.
کلاینتهایی که این را بررسی میکنند لطفی به شما میکنند. آنهایی که بررسی نمیکنند مدرکی بر ایمن بودن فایل نیستند، و اتصال موفق چیزی درباره این نمیگوید که چه کس دیگری میتواند موادی را بخواند که آن را ممکن کرده است. هشدار را کل یافته بدانید. دقیق است و پیش از آنکه کسی فایل را کپی کند رسیده است.
حالت را با هویت سرویس هماهنگ کنید
دسترسی فقط برای مالک به کلیدی میخورد که همان مالک استفاده میکند. سرویسی با گروه مشترک عمدی ممکن است ترتیب کنترلشده دیگری لازم داشته باشد، مثل خواندن گروهی روی کلیدی که به حسابی سرویس تعلق دارد. تنظیم کورکورانه همه فایلها روی یک حالت عددی کلاینتهای پشتیبانیشده را میشکند، و chmod -R 777 راهحل هیچ چیز نیست.
پیش از تغییر هر چیزی مالک و حساب سرویس را بررسی کنید. گواهیهای CA عمومی و کلیدهای هویت خصوصی الزامات محرمانگی متفاوتی دارند حتی وقتی در یک پوشهاند، پس حالت بازگشتی روی کل پوشه هر دو را یک شیء واحد میبیند.
ls -l /etc/openvpn/client/
stat -c '%U %G %a %n' /etc/openvpn/client/*.key
id openvpn
روی پلتفرمهای دیگر از مخزن کلید یا مدل کنترل دسترسی مستند استفاده کنید، نه از ترجمه حالتهای یونیکس به حدس. نام فایلی که به private ختم میشود یک برچسب است، نه سازوکار اجرا.
نسخههایی را پیدا کنید که حالت پوشش نمیدهد
ویرایشگرها، آرشیوهای پشتیبان، پروفایلهای صادرشده و بستههای موقت هر کدام میتوانند همان هویت را نگه دارند. آن نسخهها را بر اساس محتوایشان محافظت کنید، چون سختتر کردن فایل اصلی هیچ کاری برای نسخه داخل آرشیو ماه گذشته نمیکند.
عبارت عبور روی فایل کلید برای مواد ذخیرهشده مفید است و انتشار فایل رمزگذاریشده در کنار گذرواژهاش را توجیه نمیکند. مجوزها از شیء فعلی فایلسیستم محافظت میکنند؛ درباره اعتبارنامهای که قبلاً جای دیگری کپی شده چیزی نمیگویند.
پیش از اعلام پایان کار نسخهها را جستجو کنید: grep -rl خط سرصفحه کلید در پوشههای محتمل، و نگاهی به استثناهای پشتیبانگیری. نتیجه معمولاً از فایلی که با آن شروع کردید جالبتر است.
پس از اصلاح، بررسی و تعویض کنید
آزمایش کنید که سرویس مورد نظر هنوز احراز هویت میکند، سپس تأیید کنید که هیچ حساب غیرضروری دسترسی نگرفته است. خروجی تشخیصی را به فراداده محدود کنید، چون چاپ کلید برای اثبات خوانا بودن فایل لازم نیست و مواد را وارد گزارش میکند.
اگر کلید افشا شده، حالت را سخت کنید و سپس اعتبارنامه را جایگزین و قدیمی را باطل کنید. مشخصات POSIX chmod توضیح میدهد هر بیت حالت چه معنایی دارد، که دانستنش پیش از آنکه بازبینی بعدی بخواهد عدد انتخابی را توجیه کنید ارزش دارد.