Как да настроите двуфакторна автентификация на Raspberry Pi

Raspberry Pi е навсякъде сега, поради което привлече окото на заплахи и киберпрестъпници. Ще ви покажем как да защитите своя Pi с двуфакторно удостоверяване.

Невероятният Raspberry Pi

В Raspberry Pi е едноплатков компютър. Той стартира в Обединеното кралство през 2012 г. с намерението да накара децата да се занимават, създават и учат код. Първоначалният форм-фактор беше платка с размер на кредитна карта, захранвана от зарядно за телефон.

Той осигурява HDMI изход, USB портове, мрежова свързаност и работи с Linux. По-късните допълнения към линията включват дори по-малки версии, предназначени да бъдат включени в продукти или да работят като безглави системи. Цените варират от $5 за минималистични Пи нула, до $75 за Pi 4 B/8 GB.

Успехът му е невероятен; над 30 милиона от тези малки компютри са продадени по целия свят. Хобистите са правили невероятни и вдъхновяващи неща с тях, включително плаващ един до ръба на пространството и обратно на балон.

Уви, след като една компютърна платформа стане достатъчно разпространена, тя неизбежно привлича вниманието на киберпрестъпниците. Ужасно е да си представим колко Pi използват потребителския акаунт и парола по подразбиране. Ако вашият Pi е обществен и достъпен от интернет от Сигурна обвивка (SSH), трябва да е защитен.

Дори и да нямате ценни данни или софтуер на вашия Pi, трябва да го защитите, защото вашият Pi не е действителната цел – това е просто начин да влезете във вашата мрежа. След като заплахата има опора в мрежа, той ще се насочи към другите устройства, от които всъщност се интересува.

Двуфакторна автентификация

Удостоверяването или получаването на достъп до система изисква един или повече фактори. Факторите са категоризирани по следния начин:

Нещо, което знаете: като парола или -фраза.
Нещо, което имате: Като мобилен телефон, физически жетон или ключ.
Нещо, което сте: Биометрично разчитане, като пръстов отпечатък или сканиране на ретината.

Многофакторното удостоверяване (MFA) изисква парола и един или повече елементи от другите категории. За нашия пример ще използваме парола и мобилен телефон. Мобилният телефон ще работи с приложение за удостоверяване на Google, а Pi ще стартира модул за удостоверяване на Google.

Приложение за мобилен телефон се свързва с вашия Pi чрез сканиране на QR код. Това предава известна начална информация към вашия мобилен телефон от Pi, като гарантира, че техните алгоритми за генериране на числа произвеждат същите кодове едновременно. Кодовете се наричат базирани на време, еднократни пароли (TOTP).

  Премахнете дубликатите от опцията „Отваряне с“ в контекстното меню с десен бутон [OS X]

Когато получи заявка за връзка, вашият Pi генерира код. Използвате приложението за удостоверяване на телефона си, за да видите текущия код, след което вашият Pi ще ви попита за вашата парола и код за удостоверяване. И паролата ви, и TOTP трябва да са правилни, преди да ви бъде разрешено да се свържете.

Конфигуриране на Pi

Ако обикновено използвате SSH към вашия Pi, вероятно това е система без глава, така че ще я конфигурираме през SSH връзка.

Най-безопасно е да направите две SSH връзки: едната да извършва конфигуриране и тестване, а друга да действа като защитна мрежа. По този начин, ако се заключите от вашия Pi, все още ще имате активна втората активна SSH връзка. Промяната на настройките на SSH няма да повлияе на текуща връзка, така че можете да използвате втората, за да отмените всички промени и да коригирате ситуацията.

Ако се случи най-лошото и сте напълно блокирани чрез SSH, все пак ще можете да свържете своя Pi към монитор, клавиатура и мишка и след това да влезете в редовна сесия. Тоест, все още можете да влезете, стига вашето Pi да може да управлява монитор. Ако обаче не може, наистина трябва да поддържате SSH връзката на защитната мрежа отворена, докато не проверите, че двуфакторното удостоверяване работи.

Крайната санкция, разбира се, е да префлаширате операционната система върху micro SD картата на Pi, но нека се опитаме да избегнем това.

Първо, трябва да направим нашите две връзки с Pi. И двете команди приемат следната форма:

ssh [email protected]

Името на това Pi е „куче пазач“, но вместо това ще въведете името си. Ако сте променили потребителското име по подразбиране, използвайте и него; нашето е „пи“.

Не забравяйте, че за безопасност въведете тази команда два пъти в различни терминални прозорци, така че да имате две връзки към вашия Pi. След това минимизирайте един от тях, така че да не е на пътя и да не бъде затворен случайно.

След като се свържете, ще видите поздравителното съобщение. Подканата ще покаже потребителското име (в този случай „pi“) и името на Pi (в този случай „куче пазач“).

Трябва да редактирате файла „sshd_config“. Ще направим това в нано текстовия редактор:

sudo nano /etc/ssh/sshd_config

Превъртете през файла, докато видите следния ред:

ChallengeResponseAuthentication no

Заменете „не“ с „да“.

  Най-добрите флагове на Chrome за активиране за по-добро сърфиране

Натиснете Ctrl+O, за да запазите промените си в nano, и след това натиснете Ctrl+X, за да затворите файла. Използвайте следната команда, за да рестартирате SSH демона:

sudo systemctl restart ssh

