
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:
- sk-user-ca, një descriptor çelësi që i referohet çelësit privat, i ruajtur në çelësin e sigurisë,
- 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.pubPastaj, në server shtoni çelësin publik (sk-user-ca.pub) në /etc/ssh/ca.pub
Rinisni demonin:
# /etc/init.d/ssh restartTani 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 emergencySertifikatat 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 emergencyDo 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.pubPas kësaj mund të shikoni përmbajtjen e sertifikatës tuaj:
$ step ssh inspect emergency-cert.pubJa 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-rcKë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:~$- Tani mund të krijoni certifikata për çdo përdorues në hostin që beson në qendrën tuaj të certifikimit.
- 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 -KKë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.pubKrijoni 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.pubDhe tani përsëri SSH:
$ ssh -i emergency username@hostNĂ«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Ă« . 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Ă« 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!
Burimi: habr.com
