Kami resep prosedur pikeun aksés darurat ka host SSH nganggo konci hardware

Kami resep prosedur pikeun aksés darurat ka host SSH nganggo konci hardware

Dina tulisan ieu, urang bakal ngembangkeun prosedur pikeun aksés darurat ka host SSH nganggo konci kaamanan hardware offline. Ieu ngan hiji pendekatan, sarta anjeun bisa adaptasi pikeun nyocogkeun ka kabutuhan Anjeun. Kami bakal nyimpen otoritas sertipikat SSH pikeun host kami dina konci kaamanan hardware. Skéma ieu bakal dianggo dina ampir sagala OpenSSH, kaasup SSH kalawan single sign-on.

Keur naon ieu sadayana? Nya, ieu mangrupikeun pilihan terakhir. Ieu backdoor anu bakal ngidinan Anjeun pikeun meunangkeun aksés ka server anjeun lamun keur sababaraha alesan nanaon sejenna jalan.

Naha nganggo sertipikat tibatan konci umum/pribadi pikeun aksés darurat?

  • Beda sareng konci umum, sertipikat tiasa gaduh umur anu pondok pisan. Anjeun tiasa ngahasilkeun sertipikat anu valid pikeun 1 menit atanapi bahkan 5 detik. Saatos periode ieu, sertipikat bakal janten teu tiasa dianggo pikeun sambungan anyar. Ieu idéal pikeun aksés darurat.
  • Anjeun tiasa nyiptakeun sertipikat kanggo akun naon waé dina host anjeun sareng, upami diperyogikeun, kirimkeun sertipikat "hiji-waktos" sapertos ka kolega.

Naon anu anjeun butuhkeun

  • Konci kaamanan hardware anu ngadukung konci penduduk.
    Konci resident nyaéta konci kriptografi anu disimpen sadayana dina konci kaamanan. Kadang-kadang aranjeunna ditangtayungan ku PIN alfanumerik. Bagian umum tina konci penduduk tiasa diékspor tina konci kaamanan, sacara opsional sareng gagang konci pribadi. Contona, kenop USB runtuyan Yubikey 5 ngarojong kenop nyicingan. Disarankeun yén aranjeunna dimaksudkeun ukur pikeun aksés darurat ka host. Pikeun pos ieu kuring ngan bakal make hiji konci, tapi anjeun kudu boga hiji tambahan pikeun cadangan.
  • Tempat anu aman pikeun nyimpen konci éta.
  • Versi OpenSSH 8.2 atanapi langkung luhur dina komputer lokal anjeun sareng dina server anu anjeun hoyong aksés darurat. Ubuntu 20.04 dikirimkeun sareng OpenSSH 8.2.
  • (pilihan, tapi dianjurkeun) Alat CLI pikeun mariksa sertipikat.

palatihan

Mimiti, anjeun kedah nyiptakeun otoritas sertifikasi anu bakal aya dina konci kaamanan hardware. Selapkeun konci sareng jalankeun:

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

Salaku komentar (-C) kuring nunjukkeun [email dijaga]janten anjeun ulah hilap anu mana konci kaamanan otoritas sertipikat ieu milik.

Salian nambahkeun konci kana Yubikey, dua file bakal dihasilkeun sacara lokal:

  1. sk-user-ca, cecekelan konci anu ngarujuk kana konci pribadi anu disimpen dina konci kaamanan,
  2. sk-user-ca.pub, anu bakal janten konci umum pikeun otoritas sertipikat anjeun.

Tapi tong hariwang, Yubikey nyimpen konci pribadi sanés anu teu tiasa dicandak. Ku alatan éta, sagalana geus dipercaya di dieu.

Dina host, salaku root, tambahkeun (upami anjeun henteu acan) ieu kana konfigurasi SSHD anjeun (/etc/ssh/sshd_config):

TrustedUserCAKeys /etc/ssh/ca.pub

Teras dina host, tambahkeun konci umum (sk-user-ca.pub) kana /etc/ssh/ca.pub

Balikan deui daemon:

# /etc/init.d/ssh restart

Ayeuna urang tiasa nyobian ngaksés host. Tapi mimitina urang peryogi sertipikat. Jieun pasangan konci anu bakal dikaitkeun sareng sertipikat:

$ ssh-keygen -t ecdsa -f emergency

Sértipikat sareng pasangan SSH
Kadang-kadang pikabitaeun ngagunakeun sertipikat salaku gaganti pikeun pasangan konci umum / swasta. Tapi sertipikat nyalira henteu cekap pikeun ngabuktoskeun kaaslianana pangguna. Unggal sertipikat ogé gaduh konci pribadi anu aya hubunganana sareng éta. Ieu sababna urang kedah ngahasilkeun pasangan konci "darurat" ieu sateuacan urang ngaluarkeun sertipikat. Anu penting nyaéta yén kami nunjukkeun sertipikat anu ditandatanganan ka server, nunjukkeun pasangan konci anu kami gaduh konci pribadi.

Jadi bursa konci publik masih hirup jeung ogé. Ieu jalan sanajan kalawan sertipikat. Sertipikat saukur ngaleungitkeun kabutuhan server pikeun nyimpen konci umum.

Salajengna, jieun sertipikat sorangan. Abdi peryogi otorisasi pangguna ubuntu dina interval 10 menit. Anjeun tiasa ngalakukeun eta cara anjeun.

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

Anjeun bakal dipenta pikeun nandatanganan sertipikat nganggo sidik jari anjeun. Anjeun tiasa nambihan nami pangguna tambahan anu dipisahkeun ku koma, contona -n ubuntu,carl,ec2-user

Éta, ayeuna anjeun gaduh sertipikat! Salajengna anjeun kedah netepkeun idin anu leres:

$ chmod 600 emergency-cert.pub

Saatos ieu, anjeun tiasa ningali eusi sertipikat anjeun:

$ step ssh inspect emergency-cert.pub

Ieu naon rupa kuring:

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

Di dieu konci umum nyaéta konci darurat anu kami ciptakeun, sareng sk-user-ca pakait sareng otoritas sertifikasi.

Tungtungna kami siap ngajalankeun paréntah SSH:


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

  1. Anjeun ayeuna tiasa nyiptakeun sertipikat pikeun pangguna naon waé dina host anu percanten ka otoritas sertipikat anjeun.
  2. Anjeun tiasa nyabut darurat. Anjeun tiasa nyimpen sk-pamaké-ca, tapi anjeun teu perlu saprak éta ogé dina konci kaamanan. Anjeun oge meureun hoyong miceun konci publik PEM asli ti host anjeun (contona dina ~/.ssh/authorized_keys pikeun pamaké ubuntu) lamun dipaké pikeun aksés darurat.

Aksés Darurat: Rencana Aksi

Tempelkeun konci kaamanan sareng jalankeun paréntah:

$ ssh-add -K

Ieu bakal nambihan konci umum otoritas sertipikat sareng deskriptor konci kana agén SSH.

Ayeuna ékspor konci umum pikeun ngadamel sertipikat:

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

Jieun sertipikat kalayan tanggal béakna, contona, teu leuwih ti sajam:

$ 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

Sareng ayeuna SSH deui:

$ ssh -i emergency username@host

Lamun file .ssh / config anjeun ngabalukarkeun sababaraha masalah nalika nyambungkeun, anjeun tiasa ngajalankeun ssh kalawan pilihan -F euweuh pikeun bypass eta. Upami anjeun kedah ngirim sertipikat ka batur sapagawean, pilihan anu paling gampang sareng aman nyaéta Magic Wormhole. Jang ngalampahkeun ieu, anjeun ngan butuh dua file - bisi urang, darurat sarta emergency-cert.pub.

Anu kuring resep ngeunaan pendekatan ieu nyaéta dukungan hardware. Anjeun tiasa nempatkeun konci kaamanan anjeun dina brankas sareng aranjeunna moal kamana-mana.

salaku iklan

server epik - eta VPS mirah kalawan prosesor kuat ti AMD, frékuénsi inti CPU nepi ka 3.4 GHz. Konfigurasi maksimum ngidinan Anjeun pikeun ngajawab ampir sagala masalah - 128 cores CPU, 512 GB RAM, 4000 GB NVMe. Ngahiji sareng Kami!

Kami resep prosedur pikeun aksés darurat ka host SSH nganggo konci hardware

sumber: www.habr.com

Tambahkeun komentar