Трябва да инсталирате удостоверителя на Google, който е a Включващ се модул за удостоверяване (PAM) библиотека. Приложението (SSH) ще извика Linux PAM интерфейса и интерфейсът намира подходящия PAM модул, за да обслужва типа на удостоверяване, което се иска.

Въведете следното:

sudo apt-get install libpam-google-authenticator

Инсталиране на приложението

Приложението Google Authenticator е достъпно за iPhone и Android, така че просто инсталирайте подходящата версия за вашия мобилен телефон. Можете също да използвате Authy и други приложения, които поддържат този тип код за удостоверяване.

Конфигуриране на двуфакторна автентификация

В акаунта, който ще използвате, когато се свързвате с Pi чрез SSH, изпълнете следната команда (не включвайте префикса sudo):

google-authenticator

Ще бъдете попитани дали искате токените за удостоверяване да бъдат базирани на времето; натиснете Y и след това натиснете Enter.

А Бърз отговор (QR) кодът се генерира, но е кодиран, защото е по-широк от 80-колонния терминален прозорец. Плъзнете прозореца по-широко, за да видите кода.

Също така ще видите някои кодове за сигурност под QR кода. Те се записват във файл, наречен „.google_authenticator“, но може да искате да направите копие от тях сега. Ако някога загубите възможността да получите TOTP (ако загубите мобилния си телефон, например), можете да използвате тези кодове за удостоверяване.

Трябва да отговорите на четири въпроса, първият от които е:

Do you want me to update your "/home/pi/.google_authenticator" file? (y/n)

Натиснете Y и след това натиснете Enter.

Искате ли да актуализирам вашия

Следващият въпрос пита дали искате да предотвратите многократно използване на един и същ код в рамките на 30-секунден прозорец.

Натиснете Y и след това натиснете Enter.

Третият въпрос пита дали искате да разширите прозореца за приемане на TOTP токените.

Натиснете N в отговор на това и след това натиснете Enter.

Последният въпрос е: „Искате ли да активирате ограничаване на скоростта?“

Въведете Y и след това натиснете Enter.

Вие се връщате в командния ред. Ако е необходимо, плъзнете прозореца на терминала по-широко и/или превъртете нагоре в прозореца на терминала, за да можете да видите целия QR код.

На мобилния си телефон отворете приложението за удостоверяване и след това натиснете знака плюс (+) в долния десен ъгъл на екрана. Изберете „Сканиране на QR код“ и след това сканирайте QR кода в прозореца на терминала.

Нов запис ще се появи в приложението за удостоверяване, наречено на името на хоста на Pi, и шестцифрен TOTP код ще бъде посочен под него. Показва се като две групи от по три цифри, за да улесни четенето му, но трябва да го въведете като едно, шестцифрено число.

  Използвайте рейтингите на Rotten Tomatoes, за да намерите филми в Netflix

Анимиран кръг до кода показва колко дълго ще бъде валиден кодът: пълен кръг означава 30 секунди, полукръг означава 15 секунди и т.н.

Свързване на всичко заедно

Имаме още един файл за редактиране. Трябва да кажем на SSH кой PAM модул за удостоверяване да използва:

sudo nano /etc/pam.d/sshd

Въведете следните редове в горната част на файла:

#2FA

auth required pam_google_authenticator.so

Можете също да изберете кога искате да бъдете запитани за TOTP:

След като сте въвели паролата си: Въведете предишните редове под „@include common-auth“, както е показано на изображението по-горе.
Преди да бъдете попитани за вашата парола: Въведете предишните редове над „@include common-auth.“

Обърнете внимание на долните черти (_), използвани в „pam_google_authenticator.so“, а не на тирета (-), които използвахме по-рано с командата apt-get за инсталиране на модула.

Натиснете Ctrl+O, за да запишете промените във файла, и след това натиснете Ctrl+X, за да затворите редактора. Трябва да рестартираме SSH за последен път и тогава сме готови:

sudo systemctl restart ssh

Затворете тази SSH връзка, но оставете другата SSH връзка на мрежата за безопасност да работи, докато не проверим следващата стъпка.

Уверете се, че приложението за удостоверяване е отворено и готово на вашия мобилен телефон и след това отворете нова SSH връзка към Pi:

ssh [email protected]

Трябва да бъдете попитани за вашата парола и след това за кода. Въведете кода от мобилния си телефон без интервали между числата. Подобно на вашата парола, тя не се отразява на екрана.

Ако всичко върви по план, трябва да ви бъде позволено да се свържете с Pi; ако не, използвайте вашата SSH връзка с мрежа за безопасност, за да прегледате предишните стъпки.

По-добре по-безопасно, отколкото за съжаление

Забелязахте ли „r“ в „по-безопасно“ по-горе?

Наистина, сега сте по-безопасни, отколкото преди, когато се свързвате с Raspberry Pi, но нищо никога не е 100 процента безопасно. Има начини за заобикаляне на двуфакторната автентификация. Те разчитат на социално инженерство, атаки човек в средата и човек в крайната точка, смяна на SIM и други усъвършенствани техники, които очевидно няма да описваме тук.

И така, защо да се занимавате с всичко това, ако не е перфектно? Е, по същата причина, поради която заключвате входната си врата, когато си тръгвате, въпреки че има хора, които могат да отварят ключалки – повечето не могат.