Uzun işləmə müddəti yalnız onu sübut edir ki, başlanğıc demonun o anda malik olduğu imtiyazlarla uğurlu olub. Burada əhəmiyyətli olan nasazlıqlar sonra gəlir: yeni müştəri qoşulur, ləğv siyahısı dəyişdirilir, köməkçi proqram fayl yazmalı olur. Bunların hər biri imtiyazsız hesab tərəfindən edilən yeni açılışdır və öz icazə sualı, öz xəta mesajı var. Üç qərar işləməyə davam edən konfiqurasiyanı növbəti hadisədə uğursuz olanından ayırır.

Erkən yüklənəni sonra açılandan ayırın

Deskriptor açıq fayl təsvirinə tutacaqdır və giriş rejimi həmin təsvir yaradılanda təyin edilib. Sonradan proses istifadəçisini dəyişmək tutacağı bağlamır; buna görə root kimi oxunmuş açar faylı imtiyaz azaldıqdan sonra da işləyir. Rejim də dəyişmir: oxumaq üçün açılmış tutacaq yazıla bilən olmur və yazıla bilən tutacaq yalnız hesab yol üzərindəki hüquqlarını itirdiyi üçün ləğv edilmir. Bu iki fakt bu hesabatlardakı qəribə davranışın çoxunu izah edir.

Digər yarısı yaddaşdır. Demon sertifikatı emal edib, emal olunmuş materialı saxlayıb faylı bağlaya bilər; istifadədə qalan fayl deyil, məlumatdır. Buna görə davam edən trafik nə deskriptorun açıq olduğunu, nə də yol adının əlçatan olduğunu sübut edir. Yalnız onu sübut edir ki, cari sessiya üçün lazım olan material əvvəlki bir anda əldə edilib.

Sonrakı açılış başqa əməliyyatdır. Cari etimadnamələr, cari təhlükəsizlik konteksti və cari mount görünüşü altında işləyir, ona görə yükləmə zamanı oxuna bilən yol növbəti qoşulmada rədd edilə bilər. Rotasiya tələ qurur: eyni yol adı üzərinə yeni fayl yazmaq mövcud deskriptoru köhnə obyektə bağlı qoyur, buna görə yenidən yükləmə uğurlu görünə bilər, halbuki demon hələ əvvəlki məzmunu istifadə edir. Rotasiyanın qüvvəyə mindiyinə inanmadan əvvəl prosesin saxladığı inode-u diskdəki ilə müqayisə edin.

Üç işləmə oxunuşunu və hər birinin nə vaxt baş verdiyini adlandırın

Üç resurs adətən inisiallaşdırmadan çox sonra açılır və fərqli anlarda uğursuz olur. Müştəriyə xas konfiqurasiya faylı həmin müştəri qoşulanda oxunur, buna görə digərləri davam edərkən bir istifadəçi üçün poza bilər. Ləğv məlumatı peer autentifikasiyası zamanı və fayl dəyişdirildikdə yenidən nəzərdən keçirilir. Müvəqqəti qovluğa yalnız skript və ya plugin nəsə yazanda toxunulur.

Üçünün heç biri başlanğıc yoluna aid deyil, buna görə həftələrlə sağlam olan server növbəti qoşulmada uğursuz ola bilər. Kateqoriya həm də düzəlişin sahibini adlandırır: ilk ikisi demon hesabı altında konfiqurasiya üzərində oxuma icazəsidir, üçüncüsü isə dar məqsədli yazıla bilən yerdir.

Path reopened laterWhat triggers the openFirst sign when it fails
Client configuration fileA connection for that client identityOne client rejected while others connect
Revocation dataPeer authentication, including after replacementRevoked and valid peers both refused
Script or plugin temporary directoryA helper needs to create a fileThe helper exits with a path error

persist-key insanların çoxunun güman etdiyindən daha dar suala cavab verir. O sənədləşdirilmiş SIGUSR1 və ping-restart sıfırlamaları boyunca açar faylını açıq saxlayır, və CCD faylları, ləğv məlumatı, köməkçi icra faylları və ya tam proses yenidən başlatması üçün heç nə etmir. Onlar hələ də öz açılış yolları ilə, o anda işləyən hesab altında gedir.

Hesabı və onun həqiqətən gördüyü görünüşü təsdiqləyin

