Përcaktojmë një procedurë për akses emergjent SSH në hoste me çelësa harduerikë

Përcaktojmë një procedurë për akses emergjent SSH në hoste me çelësa harduerikë

Në këtë post, do të zhvillojmë një procedurë për qasje emergjente në hostet SSH, duke përdorur çelësa sigurie harduerikë në modalitetin offline. Kjo është vetëm një nga qasjet, dhe mund ta përshtatni për veten tuaj. Ne do të ruajmë qendrën e certifikimit SSH për hostet tanë në çelësin e sigurisë harduerik. Kjo skemë do të funksionojë praktikisht në çdo OpenSSH, duke përfshirë SSH me hyrje të vetme.

Pse të gjithë kjo? Epo, kjo është një opsion për raste urgjente. Ky është një backdoor që do t'ju lejojë të qaseni në serverin tuaj në rast se për një arsye të caktuar, asgjë tjetër nuk funksionon.

Pse të përdorni certifikata në vend të çelësave të hapur / të mbyllur për qasje emergjente?

  • NĂ« ndryshim nga çelĂ«sat e hapur, afati i skadencĂ«s sĂ« certifikatave mund tĂ« jetĂ« shumĂ« i shkurtĂ«r. Mund tĂ« gjeneroni njĂ« certifikatĂ« qĂ« Ă«shtĂ« e vlefshme pĂ«r 1 minutĂ« ose madje pĂ«r 5 sekonda. Pas skadimit, certifikata do tĂ« bĂ«het e pavlefshme pĂ«r lidhje tĂ« reja. Kjo Ă«shtĂ« ideale pĂ«r qasje emergjente.
  • Mund tĂ« krijoni njĂ« certifikatĂ« pĂ«r çdo llogari nĂ« hostet tuaj dhe, nĂ« rast nevoje, t'ua dĂ«rgoni kĂ«to certifikata "njĂ«herĂ«she" kolegĂ«ve tuaj.

ÇfarĂ« do t'ju nevojitet

  • ÇelĂ«sat e sigurisĂ« harduerikĂ« qĂ« mbĂ«shtesin çelĂ«sat rezidentĂ«.
    ÇelĂ«sat rezidentĂ« janĂ« çelĂ«sa kriptografikĂ« qĂ« ruhen plotĂ«sisht brenda çelĂ«sit tĂ« sigurisĂ«. NdonjĂ«herĂ« ato mbrohen nga njĂ« PIN alfanumerik. Pjesa e hapur e çelĂ«sit rezident mund tĂ« eksportohen nga çelĂ«si i sigurisĂ«, nĂ«se Ă«shtĂ« e nevojshme, sĂ« bashku me descriptorin e çelĂ«sit tĂ« mbyllur. ÇelĂ«sat USB tĂ« serisĂ« Yubikey 5, pĂ«r shembull, mbĂ«shtesin çelĂ«sat rezidentĂ«. Preferohet qĂ« ato tĂ« jenĂ« tĂ« destinuara vetĂ«m pĂ«r qasje emergjente nĂ« host. PĂ«r kĂ«tĂ« post, do tĂ« pĂ«rdor vetĂ«m njĂ« çelĂ«s, por ju duhet tĂ« keni njĂ« tjetĂ«r si rezervĂ«.
  • NjĂ« vend i sigurt pĂ«r ruajtjen e kĂ«tyre çelĂ«save.
  • OpenSSH versioni 8.2 ose mĂ« lart nĂ« kompjuterin tuaj lokal dhe nĂ« serverĂ«t ku dĂ«shironi tĂ« merrni qasje emergjente. Ubuntu 20.04 vjen me OpenSSH 8.2.
  • (opsional, por e preferueshme) NjĂ« mjet CLI pĂ«r tĂ« verifikuar certifikatat.

Përgatitja

Për të filluar, duhet të krijoni një qendër certifikimi, e cila do të gjendet në çelësin e sigurisë harduerik. Futni çelësin dhe startoni:

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

Si komentari (-C) e kam vendosur yubikey-9-512-742@smallstep.com, për të mos harruar se për cilin çelës të sigurisë i përket ky qendër certifikimi.

Përveç shtimit të çelësit në Yubikey, do të gjenerohen dy skedarë lokalmente:

  1. sk-user-ca, një descriptor çelësi që i referohet çelësit privat, i ruajtur në çelësin e sigurisë,
  2. sk-user-ca.pub, i cili do të jetë çelësi publik për qendrën tuaj të certifikimit.

Por mos u shqetësoni, në Yubikey ruhet një çelës privat tjetër, i cili nuk mund të nxirret. Prandaj, këtu gjithçka është e sigurt.

Në serverët nga emri i përdoruesit root, shtoni (nëse nuk e keni bërë akoma) në konfigurimin tuaj të SSHD (/etc/ssh/sshd_config) këtë:

TrustedUserCAKeys /etc/ssh/ca.pub

Pastaj, në server shtoni çelësin publik (sk-user-ca.pub) në /etc/ssh/ca.pub

Rinisni demonin:

# /etc/init.d/ssh restart

Tani mund të përpiqemi të qasjejmë në server. Por së pari na nevojitet një sertifikat. Krijoni një çift çelësash, i cili do të lidhet me sertifikatën:

$ ssh-keygen -t ecdsa -f emergency

