За допълнителна сигурност можете да изискате базиран на времето токенен идентификационен код, както и парола, за да влезете в компютъра си с Linux. Това решение използва Google Удостоверител и други приложения на TOTP.
Този процес бе извършен на Ubuntu 14.04 със стандартния Unity desktop и LightDM мениджър за вход, но принципите са едни и същи за повечето Linux дистрибуции и настолни компютри.
По-рано ви показахме как да изисквате Google Authenticator за отдалечен достъп през SSH и този процес е подобен. Това не изисква приложението Google Удостоверител, но работи с всяко съвместимо приложение, което изпълнява схемата за удостоверяване на TOTP, включително Authy.
Както при настройката за SSH достъп, първо трябва да инсталираме съответния софтуер PAM ("pluggable-authentication module"). PAM е система, която ни позволява да свързваме различни видове методи за удостоверяване в система Linux и да ги изискваме.
В Ubuntu следната команда ще инсталира PAM на Google Удостоверител. Отворете прозорец Терминал, въведете следната команда, натиснете Enter и въведете паролата си. Системата ще изтегли PAM от софтуерните хранилища на Linux и ще го инсталира:
sudo apt-get инсталирате libpam-google-authenticator
Другите дистрибуции на Linux би трябвало да имат този пакет достъпен и за лесен монтаж - отворете софтуерните хранилища на Linux дистрибуцията си и го потърсете. В най-лошия сценарий можете да намерите изходния код на PAM модула на GitHub и да го компилирате сами.
Както посочихме преди, това решение не зависи от "обаждането в дома" на сървърите на Google. Той изпълнява стандартния алгоритъм на TOTP и може да се използва дори когато компютърът ви няма достъп до Интернет.
Сега ще трябва да създадете таен ключ за удостоверяване и да го въведете в приложението Google Удостоверител (или подобно приложение) на телефона си. Първо, влезте като потребителски акаунт във вашата Linux система. Отворете терминален прозорец и го пуснете Google Удостоверител команда. Тип ш и следвайте указанията тук. Това ще създаде специален файл в директорията на текущия потребителски акаунт с информацията от Google Удостоверител.
Също така ще преминете през процеса на получаване на този двуфакторен код за потвърждение в приложението Google Удостоверител или подобно приложение TOTP на вашия смартфон. Вашата система може да генерира QR код, който можете да сканирате или да я въведете ръчно.
Не забравяйте да отбележите кодовете за спешни драскотини, които можете да използвате, за да влезете в профила си, ако загубите телефона си.
Проверете този процес за всеки потребителски акаунт, който използва компютъра ви. Например, ако сте единственият човек, който използва компютъра ви, можете просто да го направите веднъж в обикновения потребителски акаунт. Ако имате някой друг, който използва компютъра ви, ще искате да влезете в своя собствена сметка и да генерирате подходящ двуфакторен код за собствена сметка, така че да могат да влязат.
Ето какво нещата стават малко подвижни. Когато обяснихме как да активираме два фактора за влизания в SSH, ние го изисквахме само за влизания в SSH. Това гарантира, че все още можете да влезете локално, ако сте загубили приложението си за удостоверяване или ако нещо се е объркало.
Тъй като ще позволим двуфакторно удостоверяване за локални влизания, има потенциални проблеми тук. Ако нещо се обърка, може да не успеете да влезете в системата. Като имате предвид това, ние ще ви позволим да разрешите това само за графични влизания. Това ви дава авариен люк, ако имате нужда от него.
Винаги можете да активирате удостоверяване в две стъпки само за графични влизания, като прескочите изискването, когато влезете от текстовия промпт. Това означава, че можете лесно да превключите към виртуален терминал, да влезете в него и да върнете промените си, така че Gogole Authenciator няма да се изисква, ако имате проблем.
Разбира се, това отваря дупка в системата ви за удостоверяване, но нападателят с физически достъп до вашата система вече може да я използва. Ето защо двуфакторното удостоверяване е особено ефективно за отдалечено влизане чрез SSH.
Ето как да направите това за Ubuntu, който използва мениджъра за вход в LightDM. Отворете файла LightDM за редактиране с команда като следното:
sudo gedit /etc/pam.d/lightdm
(Не забравяйте, че тези конкретни стъпки ще работят само ако дистрибуцията и работният плот на Линукс използват мениджъра за вход в LightDM.)
Добавете следния ред в края на файла и го запазете:
auth е необходим pam_google_authenticator.so nullok
Bit "nullok" в края казва на системата да позволи на потребителя да влезе, дори ако не са изпълнили командата google-authenticator, за да настроят двуфакторна идентификация. Ако са го настроили, ще трябва да въведат кода за време - baesd - в противен случай няма да го направят. Премахнете "nullok" и потребителските профили, които не са настроили код на Google Удостоверител, просто няма да могат да се регистрират графично.
Следващият път, когато потребител се регистрира графично, ще бъде помолен за паролата си и след това ще бъде подканен за текущия код за потвърждение, показван на телефона си. Ако не въведат кода за потвърждение, няма да им се разреши да влязат.
Процесът трябва да е сравнително сходен за други дистрибуции на Linux и настолни компютри, тъй като повечето обикновени мениджъри на сесии на Linux работят с PAM. Вероятно ще трябва да редактирате друг файл с нещо подобно, за да активирате съответния PAM модул.
По-старите версии на Ubuntu предлагат лесна опция за "криптиране на началната папка", която шифрова цялата ви домашна директория, докато не въведете паролата си. По-конкретно, това използва ecryptfs.Тъй като обаче софтуерът PAM зависи от файла на Google Authenticator, който е запазен в домашната ви директория по подразбиране, криптирането пречи на PAM да чете файла, освен ако не сте сигурни, че е налице в некриптирана форма на системата, преди да влезете в системата. информация за избягване на този проблем, ако все още използвате опциите за скрито криптиране на домашната директория.
Съвременните версии на Ubuntu предлагат криптиране на цял диск, което ще работи добре с горните опции. Не е нужно да правите нищо специално
Тъй като ние просто позволихме това за графични влизания, трябва да бъде лесно да го забраните, ако причинява проблем. Натиснете клавишна комбинация като Ctrl + Alt + F2, за да осъществите достъп до виртуален терминал и да влезете там с вашето потребителско име и парола. След това можете да използвате команда като sudo nano /etc/pam.d/lightdm, за да отворите файла за редактиране в терминален текстов редактор. Използвайте нашето ръководство за Nano, за да премахнете линията и да запазите файла, и ще можете отново да влезете нормално.
Можете също да принудите Google Удостоверител да се изисква за други видове влизания - потенциално дори за всички системни данни - като добавите реда "auth required pam_google_authenticator.so" в други PAM конфигурационни файлове. Бъдете внимателни, ако направите това. И не забравяйте, че може да искате да добавите "nullok", така че потребителите, които не са преминали процеса на настройка, да могат да влязат.
Допълнителна документация за това как да използвате и настройвате този PAM модул може да се намери в README файла на софтуера на GitHub.