GNU/Linux >> Belajar Linux >  >> Ubuntu

Manajemen Kunci SSH dengan privacyIDEA


oleh weinstock @ pixabay

Dalam tutorial ini saya akan menunjukkan, bagaimana Anda dapat mengelola kunci SSH Anda untuk semua server Anda dan akun pengguna yang berbeda. Ini penting, jika Anda memiliki lebih dari satu kunci SSH dan bahkan lebih penting, jika Anda bertanggung jawab atas banyak pengguna yang berbeda dengan kunci SSH yang berbeda. Apakah Anda masih tahu, kunci siapa yang terletak di server mana? Apa yang akan Anda lakukan, jika Anda harus mencabut kunci pengguna?

Kami akan menggunakan privacyIDEA sebagai sistem untuk mengelola kunci SSH. Awalnya privacyIDEA adalah sistem untuk mengelola token One Time Password. Namun beberapa waktu lalu telah disempurnakan dengan konsep baru sehingga dapat digunakan untuk mengelola berbagai jenis item otentikasi - dalam hal ini kunci SSH. (Saya memberikan ceramah bahasa Jerman tentang ini di konferensi bahasa Jerman OpenRheinRuhr).

Prasyarat

Saya berasumsi bahwa Anda telah menginstal sistem privacyIDEA dan menghubungkan database pengguna Anda. Anda dapat melakukannya dengan mudah dengan mengikuti tutorial ini yang akan memberikan Anda sebuah alat seperti sistem berbasis Ubuntu LTS.

Apa yang akan kita lakukan sekarang, adalah

  1. unggah Kunci SSH untuk pengguna,
  2. konfigurasi, Kunci SSH mana yang dapat digunakan di server SSH mana
  3. dan terakhir, sesuaikan konfigurasi SSH di server SSH, sehingga Kunci SSH yang dikelola oleh privacyIDEA digunakan untuk mengautentikasi di server SSH.

Unggah Kunci SSH

Pertama, kita perlu mengunggah kunci SSH pengguna.

Harap Diperhatikan: Kita hanya perlu mengunggah kunci publik SSH. Jangan pernah mengunggah kunci pribadi!

Saat mengunggah kunci SSH, objek token baru bertipe kunci SSH dibuat. Saat ini hanya administrator yang dapat mengunggah kunci SSH pengguna. Administrator harus login dan memilih pengguna yang sesuai.

Kemudian klik tombol Daftar dan pilih jenis SSH Token dan salin dan tempel kunci publik SSH.

Deskripsi token akan diisi secara otomatis dengan komentar kunci SSH.

Sekarang Anda dapat mengubah ke Token lihat dan Anda dapat melihat token yang baru dibuat dengan tipe sshkey

Tetapkan Kunci SSH ke Server SSH

Ide menggunakan Token untuk mesin tertentu awalnya dijelaskan di github dan juga di dokumentasi online.

Anda perlu menentukan, token mana yang diizinkan untuk diautentikasi di aplikasi mana di mesin mana. (Dengan cara ini juga otentikasi offline dengan LUKS dimungkinkan) Ini dapat dilakukan di Mesin lihat.

Di privacyIDEA 1.5 Anda juga perlu mendefinisikan mesin (server SSH) dengan alamat IP. Ini akan berubah di privacyIDEA 2.x.

Dengan cara ini kita membuat definisi mesin yang mengatakan, bahwa token ssh SSHK00018FD9 dapat digunakan untuk login melalui SSH di server 172.16.200.1. Jika kunci opsi dibiarkan kosong, token SSH ini dapat digunakan untuk login sebagai root pengguna. Anda juga dapat memasukkan opsi "pengguna" dengan nama pengguna sebagai nilai untuk dapat masuk sebagai pengguna lain.

Siapkan server SSH

Sekarang server SSH perlu mengetahui fakta bahwa kunci, yang didefinisikan secara terpusat di privacyIDEA, dapat digunakan untuk masuk melalui SSH. Ada dua cara alternatif untuk mencapai ini.

Kita dapat menggunakan saltstack untuk mendistribusikan kunci SSH ke semua server SSH. Untuk ini, kita perlu mengatur dan menjalankan saltstack, yang memberi kita sedikit overhead. Inilah mengapa kami memilih alternatif kedua dalam tutorial ini.

Alternatif kedua menggunakan kunci konfigurasi SSH AuthorizedKeysCommand . Ini dapat digunakan di /etc/ssh/sshd_config untuk mendefinisikan perintah, yang dijalankan setiap kali seseorang mencoba masuk melalui SSH. Perintah seperti itu perlu menggunakan nama pengguna sebagai parameter dan perlu mengembalikan daftar kunci SSH yang diizinkan.

Untuk mencapai ini, kami menggunakan perintah privacyidea-authorizedkeys yang datang dengan klien admin privacyidea. Jadi, Anda perlu menginstal klien admin privacyidea di setiap server SSH Anda. Anda dapat melakukannya menggunakan paket ubuntu yang sudah jadi dari launchpad atau paket python dari indeks Paket Python.

Untuk menginstal klien admin privacyidea ke dalam sistem utama Anda, jalankan:

pip install privacyideaadm

kunci yang diotorisasi-privacyidea tidak diperbolehkan mengambil parameter tambahan apa pun kecuali nama pengguna. Inilah sebabnya mengapa Anda perlu membuat file konfigurasi /etc/privacyidea/authorizedkeyscommand yang terlihat seperti ini:

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

Pastikan untuk membatasi hak akses file ini. Dalam lingkungan yang produktif, Anda juga harus memastikan, bahwa administrator token yang disebutkan dalam file konfigurasi ini tidak diizinkan untuk melakukan tugas tambahan apa pun seperti menghapus atau membuat token.

Jika semuanya diatur dengan benar, Anda seharusnya dapat menjalankan

privacyidea-authorizedkeys root

...dan Anda akan melihat kunci publik ssh yang Anda unggah ke privacyIDEA.

Terakhir, Anda perlu mengkonfigurasi ulang daemin SSH dan memulai kembali. /etc/ssh/sshd_config Your Anda harus memiliki bagian yang terlihat seperti ini:

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

Otentikasi!

Setelah memulai ulang daemon SSH, Anda seharusnya dapat masuk melalui SSH dengan kunci SSH yang diunggah. Segera setelah Anda menghapus token SSH atau bahkan menonaktifkan token SSH di privacyIDEA, pengguna tidak dapat login dengan kunci SSH ini lagi.

Dengan cara ini Anda memiliki kontrol penuh atas semua kunci dari semua pengguna Anda. Anda dapat menonaktifkan satu kunci SSH di satu titik pusat dan pengguna tidak akan dapat masuk ke server SSH lagi.


Ubuntu
  1. SSH – Menghasilkan dan Bekerja dengan kunci ssh

  2. Kesalahan Kunci Ssh Tidak Valid Di Juju Saat Menggunakannya Dengan Maas?

  3. SSH dengan authorized_keys ke sistem Ubuntu dengan homedir terenkripsi?

  1. Cara menggunakan kunci SSH dengan Plesk

  2. Cara Membuat Pasangan Kunci SSH (dengan Contoh)

  3. Hasilkan pasangan SSH dengan AES-256-CBC

  1. Ssh – Masih Mendapatkan Prompt Kata Sandi Dengan Ssh Dengan Otentikasi Kunci Publik?

  2. Bagaimana Cara Menggunakan Ssh-copy-id Dengan Multiple-hop Ssh Tunnel?

  3. Memulai SSH di Linux