Sertifikatat dhe çiftet SSH
NdonjĂ«herĂ« Ă«shtĂ« e lehtĂ« tĂ« pĂ«rdorĂ«sh sertifikatĂ«n si zĂ«vendĂ«sim pĂ«r çiftin e çelĂ«save tĂ« hapur / tĂ« mbyllur. Por pĂ«r autentifikimin e pĂ«rdoruesit, njĂ« vetĂ«m sertifikat nuk Ă«shtĂ« i mjaftueshĂ«m. Çdo sertifikat gjithashtu ka njĂ« çelĂ«s privat tĂ« lidhur me tĂ«. KĂ«tu Ă«shtĂ« arsyeja pse duhet tĂ« gjenerojmĂ« kĂ«tĂ« çift 'emergency' çelĂ«sash, para se t'i lĂ«shojmĂ« vetes njĂ« sertifikat. E rĂ«ndĂ«sishme Ă«shtĂ« se sertifikata e nĂ«nshkruar i tregojmĂ« serverit, me tĂ« cilin kemi çift çelĂ«sash, pĂ«r tĂ« cilĂ«t kemi çelĂ«sin privat.

Prandaj, shkëmbimi i çelësave të hapur është ende i gjallë. Kjo funksionon edhe me sertifikatat. Sertifikatat thjesht e çlirojnë serverin nga nevoja për të ruajtur çelësat publikë.

Në vazhdim, krijoni vetë sertifikaten. Më nevojitet autorizimi i përdoruesit ubuntu në një interval 10-minutësh. Ju mund ta bëni në mënyrën tuaj.

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

Do t'ju kërkohet të nënshkruani sertifikatën me anë të gjurmës së gishti. Mund të shtoni emra tjetër përdoruesish, të ndarë me presje, për shembull, -n ubuntu,carl,ec2-user

I gjithë, tani ju keni një sertifikat! Më pas duhet të specifikoni lejet e duhura:

$ chmod 600 emergency-cert.pub

Pas kësaj mund të shikoni përmbajtjen e sertifikatës tuaj:

$ step ssh inspect emergency-cert.pub

Ja si duket im:

emergency-cert.pub
        Lloji: ecdsa-sha2-nistp256-cert-v01@openssh.com certifikatë përdoruesi
        ÇelĂ«si publik: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
        CA e nënshkrimit: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
        ID i çelësit: "test-key"
        Serial: 0
        I vlefshëm: nga 2020-06-24T16:53:03 deri në 2020-06-24T17:03:03
        Principes:
                ubuntu
        Opsionet kritike: (asnjë)
        Shkextensions:
                lejo-X11-forwarding
                lejo-agent-forwarding
                lejo-port-forwarding
                lejo-pty
                lejo-user-rc

Këtu çelësi publik është çelësi emergjent i krijuar nga ne, dhe lidhet me qendrën e certifikimit sk-user-ca.

P finally, ne jemi gati të ekzekutojmë komandën SSH:


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

  1. Tani mund të krijoni certifikata për çdo përdorues në hostin që beson në qendrën tuaj të certifikimit.
  2. Mund ta hiqni emergency. Mund ta ruani sk-user-ca, por nuk keni nevojë për të, pasi ndodhet gjithashtu në çelësin e sigurisë. Ndoshta do të doni të hiqni gjithashtu çelësin publik PEM nga hostet tuaja (për shembull, në ~/ .ssh/authorized_keys për përdoruesin ubuntu), nëse e keni përdorur atë për qasje emergjente.

Qasja emergjente: plani i veprimit

Futni çelësin e sigurisë dhe ekzekutoni komandën:

$ ssh-add -K

Kështu do të shtoni çelësin publik të qendrës së certifikimit dhe përshkrimin e çelësit në agjentin SSH.

Tani eksportoni çelësin publik për të krijuar certifikatën:

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

Krijoni një certifikatë me një datë skadimi, për shembull, jo më shumë se një orë:

$ 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

Dhe tani përsëri SSH:

$ ssh -i emergency username@host

NĂ«se skedari juaj .ssh/config shkakton ndonjĂ« problem gjatĂ« lidhjes, mund ta ekzekutoni ssh me parametrin -F none pĂ«r ta anashkaluar atĂ«. NĂ«se ju nevojitet tĂ« dĂ«rgoni certifikatĂ«n te njĂ« koleg, opsioni mĂ« i thjeshtĂ« dhe mĂ« i sigurt Ă«shtĂ« Magic Wormhole. PĂ«r kĂ«tĂ« do t'ju duhen vetĂ«m dy skedarĂ« — nĂ« rastin tonĂ«, kĂ«ta janĂ« emergency dhe emergency-cert.pub.

ÇfarĂ« mĂ« pĂ«lqen nĂ« kĂ«tĂ« qasje Ă«shtĂ« mbĂ«shtetja harduerike. Mund t'i vendosni çelĂ«sat e sigurisĂ« nĂ« njĂ« kasafortĂ« dhe ata do tĂ« qĂ«ndrojnĂ« aty.

SOF6

ServerĂ« epikĂ« — Ă«shtĂ« VPS tĂ« lira me procesorĂ« tĂ« fuqishĂ«m nga AMD, frekuenca e bĂ«rthamĂ«s sĂ« CPU deri nĂ« 3.4 GHz. Konfigurimi maksimal lejon zgjidhjen e praktikisht çdo detyre — 128 bĂ«rthama CPU, 512 GB RAM, 4000 GB NVMe. Bashkohuni!

Përcaktojmë një procedurë për akses emergjent SSH në hoste me çelësa harduerikë

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster