Näeme ette riistvaravõtmetega SSH-hostidele hädaabipääsu protseduuri

Näeme ette riistvaravõtmetega SSH-hostidele hädaabipääsu protseduuri

Selles postituses töötame välja protseduuri, mis võimaldab hädaolukorras juurdepääsu SSH-hostidele, kasutades võrguühenduseta riistvara turvavõtmeid. See on vaid üks lähenemisviis ja saate seda kohandada vastavalt oma vajadustele. Salvestame oma hostide SSH-sertifikaadi volituse riistvaralisele turvavõtmele. See skeem töötab peaaegu kõigi OpenSSH-ga, sealhulgas ühekordse sisselogimisega SSH-ga.

Mille jaoks see kõik on? Noh, see on viimane võimalus. See on tagauks, mis võimaldab teil pääseda oma serverile juurde, kui mingil põhjusel miski muu ei tööta.

Miks kasutada hädaabipääsuks avalike/privaatvõtmete asemel sertifikaate?

  • Erinevalt avalikest võtmetest võib sertifikaatidel olla väga lühike eluiga. Saate luua sertifikaadi, mis kehtib 1 minuti või isegi 5 sekundit. Pärast seda perioodi muutub sertifikaat uute ühenduste jaoks kasutuskõlbmatuks. See on ideaalne hädaabipääsuks.
  • Saate luua sertifikaadi mis tahes konto jaoks oma hostides ja vajadusel saata selliseid "ühekordseid" sertifikaate kolleegidele.

Mida sa vajad

  • Riistvaralised turvavõtmed, mis toetavad püsivõtmeid.
    Residentvõtmed on krüptograafilised võtmed, mis on täielikult salvestatud turvavõtmesse. Mõnikord on need kaitstud tähtnumbrilise PIN-koodiga. Residendivõtme avaliku osa saab eksportida turvavõtmest, valikuliselt koos privaatvõtme käepidemega. Näiteks Yubikey 5-seeria USB-võtmed toetavad resident-võtmeid.Soovitav on, et need oleksid mõeldud ainult hädaolukorras juurdepääsuks hostile. Selle postituse jaoks kasutan ainult ühte võtit, kuid varundamiseks peaks teil olema veel üks.
  • Turvaline koht nende võtmete hoidmiseks.
  • OpenSSH versioon 8.2 või uuem teie kohalikus arvutis ja serverites, millele soovite hädaolukorras juurdepääsu saada. Ubuntu 20.04 tarnitakse koos OpenSSH 8.2-ga.
  • (valikuline, kuid soovitatav) CLI tööriist sertifikaatide kontrollimiseks.

Koolitus

Esiteks peate looma sertifitseerimisasutuse, mis asub riistvara turvavõtmel. Sisestage võti ja käivitage:

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

Kommentaariks (-C) märkisin [meiliga kaitstud]nii et te ei unustaks, millisele turvavõtmele see sertifikaadi asutus kuulub.

Lisaks Yubikey-le võtme lisamisele luuakse kaks faili kohapeal:

  1. sk-user-ca, võtmekäepide, mis viitab turvavõtmes salvestatud privaatvõtmele,
  2. sk-user-ca.pub, mis on teie sertifitseerimisasutuse avalik võti.

Kuid ärge muretsege, Yubikey salvestab teise privaatvõtme, mida ei saa hankida. Seetõttu on siin kõik usaldusväärne.

Hostides lisage administraatorina (kui te pole seda veel teinud) oma SSHD konfiguratsiooni (/etc/ssh/sshd_config):

TrustedUserCAKeys /etc/ssh/ca.pub

Seejärel lisage hostis avalik võti (sk-user-ca.pub) faili /etc/ssh/ca.pub

Taaskäivitage deemon:

# /etc/init.d/ssh restart

Nüüd saame proovida hostile juurde pääseda. Kuid kõigepealt vajame sertifikaati. Looge võtmepaar, mis seotakse sertifikaadiga:

$ ssh-keygen -t ecdsa -f emergency

Sertifikaadid ja SSH paarid
Mõnikord on ahvatlev kasutada sertifikaati avaliku/privaatse võtmepaari asendajana. Kuid sertifikaadist üksi kasutaja autentimiseks ei piisa. Igal sertifikaadil on ka sellega seotud privaatvõti. Seetõttu peame genereerima selle "hädaolukorra" võtmepaari, enne kui väljastame endale sertifikaadi. Oluline on see, et me näitame serverile allkirjastatud sertifikaati, näidates ära võtmepaari, mille jaoks meil on privaatvõti.

Nii et avaliku võtme vahetus on endiselt elus ja terve. See töötab isegi sertifikaatidega. Sertifikaadid välistavad lihtsalt vajaduse, et server salvestaks avalikke võtmeid.

Järgmisena looge sertifikaat ise. Vajan ubuntu kasutaja autoriseerimist 10-minutilise intervalliga. Saate seda teha omal moel.

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

Teil palutakse sertifikaat oma sõrmejälje abil allkirjastada. Saate lisada täiendavaid kasutajanimesid, eraldades need komadega, näiteks -n ubuntu,carl,ec2-user

See on kõik, nüüd on teil sertifikaat! Järgmisena peate määrama õiged load:

$ chmod 600 emergency-cert.pub

Pärast seda saate oma sertifikaadi sisu vaadata:

$ step ssh inspect emergency-cert.pub

Minu oma näeb välja selline:

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

Siin on avalik võti meie loodud hädaabivõti ja sk-user-ca on seotud sertifitseerimisasutusega.

Lõpuks oleme valmis SSH-käsku käivitama:


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

  1. Nüüd saate luua sertifikaate iga kasutaja jaoks teie sertifitseerimisasutust usaldavas hostis.
  2. Saate hädaolukorra eemaldada. Saate salvestada faili sk-user-ca, kuid te ei pea seda tegema, kuna see on ka turvavõtmel. Samuti võite soovida eemaldada oma hostidelt algse PEM-i avaliku võtme (näiteks ubuntu kasutaja jaoks failis ~/.ssh/authorized_keys), kui kasutasite seda hädaabipääsuks.

Hädaabi juurdepääs: tegevuskava

Kleepige turvavõti ja käivitage käsk:

$ ssh-add -K

See lisab SSH-agendile sertifitseerimisasutuse avaliku võtme ja võtmekirjelduse.

Nüüd eksportige sertifikaadi loomiseks avalik võti:

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

Looge sertifikaat, mille aegumiskuupäev on näiteks kuni tund:

$ 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

Ja nüüd jälle SSH:

$ ssh -i emergency username@host

Kui teie .ssh/config-fail põhjustab ühenduse loomisel probleeme, võite käivitada ssh-i valikuga -F none, et sellest mööda minna. Kui teil on vaja kolleegile sertifikaat saata, on kõige lihtsam ja turvalisem variant Maagiline ussiauk. Selleks vajate ainult kahte faili – meie puhul hädaabi ja hädaabi-cert.pub.

Mis mulle selle lähenemisviisi juures meeldib, on riistvaratugi. Võite panna oma turvavõtmed seifi ja need ei kao kuhugi.

Reklaamide õiguste kohta

Eepilised serverid - Kas odav VPS võimsate AMD protsessoritega, protsessori tuuma sagedus kuni 3.4 GHz. Maksimaalne konfiguratsioon võimaldab teil lahendada peaaegu kõik probleemid - 128 protsessorituuma, 512 GB muutmälu, 4000 GB NVMe. Liitu meiega!

Näeme ette riistvaravõtmetega SSH-hostidele hädaabipääsu protseduuri

Allikas: www.habr.com

Lisa kommentaar