Mēs nosakām procedūru ārkārtas piekļuvei SSH saimniekiem ar aparatūras atslēgām

Mēs nosakām procedūru ārkārtas piekļuvei SSH saimniekiem ar aparatūras atslēgām

Å ajā ziņojumā mēs izstrādāsim procedÅ«ru ārkārtas piekļuvei SSH saimniekiem, izmantojot aparatÅ«ras droŔības atslēgas bezsaistē. Å Ä« ir tikai viena pieeja, un jÅ«s varat to pielāgot savām vajadzÄ«bām. Mēs saglabāsim SSH sertifikātu iestādi mÅ«su saimniekiem aparatÅ«ras droŔības atslēgā. Å Ä« shēma darbosies gandrÄ«z jebkurā OpenSSH, tostarp SSH ar vienu pierakstÄ«Å”anos.

PriekÅ” kam tas viss? Nu, Ŕī ir pēdējā iespēja. Å Ä«s ir aizmugures durvis, kas ļaus jums piekļūt savam serverim, kad kāda iemesla dēļ nekas cits nedarbojas.

Kāpēc ārkārtas piekļuvei izmantot sertifikātus, nevis publiskās/privātās atslēgas?

  • AtŔķirÄ«bā no publiskajām atslēgām sertifikātiem var bÅ«t ļoti Ä«ss kalpoÅ”anas laiks. Varat Ä£enerēt sertifikātu, kas ir derÄ«gs 1 minÅ«ti vai pat 5 sekundes. Pēc Ŕī perioda sertifikāts kļūs nelietojams jauniem savienojumiem. Tas ir ideāli piemērots ārkārtas piekļuvei.
  • JÅ«s varat izveidot sertifikātu jebkuram kontam savā saimniekdatorā un, ja nepiecieÅ”ams, nosÅ«tÄ«t Ŕādus ā€œvienreizējosā€ sertifikātus kolēģiem.

Kas jums nepiecieŔams

  • AparatÅ«ras droŔības atslēgas, kas atbalsta pastāvÄ«gās atslēgas.
    PastāvÄ«gās atslēgas ir kriptogrāfiskās atslēgas, kas pilnÄ«bā tiek saglabātas droŔības atslēgā. Dažreiz tos aizsargā burtciparu PIN. PastāvÄ«gās atslēgas publisko daļu var eksportēt no droŔības atslēgas, pēc izvēles kopā ar privātās atslēgas rokturi. Piemēram, Yubikey 5 sērijas USB atslēgas atbalsta pastāvÄ«gās atslēgas.Ieteicams, lai tās bÅ«tu paredzētas tikai ārkārtas piekļuvei resursdatoram. Å im ierakstam es izmantoÅ”u tikai vienu atslēgu, taču jums vajadzētu bÅ«t vēl vienai dublÄ“Å”anai.
  • DroÅ”a vieta, kur uzglabāt Ŕīs atslēgas.
  • OpenSSH versija 8.2 vai jaunāka jÅ«su lokālajā datorā un serveros, kuriem vēlaties piekļūt ārkārtas situācijām. Ubuntu 20.04 tiek piegādāts ar OpenSSH 8.2.
  • (pēc izvēles, bet ieteicams) CLI rÄ«ks sertifikātu pārbaudei.

TreniņŔ

Pirmkārt, jums ir jāizveido sertifikācijas iestāde, kas atradÄ«sies uz aparatÅ«ras droŔības atslēgas. Ievietojiet atslēgu un palaidiet:

$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]

Kā komentāru (-C) norādÄ«ju [e-pasts aizsargāts]tāpēc neaizmirstiet, kurai droŔības atslēgai pieder Ŕī sertifikāta iestāde.

Papildus atslēgas pievienoÅ”anai Yubikey, lokāli tiks Ä£enerēti divi faili:

  1. sk-user-ca, atslēgas rokturis, kas attiecas uz droŔības atslēgā saglabāto privāto atslēgu,
  2. sk-user-ca.pub, kas būs jūsu sertifikācijas iestādes publiskā atslēga.

Bet neuztraucieties, Yubikey saglabā citu privāto atslēgu, kuru nevar izgÅ«t. Tāpēc Å”eit viss ir uzticams.

Saimniekdos kā root, pievienojiet (ja vēl neesat to izdarījis) savai SSHD konfigurācijai (/etc/ssh/sshd_config):

TrustedUserCAKeys /etc/ssh/ca.pub

Pēc tam resursdatorā pievienojiet publisko atslēgu (sk-user-ca.pub) failam /etc/ssh/ca.pub

Restartējiet dēmonu:

# /etc/init.d/ssh restart

Tagad mēs varam mēģināt piekļūt saimniekdatoram. Bet vispirms mums ir nepiecieÅ”ams sertifikāts. Izveidojiet atslēgu pāri, kas tiks saistÄ«ts ar sertifikātu:

$ ssh-keygen -t ecdsa -f emergency

