Ni preskribas proceduron por kriza aliro al SSH-gastigantoj kun aparataj ŝlosiloj

Ni preskribas proceduron por kriza aliro al SSH-gastigantoj kun aparataj ŝlosiloj

En ĉi tiu afiŝo, ni disvolvos proceduron por kriza aliro al SSH-gastigantoj uzante aparatajn sekurecajn ŝlosilojn eksterrete. Ĉi tio estas nur unu aliro, kaj vi povas adapti ĝin laŭ viaj bezonoj. Ni stokos la atestilon SSH por niaj gastigantoj sur la aparatara sekurecŝlosilo. Ĉi tiu skemo funkcios ĉe preskaŭ ajna OpenSSH, inkluzive de SSH kun ununura ensaluto.

Por kio ĉi tio ĉio? Nu, ĉi tio estas lasta rimeda elekto. Ĉi tio estas malantaŭa pordo, kiu permesos vin akiri aliron al via servilo kiam ial nenio alia funkcias.

Kial uzi atestilojn anstataŭ publikaj/privataj ŝlosiloj por kriza aliro?

  • Male al publikaj ŝlosiloj, atestiloj povas havi tre mallongan vivdaŭron. Vi povas generi atestilon, kiu validas dum 1 minuto aŭ eĉ 5 sekundoj. Post ĉi tiu periodo, la atestilo fariĝos neuzebla por novaj rilatoj. Ĉi tio estas ideala por kriza aliro.
  • Vi povas krei atestilon por iu ajn konto en viaj gastigantoj kaj, se necese, sendi tiajn "unufojajn" atestojn al kolegoj.

Kion vi bezonas

  • Aparataj sekurecŝlosiloj kiuj subtenas loĝantajn ŝlosilojn.
    Loĝantaj ŝlosiloj estas ĉifrikaj ŝlosiloj, kiuj estas konservitaj tute ene de la sekurecŝlosilo. Kelkfoje ili estas protektitaj per alfanombra PIN. La publika parto de la loĝanta ŝlosilo povas esti eksportita de la sekurecŝlosilo, laŭvole kune kun la privata ŝlosilo tenilo. Ekzemple, USB-ŝlosiloj Yubikey 5-serio subtenas loĝantajn ŝlosilojn.Estas konsilinde, ke ili estas destinitaj nur por kriza aliro al la gastiganto. Por ĉi tiu afiŝo mi uzos nur unu ŝlosilon, sed vi devus havi plian por sekurkopio.
  • Sekura loko por konservi tiujn ŝlosilojn.
  • OpenSSH-versio 8.2 aŭ pli alta en via loka komputilo kaj en la serviloj al kiuj vi volas havi krizan aliron. Ubuntu 20.04 sendas kun OpenSSH 8.2.
  • (laŭvola, sed rekomendita) CLI-ilo por kontroli atestojn.

Trejnado

Unue, vi devas krei atestan aŭtoritaton, kiu troviĝos sur la aparatara sekurecŝlosilo. Enigu la ŝlosilon kaj rulu:

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

Kiel komenton (-C) mi indikis [retpoŝte protektita]do vi ne forgesu, al kiu sekureca ŝlosilo apartenas ĉi tiu atestila aŭtoritato.

Krom aldoni la ŝlosilon al la Yubikey, du dosieroj estos generitaj loke:

  1. sk-user-ca, ŝlosila tenilo kiu rilatas al la privata ŝlosilo stokita en la sekurecŝlosilo,
  2. sk-user-ca.pub, kiu estos la publika ŝlosilo por via atestila aŭtoritato.

Sed ne maltrankviliĝu, la Yubikey konservas alian privatan ŝlosilon, kiu ne povas esti prenita. Tial ĉio estas fidinda ĉi tie.

Ĉe gastigantoj, kiel radiko, aldonu (se vi ne jam) jenon al via SSHD-agordo (/etc/ssh/sshd_config):

TrustedUserCAKeys /etc/ssh/ca.pub

Tiam sur la gastiganto, aldonu la publikan ŝlosilon (sk-user-ca.pub) al /etc/ssh/ca.pub

Rekomencu la demonon:

# /etc/init.d/ssh restart

