Shkruajmë procedurën për akses emergjent në hostet SSH me çelësa të harduerit

Shkruajmë procedurën për akses emergjent në hostet SSH me çelësa të harduerit

Në këtë postim do të zhvillojmë një procedurë për akses emergjent në hostet SSH, duke përdorur çelësa të sigurisë në modalitet offline. Ky është vetëm një nga qasjet, dhe mund ta përshtatni sipas nevojave tuaja. Ne do të ruajmë qendrën e certifikimit SSH për hostet tona në një çelës sigurie. Kjo skemë do të funksionojë pothuajse në çdo version të OpenSSH, duke përfshirë SSH me hyrje të vetme.

Pse gjithë kjo? Epo, kjo është një mundësi për raste ekstreme. Kjo është një derë përpara që do t'ju lejojë të hyni në serverin tuaj në rast se për ndonjë arsye nuk ka asnjë zgjidhje tjetër.

Pse të përdoren certifikatat në vend të çelësave publikë/privatë për akses emergjent?

  • Ndryshe nga çelĂ«sat publikĂ«, 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. Pasi tĂ« skadojĂ« ky afat, certifikata do tĂ« bĂ«het e pavlefshme pĂ«r lidhje tĂ« reja. Kjo Ă«shtĂ« ideale pĂ«r akses emergjent.
  • Mund tĂ« krijoni njĂ« certifikatĂ« pĂ«r çdo llogari nĂ« host-et tuaj dhe, nĂ«se Ă«shtĂ« e nevojshme, t'i dĂ«rgoni kĂ«to certifikata "njĂ«herĂ«sh" 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Ă« ruajten plotĂ«sisht brenda çelĂ«sit tĂ« sigurisĂ«. NdĂ«rkohĂ«, ata ndonjĂ«herĂ« janĂ« tĂ« mbrojtur me njĂ« kod PIN alfanumerik. Pjesa e hapur e çelĂ«sit rezident mund tĂ« eksportohet nga çelĂ«si i sigurisĂ«, nĂ«se Ă«shtĂ« e nevojshme, sĂ« bashku me pĂ«rshkrimin e çelĂ«sit tĂ« mbyllur. MbĂ«shtetje pĂ«r çelĂ«sat rezidentĂ« kanĂ«, pĂ«r shembull, çelĂ«sat USB tĂ« serisĂ« Yubikey 5. Preferohet qĂ« ato tĂ« jenĂ« tĂ« destinuara vetĂ«m pĂ«r akses emergjent nĂ« host. PĂ«r kĂ«tĂ« post, do tĂ« pĂ«rdor vetĂ«m njĂ« çelĂ«s, por ju duhet tĂ« keni njĂ« shtesĂ« pĂ«r kopje rezervĂ«.
  • NjĂ« vend i sigurt pĂ«r ruajtjen e kĂ«tyre çelĂ«save.
  • OpenSSH versioni 8.2 ose mĂ« i lartĂ« nĂ« kompjuterin tuaj lokal dhe nĂ« serverat ku dĂ«shironi tĂ« keni akses emergjent. Ubuntu 20.04 vjen me OpenSSH 8.2.
  • (opsionale, por e preferueshme) NjĂ« mjet CLI pĂ«r verifikimin e certifikatave.

Përgatitja

Së pari, duhet të krijoni një qendër certifikimi, e cila do të jetë në çelësin e sigurisë. Futni çelësin dhe filloni:

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

Si një koment (-C), kam vendosur yubikey-9-512-742@smallstep.com, në mënyrë që të mos harroj se për cilin çelës sigurie është kjo qendër certifikimi.

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

  1. sk-user-ca, një përshkrim çelësi që referon në çelësin privat që ruhet 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. Pra, këtu gjithçka është e sigurt.

Në hostët në emrin e përdoruesit root, shtoni (nëse nuk e keni shtuar ende) në konfigurimin e SSHD (/etc/ssh/sshd_config) sa vijon:

TrustedUserCAKeys /etc/ssh/ca.pub

Pastaj, në host, 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ë qassim hostin. Por së pari, do të na nevojitet një certifikat. Krijoni një çift çelësash, i cili do të lidhet me certifikatën:

$ ssh-keygen -t ecdsa -f emergency

Certifikatat dhe çiftet SSH
NdonjĂ«herĂ« ndihesh se do tĂ« ishte mĂ« mirĂ« tĂ« pĂ«rdorĂ«sh njĂ« certifikatĂ« si zĂ«vendĂ«sim pĂ«r çiftin çelĂ«s publik / privat. Por pĂ«r autentifikimin e pĂ«rdoruesit, njĂ« certifikatĂ« nuk mjafton. Çdo certifikatĂ« ka gjithashtu njĂ« çelĂ«s privat tĂ« lidhur me tĂ«. Kjo Ă«shtĂ« arsyeja pse duhet tĂ« gjenerojmĂ« kĂ«tĂ« çift "çelĂ«sash emergjent", para se t'i japim vetes njĂ« certifikatĂ«. E rĂ«ndĂ«sishme Ă«shtĂ« se certifikata e nĂ«nshkruar i tregohet serverit, me caktimin e çiftit tĂ« çelĂ«save pĂ«r tĂ« cilĂ«t kemi çelĂ«sin privat.

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

Tani krijoni certifikatën vetë. Kam nevojë për autorizimin e përdoruesit ubuntu brenda një intervali prej 10 minutash. Mund ta bëni sipas mënyrës suaj.

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

Do t'ju kërkohet të nënshkruani certifikatën me anë të gjurmës së gishtave. Mund të shtoni emra të tjerë përdoruesish, të ndarë me vírgula, për shembull, -n ubuntu,carl,ec2-user

Kaq, tani keni një certifikatë! Tani duhet të caktosh lejet e duhura:

$ chmod 600 emergency-cert.pub

Pasi kësaj, mund të shikoni përmbajtjen e certifikatës tuaj:

$ step ssh inspect emergency-cert.pub

Ja si duket e imja:

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

Këtu çelësi publik është çelësi emergency që krijuam, dhe është i lidhur me qendrën e certifikimit sk-user-ca.

Më në fund jemi gati të fillojmë 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ë i beson qendrës 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ë. Mund të dëshironi gjithashtu të hiqni çelësin origjinal publik PEM nga hostet tuaja (p.sh., në ~/ .ssh/authorized_keys për përdoruesin ubuntu), nëse e keni përdorur për qasje emergjente.

Qasja emergjente: plani i veprimit

Vendosni çelësin e sigurisë dhe nisni komandën:

$ ssh-add -K

Në këtë mënyrë do të shtoni çelësin publik të qendrës së të dhënave dhe descriptorin e çelësit në SSH-agent.

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

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

Krijoni një certifikatë me një skadencë, 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 me lidhjen, mund tĂ« ekzekutoni ssh me parametrin -F none pĂ«r ta anashkaluar atĂ«. NĂ«se duhet 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Ă« nevojiten vetĂ«m dy skedarĂ« — nĂ« rastin tonĂ« kĂ«to janĂ« emergency dhe emergency-cert.pub.

Më pëlqen ky qasje, pasi ka mbështetje harduerike. Mund të vendosni çelësat e sigurisë në një kasafortë, dhe ata nuk do të humbasin.

Si reklamë

Servera epik — kjo Ă«shtĂ« VPS tĂ« lira me procesorĂ« tĂ« fuqishĂ«m nga AMD, shkalla e frekuencĂ«s sĂ« CPU deri nĂ« 3.4 GHz. Konfigurimi maksimal lejon tĂ« zgjidhni pothuajse çdo detyrĂ« — 128 bĂ«rthama CPU, 512 GB RAM, 4000 GB NVMe. Bashkohuni!

Shkruajmë procedurën për akses emergjent në hostet SSH me çelësa të harduerit

Burimi: habr.com

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