Sertifikāti un SSH pāri
Dažreiz ir vilinoÅ”i izmantot sertifikātu kā publiskā/privātā atslēgu pāra aizstājēju. Taču ar sertifikātu vien nepietiek, lai autentificētu lietotāju. Katram sertifikātam ir arÄ« piesaistÄ«ta privātā atslēga. Tāpēc mums ir jāģenerē Å”is "ārkārtas" atslēgu pāris, pirms mēs izsniedzam sev sertifikātu. SvarÄ«gi ir tas, ka mēs serverim parādām parakstÄ«to sertifikātu, norādot atslēgu pāri, kuram mums ir privātā atslēga.

Tātad publisko atslēgu apmaiņa joprojām ir dzÄ«va un labi. Tas darbojas pat ar sertifikātiem. Sertifikāti vienkārÅ”i novērÅ” nepiecieÅ”amÄ«bu serverim saglabāt publiskās atslēgas.

Pēc tam izveidojiet paÅ”u sertifikātu. Man ir nepiecieÅ”ama ubuntu lietotāja autorizācija 10 minÅ«Å”u intervālā. JÅ«s varat to izdarÄ«t savā veidā.

$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency

Jums tiks lūgts parakstīt sertifikātu, izmantojot pirkstu nospiedumu. Varat pievienot papildu lietotājvārdus, atdalot tos ar komatiem, piemēram, -n ubuntu,carl,ec2-user

Tas ir viss, tagad jums ir sertifikāts! Tālāk jums jānorāda pareizās atļaujas:

$ chmod 600 emergency-cert.pub

Pēc tam jūs varat apskatīt sava sertifikāta saturu:

$ step ssh inspect emergency-cert.pub

Manējais izskatās Ŕādi:

emergency-cert.pub
        Type: [email protected] user certificate
        Public key: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
        Signing CA: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
        Key ID: "test-key"
        Serial: 0
        Valid: from 2020-06-24T16:53:03 to 2020-06-24T17:03:03
        Principals:
                ubuntu
        Critical Options: (none)
        Extensions:
                permit-X11-forwarding
                permit-agent-forwarding
                permit-port-forwarding
                permit-pty
                permit-user-rc

Šeit publiskā atslēga ir mūsu izveidotā avārijas atslēga, un sk-user-ca ir saistīta ar sertifikācijas iestādi.

Beidzot mēs esam gatavi palaist SSH komandu:


$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$

  1. Tagad varat izveidot sertifikātus jebkuram lietotājam resursdatorā, kas uzticas jūsu sertifikātu iestādei.
  2. Varat noņemt ārkārtas situāciju. Varat saglabāt sk-user-ca, taču tas nav nepiecieÅ”ams, jo tas ir arÄ« droŔības atslēgā. Varat arÄ« noņemt sākotnējo PEM publisko atslēgu no saviem saimniekiem (piemēram, ~/.ssh/authorized_keys ubuntu lietotājam), ja izmantojāt to ārkārtas piekļuvei.

Ārkārtas piekļuve: rīcības plāns

IelÄ«mējiet droŔības atslēgu un palaidiet komandu:

$ ssh-add -K

Tādējādi SSH aģentam tiks pievienota sertifikāta iestādes publiskā atslēga un atslēgas deskriptors.

Tagad eksportējiet publisko atslēgu, lai izveidotu sertifikātu:

$ ssh-add -L | tail -1 > sk-user-ca.pub

Izveidojiet sertifikātu ar derīguma termiņu, piemēram, ne ilgāku par stundu:

$ ssh-keygen -t ecdsa -f emergency
$ ssh-keygen -Us sk-user-ca.pub -I test-key -n [username] -V -5m:+60m emergency
$ chmod 600 emergency-cert.pub

Un tagad atkal SSH:

$ ssh -i emergency username@host

Ja jÅ«su .ssh/config fails rada problēmas, veidojot savienojumu, varat palaist ssh ar opciju -F none, lai to apietu. Ja jums ir jānosÅ«ta sertifikāts kolēģim, vienkārŔākā un droŔākā iespēja ir Burvju tārpu caurums. Lai to izdarÄ«tu, jums ir nepiecieÅ”ami tikai divi faili - mÅ«su gadÄ«jumā avārijas un avārijas-cert.pub.

Tas, kas man patÄ«k Å”ajā pieejā, ir aparatÅ«ras atbalsts. Varat ievietot droŔības atslēgas seifā, un tās nekur nepazudÄ«s.

Par reklāmas tiesībām

Episkie serveri -Å o lēts VPS ar jaudÄ«giem AMD procesoriem, CPU kodola frekvence lÄ«dz 3.4 GHz. Maksimālā konfigurācija ļauj atrisināt gandrÄ«z jebkuru problēmu ā€“ 128 CPU kodoli, 512 GB RAM, 4000 GB NVMe. Pievienojies mums!

Mēs nosakām procedūru ārkārtas piekļuvei SSH saimniekiem ar aparatūras atslēgām

Avots: www.habr.com

Pievieno komentāru