Biz hardware açarları ilə SSH hostlarına təcili giriş prosedurunu təyin edirik

Biz hardware açarları ilə SSH hostlarına təcili giriş prosedurunu təyin edirik

Bu yazıda biz hardware təhlükəsizlik açarlarından oflayn istifadə edərək SSH hostlarına təcili giriş üçün prosedur hazırlayacağıq. Bu yalnız bir yanaşmadır və siz onu ehtiyaclarınıza uyğunlaşdıra bilərsiniz. Biz hostlarımız üçün SSH sertifikat səlahiyyətini hardware təhlükəsizlik açarında saxlayacağıq. Bu sxem demək olar ki, istənilən OpenSSH-də, o cümlədən tək girişli SSH-də işləyəcək.

Bütün bunlar nə üçündür? Yaxşı, bu son çarədir. Bu, nədənsə başqa heç nə işləməyəndə serverinizə giriş əldə etməyə imkan verəcək arxa qapıdır.

Nəyə görə təcili giriş üçün ictimai/məxfi açarlar əvəzinə sertifikatlardan istifadə etməlisiniz?

  • Açıq açarlardan fərqli olaraq, sertifikatların ömrü çox qısa ola bilər. Siz 1 dəqiqə və ya hətta 5 saniyə ərzində etibarlı olan sertifikat yarada bilərsiniz. Bu müddətdən sonra sertifikat yeni bağlantılar üçün yararsız hala düşəcək. Bu təcili giriş üçün idealdır.
  • Siz hostlarınızda istənilən hesab üçün sertifikat yarada və lazım gələrsə, belə “birdəfəlik” sertifikatları həmkarlarınıza göndərə bilərsiniz.

Nə lazım?

  • Rezident açarları dəstəkləyən aparat təhlükəsizlik açarları.
    Rezident açarlar tamamilə təhlükəsizlik açarı daxilində saxlanılan kriptoqrafik açarlardır. Bəzən onlar alfasayısal PİN ilə qorunur. Rezident açarın ictimai hissəsi isteğe bağlı olaraq şəxsi açar dəstəyi ilə birlikdə təhlükəsizlik açarından ixrac edilə bilər. Məsələn, Yubikey 5 seriyalı USB açarları rezident açarları dəstəkləyir.Onların yalnız hosta təcili giriş üçün nəzərdə tutulması məsləhətdir. Bu yazı üçün mən yalnız bir açardan istifadə edəcəyəm, ancaq ehtiyat üçün əlavə bir açarınız olmalıdır.
  • Bu açarları saxlamaq üçün təhlükəsiz yer.
  • Yerli kompüterinizdə və təcili giriş əldə etmək istədiyiniz serverlərdə OpenSSH 8.2 və ya daha yüksək versiyası. Ubuntu 20.04 OpenSSH 8.2 ilə göndərilir.
  • (isteğe bağlıdır, lakin tövsiyə olunur) Sertifikatları yoxlamaq üçün CLI aləti.

Təlim

Birincisi, siz hardware təhlükəsizlik açarında yerləşəcək bir sertifikatlaşdırma orqanı yaratmalısınız. Açarı daxil edin və işə salın:

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

Şərh olaraq (-C) qeyd etdim [e-poçt qorunur]beləliklə, bu sertifikat orqanının hansı təhlükəsizlik açarına aid olduğunu unutmusunuz.

Yubikey-ə açar əlavə etməklə yanaşı, yerli olaraq iki fayl yaradılacaq:

  1. sk-user-ca, təhlükəsizlik açarında saxlanılan şəxsi açara istinad edən açar sapı,
  2. sk-user-ca.pub, bu sizin sertifikat orqanının açıq açarı olacaq.

Ancaq narahat olmayın, Yubikey əldə edilə bilməyən başqa bir şəxsi açarı saxlayır. Buna görə də burada hər şey etibarlıdır.

Hostlarda, kök olaraq, SSHD konfiqurasiyanıza (/etc/ssh/sshd_config) aşağıdakıları əlavə edin (artıq etməmisinizsə):

TrustedUserCAKeys /etc/ssh/ca.pub

Sonra hostda açıq açarı (sk-user-ca.pub) /etc/ssh/ca.pub-a əlavə edin

Demonu yenidən başladın:

# /etc/init.d/ssh restart

İndi hosta daxil olmağa cəhd edə bilərik. Ancaq əvvəlcə sertifikat lazımdır. Sertifikatla əlaqələndiriləcək açar cütü yaradın:

$ ssh-keygen -t ecdsa -f emergency

Sertifikatlar və SSH cütləri
Bəzən açıq/özəl açar cütünün əvəzi kimi sertifikatdan istifadə etmək cazibədar olur. Ancaq istifadəçinin autentifikasiyası üçün tək sertifikat kifayət deyil. Hər bir sertifikat da onunla əlaqəli şəxsi açara malikdir. Buna görə də özümüzə sertifikat verməzdən əvvəl bu "fövqəladə" açar cütünü yaratmalıyıq. Əhəmiyyətli odur ki, imzalanmış sertifikatı serverə göstərək, özəl açarımız olan açar cütünü göstərək.

Beləliklə, açıq açar mübadiləsi hələ də canlıdır və yaxşıdır. Bu hətta sertifikatlarla işləyir. Sertifikatlar sadəcə olaraq serverin ictimai açarları saxlamaq ehtiyacını aradan qaldırır.

Sonra, sertifikatın özünü yaradın. Mənə 10 dəqiqəlik fasilə ilə ubuntu istifadəçi icazəsi lazımdır. Bunu öz yolunuzla edə bilərsiniz.

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

Sizdən barmaq izinizlə sertifikatı imzalamağınız xahiş olunacaq. Siz vergüllə ayrılmış əlavə istifadəçi adları əlavə edə bilərsiniz, məsələn -n ubuntu, carl, ec2-user

Budur, indi sertifikatınız var! Sonra düzgün icazələri təyin etməlisiniz:

$ chmod 600 emergency-cert.pub

Bundan sonra siz sertifikatınızın məzmununa baxa bilərsiniz:

$ step ssh inspect emergency-cert.pub

Mənimki belə görünür:

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

Burada açıq açar bizim yaratdığımız təcili yardım açarıdır və sk-user-ca sertifikatlaşdırma orqanı ilə əlaqələndirilir.

Nəhayət, SSH əmrini işə salmağa hazırıq:


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

  1. İndi sertifikat orqanına güvənən hostda istənilən istifadəçi üçün sertifikatlar yarada bilərsiniz.
  2. Təcili yardımı aradan qaldıra bilərsiniz. Siz sk-user-ca-nı saxlaya bilərsiniz, lakin o, təhlükəsizlik açarında olduğu üçün buna ehtiyac yoxdur. Təcili giriş üçün istifadə etmisinizsə, orijinal PEM ictimai açarını hostlarınızdan (məsələn, ubuntu istifadəçisi üçün ~/.ssh/authorized_keys-də) silmək istəyə bilərsiniz.

Fövqəladə çıxış: Fəaliyyət Planı

Təhlükəsizlik açarını yapışdırın və əmri yerinə yetirin:

$ ssh-add -K

Bu, sertifikat orqanının açıq açarını və açar deskriptorunu SSH agentinə əlavə edəcək.

İndi sertifikat etmək üçün açıq açarı ixrac edin:

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

İstifadə müddəti, məsələn, bir saatdan çox olmayan bir sertifikat yaradın:

$ 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

İndi yenidən SSH:

$ ssh -i emergency username@host

Əgər .ssh/config faylınız qoşulma zamanı bəzi problemlər yaradırsa, onu keçmək üçün -F none seçimi ilə ssh-ni işə sala bilərsiniz. Bir həmkarınıza sertifikat göndərmək lazımdırsa, ən asan və təhlükəsiz seçimdir Sehrli qurd dəliyi. Bunu etmək üçün sizə yalnız iki fayl lazımdır - bizim vəziyyətimizdə təcili və təcili-cert.pub.

Bu yanaşmada xoşuma gələn şey hardware dəstəyidir. Təhlükəsizlik açarlarınızı seyfə qoya bilərsiniz və onlar heç yerə getməyəcəklər.

Reklam Hüquqları haqqında

Epik serverlər - Mi ucuz VPS AMD-dən güclü prosessorlar, 3.4 GHz-ə qədər CPU nüvə tezliyi. Maksimum konfiqurasiya demək olar ki, hər hansı bir problemi həll etməyə imkan verir - 128 CPU nüvəsi, 512 GB RAM, 4000 GB NVMe. Bizə qoşul!

Biz hardware açarları ilə SSH hostlarına təcili giriş prosedurunu təyin edirik

Mənbə: www.habr.com

Добавить комментарий