ProtectHome TOTP уругуна каршы: VPN кирүү эмне үчүн ишке ашпайт
Туура код урукту ача албаган PAM модулуна жардам бере албайт. drop-in менен жазылуучу абал жолунун ортосунда тандап, анан бирдикти текшериңиз.
Аутентификатор жаңы алты орундуу кодду көрсөтөт, VPN аны четке кагат, ал эми ошол эле кодду өз кабыгыңыздан текшергенде так текшерилет. Ошол ажырым — бүт окуя. Каттоо сырын ача албаган PAM модулу туура эмес кодго окшош катаны кайтарат, ал эми үй каталогдорун жашырган кызмат чөйрөсү мунун кеңири тараган себеби. Кандайдыр бир уруксатты бошотконго чейин үч жагдайдын кайсында экениңизди чечиңиз.
Үч ишке ашпоонун кайсынысы бул?
Биринчиси — модуль такыр окуй албаган сыр. Экинчиси — окуй алган, бирок жаңырта албаган сыр. Үчүнчүсү — чынында туура эмес код, көбүнчө сааттын четтөөсү же кайра колдонулган маани себебинен.
Аларды бир ишке ашпаган аракет үчүн кызмат журналын жана системанын аутентификация журналын окуу менен ажыратыңыз, андан соң плагин кайсы PAM кызматын жүктөй турганын жана ошол кызмат кайсы модуль сабын колдонорун ырастаңыз. Жалпы аутентификация катасынын билдирүүсү аларды ажыратпайт, ийгиликтүү кол менен текшерүү да ажыратпайт, анткени сиздин кабыгыңыз кызматтын чөйрөсү эмес.
Бирдиктин файлдык система көрүнүшү адаттагы күнөөлүү, эгерде тек кызмат гана ишке ашпаса.
systemctl show -p ProtectHome -p ProtectSystem -p ReadWritePaths [email protected]
ls -l /var/lib/vpn-otp/*/.google_authenticator 2>/dev/null | head -n 20А варианты: сырды үйдөн тышкары жылдыруу
Кызмат /home каталогун жашырып, сиз ошол коргоону сактагыңыз келсе, сырды ал көрө турган жерге сактаңыз. Модуль secret= жолун жана файлдык операцияларды аткарган user= эсебин кабыл алат, бул борбордук кампага көптөгөн инсандарга кызмат кылууга мүмкүндүк берет.
Бул — таза вариант жана эң көп камкордукту талап кылат, анткени жалпы кампа бир каталогду ар бир эсептин коопсуздук чегине айландырат.
auth required pam_google_authenticator.so secret=/var/lib/vpn-otp/${USER}/.google_authenticator user=vpn-otpАга ишенүүдөн мурун үч нерсени текшериңиз: эсеп бар, модулдун иш процесси ага өтө алат жана файлдар чектелүү режимдер менен ага таандык. user= менен ~ же үй өзгөрмөсүнүн жолун колдонбоңуз жана жол иштеши үчүн модулдун ээлик текшерүүлөрүн өчүрбөңүз. Сырсөз баскычын жана стектин калганын бузулбай сактаңыз.
Б варианты: файлды калтырып, жол ачуу
Эгер сыр колдонуучунун үйүндө калышы керек болсо, бирдикке хосттогу бардык үйлөрдү ачпастан ошол бир каталогду камтыган көрүнүш керек. drop-in сендбокс кылынган үйдүн астына тар чектелген bind mount кошо алат.
Бул колдонуучу боюнча ээликти модел катары сактайт, бирок сендбокс өзгөргөн сайын каралышы керек болгон бирдик өзгөртүүсүнүн эсебинен.
Эки чекти байкоо оңой. Сендбокс жашырган каталогдун астына кошулган окуу гана жолу аны ачпайды, анткени ата-каталог жөн эле жок. Ал эми модуль абалды жаңыртышы керек болсо, кошуу жазылуучу болушу керек, бул кийинки вариантты оюнга кошот. drop-inди /usr/lib астындагы пакеттелген бирдикти оңдоонун ордуна өзүнчө файл катары жазыңыз, пакет жаңыртуу аны үнсүз жокко чыгарбашы үчүн.
С варианты: сендбоксту сактап, абал жазууларын оңдоо
Сырды окуу — аутентификациянын жарымы гана. Модуль убакыт четтөөсү тууралуу маалыматты, кайталоодон коргоону же эсептегичти кайра жаза алат, ал эми окуу текшерүүсүнөн өткөн файл жазууда дагы эле ишке ашпашы мүмкүн.
Бул ишке ашпоо кийинки аракетте жаман код сыяктуу көрүнөт, бул аракетте эмес, ошондуктан аны сааттын четтөөсү менен чаташтырышат.
Бүт үйдү жазылуучу кылуунун ордуна ага өзүнүн жазылуучу каталогун бериңиз жана сырдын жолун ошол жакка багыттаңыз. Каталогдун ээсин, файлдык системанын бош ордун жана бирдиктин башка жерде жазууларды чектей турганын ырастаңыз. Андан соң катары менен эки кирүүнү текшериңиз, анткени экинчиси жазуу жолун далилдейт, биринчиси тек окууну.
Өзүңүз катары эмес, кызмат катары текшериңиз
Ар бир маанилүү текшерүү бирдиктин сендбоксунда бирдиктин инсаны менен жүрүшү керек.
root катары ийгиликтүү аткарылган буйрук файл бар экенин гана айтат, башка эч нерсе. Чыныгы кызмат аркылуу кирүү модуль сырды окуп, колдонуп жана керектүүсүн кайра жаза аларын айтат.
Акырында, талапты бузулбай сактаңыз. Нөлдүк сырсөз вариантын кошуу, окуу гана каталарын кабыл алуу же сендбоксту алып салуу — баары саясатты өзгөртүү менен симптомду жоготмок. Код сунуштоого милдеттүү колдонуучу сыр жеткиликсиз болгондо да четке кагылышы керек.