Nun ni povas provi aliri la gastiganton. Sed unue ni bezonas atestilon. Kreu ŝlosilparon kiu estos asociita kun la atestilo:

$ ssh-keygen -t ecdsa -f emergency

Atestiloj kaj SSH-paroj
Kelkfoje estas tente uzi atestilon kiel anstataŭaĵon de publika/privata ŝlosilparo. Sed atestilo sole ne sufiĉas por aŭtentikigi uzanton. Ĉiu atestilo ankaŭ havas privatan ŝlosilon asociitan kun ĝi. Jen kial ni devas generi ĉi tiun "kriz" ŝlosilparon antaŭ ol ni eldonas al ni mem atestilon. La grava afero estas, ke ni montras la subskribitan atestilon al la servilo, indikante la ŝlosilparon por kiu ni havas privatan ŝlosilon.

Do publika ŝlosilo interŝanĝo ankoraŭ vivas kaj bone. Ĉi tio funkcias eĉ kun atestiloj. Atestiloj simple forigas la bezonon de la servilo stoki publikajn ŝlosilojn.

Poste, kreu la atestilon mem. Mi bezonas rajtigon de ubuntu-uzanto en intervalo de 10 minutoj. Vi povas fari ĝin laŭ via maniero.

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

Oni petos vin subskribi la atestilon per via fingrospuro. Vi povas aldoni pliajn uzantnomojn apartigitajn per komoj, ekzemple -n ubuntu,carl,ec2-user

Jen, nun vi havas atestilon! Poste vi devas specifi la ĝustajn permesojn:

$ chmod 600 emergency-cert.pub

Post ĉi tio, vi povas vidi la enhavon de via atestilo:

$ step ssh inspect emergency-cert.pub

Jen kiel aspektas la mia:

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

Ĉi tie la publika ŝlosilo estas la krizŝlosilo, kiun ni kreis, kaj sk-user-ca estas asociita kun la atestadaŭtoritato.

Fine ni pretas ruli la komandon SSH:


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

  1. Vi nun povas krei atestilojn por iu ajn uzanto en gastiganto, kiu fidas vian atestan aŭtoritaton.
  2. Vi povas forigi krizon. Vi povas konservi sk-user-ca, sed vi ne bezonas, ĉar ĝi ankaŭ estas sur la sekureca ŝlosilo. Vi eble ankaŭ volas forigi la originan publikan ŝlosilon PEM de viaj gastigantoj (ekzemple en ~/.ssh/authorized_keys por la ubuntu-uzanto) se vi uzis ĝin por kriza aliro.

Urĝa Aliro: Agadplano

Algluu la sekurecan ŝlosilon kaj rulu la komandon:

$ ssh-add -K

Ĉi tio aldonos la publikan ŝlosilon kaj ŝlosilan priskribilon de la atestila aŭtoritato al la SSH-agento.

Nun eksportu la publikan ŝlosilon por fari atestilon:

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

Kreu atestilon kun limdato de, ekzemple, ne pli ol unu horo:

$ 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

Kaj nun SSH denove:

$ ssh -i emergency username@host

Se via .ssh/config dosiero kaŭzas kelkajn problemojn dum la konekto, vi povas ruli ssh kun la opcio -F none por preteriri ĝin. Se vi bezonas sendi atestilon al kolego, la plej facila kaj sekura opcio estas Magia Vermtruo. Por fari tion, vi bezonas nur du dosierojn - en nia kazo, emergency kaj emergency-cert.pub.

Kion mi ŝatas pri ĉi tiu aliro estas la aparatara subteno. Vi povas meti viajn sekurecajn ŝlosilojn en monŝrankon kaj ili ne iros ien.

Pri la Rajtoj de Reklamado

Epopeaj serviloj Estas malmultekosta VPS kun potencaj procesoroj de AMD, CPU-kernfrekvenco ĝis 3.4 GHz. La maksimuma agordo permesas vin solvi preskaŭ ajnan problemon - 128 CPU-kernoj, 512 GB RAM, 4000 GB NVMe. Aliĝu al ni!

Ni preskribas proceduron por kriza aliro al SSH-gastigantoj kun aparataj ŝlosiloj

fonto: www.habr.com

Aldoni komenton