Å 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:
- sk-user-ca, atslÄgas rokturis, kas attiecas uz droŔības atslÄgÄ saglabÄto privÄto atslÄgu,
- 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:~$
- Tagad varat izveidot sertifikÄtus jebkuram lietotÄjam resursdatorÄ, kas uzticas jÅ«su sertifikÄtu iestÄdei.
- 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
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
Avots: www.habr.com