Unit faylına güvənmək əvəzinə işləyən demondan hansı hesabdan istifadə etdiyini soruşun, sonra cavabı unitin təyin etdiyi ilə müqayisə edin. Uyğunsuzluq həll edilməli ilk məsələdir, çünki hər sonrakı icazə yoxlaması prosesin həqiqətən kim olduğu kimi işləyir. Sonra yolu bir-bir komponent üzrə addımlayın; keçid hər səviyyədə qiymətləndirilir, buna görə oxunmayan qovluq içindəki oxuna bilən fayl yenə oxunmazdır. Son fayl rejimi ilk deyil, son sualdır.

Ad məkanları və xidmət sandboxları sahiblik və rejim bitlərinin təsvir etmədiyi sərhədlər əlavə edir. Shellinizdə görünən yol chroot, mount ad məkanı və ya ev qovluqlarını gizlədən unit içində olmaya və ya yalnız oxuna bilə bilər. Təhlükəsizlik modulları daha bir qat əlavə edir, buna görə oxuna bilən görünən fayl açılarkən yenə rədd edilə bilər.

ps -o user:12,pid,args -C openvpn
systemctl show -p User -p Group -p ProtectHome -p RootDirectory [email protected]
sudo -u openvpn namei -l /etc/openvpn/ccd/alice

Administrator shellində uğurlu oxunuş o birləşmiş şərtlərin heç birini yoxlamır. Yoxlamanı demon hesabı ilə, eyni ad məkanı və sandbox altında aparın, ya da nəticənin serveri deyil, shellinizi təsvir etdiyini qəbul edin. Üçüncü əmr həmin testin ucuz variantıdır: hər komponentin rejimini çap edir və demon hesabının keçə bilmədiyi ilk komponentdə uğursuz olur.

İşləmə yazısını öz qovluğuna verin

Oxuma inventarın yalnız yarısıdır. Köməkçi skript status faylı yaratmalı ola bilər, plugin öz konfiqurasiyasının yanında vəziyyət yazmalı ola bilər və bu yazılar konfiqurasiya ağacını yazıla bilən etməklə örtülmür. Konkret qovluğa funksiyasının ehtiyac duyduğu yazma icazəsini verin, izah edə biləcəyiniz sahib və rejimlə. Yalnız oxunan hər şey üçün yalnız oxuma girişinə üstünlük verin.

Şəxsi açarın icazələrini siyasət fayllarından ayrı saxlayın. Sıfırlamadan sonra yenidən oxunmalı olan açarın tələbi hər qoşulmada oxunan müştəri faylından fərqlidir və hər ikisi üçün bir icazəli rejim problemin istədiyindən çox giriş verir. Dar sahibliyə malik ayrılmış demon hesabı geniş qrupdan daha asan audit edilir. Açar sıfırlamalardan sonra da qalmalı olduqda, persist-key qovluğu genişləndirmək əvəzinə yenidən oxunuşu aradan qaldırır.

Reproduksiya edə bildiyiniz hadisədən qərar verin

Canlı tunel kodun bir yolunu sübut edir. Faylı tələb edən hadisə sizi maraqlandıran açılışı örtən yeganə testdir: yeni müştəri qoşulması, dəyişdirilmiş ləğv faylı, icazə verilmiş yumşaq sıfırlama və ya planlaşdırılmış yenidən başlatma. Hadisəni seçin, işlədin və sonuncu deyil, ilk xətanı saxlayın.

Yumşaq sıfırlama üçün bir siqnal və unitin jurnalı açarın yenidən oxunub-oxunmadığını göstərir. Siqnalı göndərin, sonra unitin yazdığı son sətirləri oxuyun:

systemctl kill -s SIGUSR1 [email protected]
journalctl -u [email protected] -n 40 --no-pager

İmtiyazlar azaldığı üçün kompromis edilmiş demonun artıq fayl dəyişdirə bilmədiyi qənaətinə gəlməyin. Onun hələ nə edə biləcəyi qalan etimadnamələrdən, imkanlardan, yaza bildiyi qovluqlardan və hələ saxladığı yazıla bilən deskriptorlardan asılıdır. İmtiyaz azaldılması səlahiyyəti daraldır və işləmə açılışlarının inventarı bunun nə qədər olduğunu göstərir. Bu sərhədi konfiqurasiyanın yanında yazın ki, növbəti şəxs onu yenidən kəşf etməsin.

Əlaqəli məqalələr