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:
- sk-user-ca, cecekelan konci anu ngarujuk kana konci pribadi anu disimpen dina konci kaamanan,
- 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:~$
- Anjeun ayeuna tiasa nyiptakeun sertipikat pikeun pangguna naon waé dina host anu percanten ka otoritas sertipikat anjeun.
- 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
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
sumber: www.habr.com