Blog ini akan menunjukkan cara menggunakan privacyIDEA untuk mengamankan login SSH Anda. Dalam kasus ini, pengguna perlu memberikan Kunci SSH dan sebagai tambahan, token OTP dan kata sandi opsional.

Jadi Anda memiliki faktor autentikasi berikut:

  1. Kunci SSH ( faktor kepemilikan lunak – dapat disalin!)
  2. frasa sandi opsional pada Kunci SSH, yang tidak dikontrol oleh server! ( pengetahuan )
  3. Token OTP didukung oleh privacyIDEA seperti Google Authenticator atau lebih disukai Yubikey ( faktor kepemilikan keras – tidak dapat disalin)
  4. PIN OTP opsional yang dikontrol oleh privacyIDEA ( pengetahuan )

Hubungkan SSH ke privacyIDEA

Menghubungkan SSH ke privacyIDEA dijelaskan dalam video ini . Video ini menggunakan Modul PAM privacyIDEA dalam dokumentasi daring .

Dalam konfigurasi SSH Anda perlu mengatur

Gunakan PAM ya

Dengan cara ini SSH akan mengautentikasi pengguna terhadap tumpukan PAM menggunakan /etc/pam.d/sshd .

Panduan ini mengasumsikan Anda menggunakan sistem Ubuntu. Sistem lain seperti CentOS menggunakan konfigurasi PAM yang sedikit berbeda, tetapi idenya sama.

Instal privacyIDEA PAM

Untuk menggunakan PAM dengan privacyIDEA, Anda memerlukan modul autentikasi PAM privacyIDEA . Pada Ubuntu 14.04, Anda dapat menginstalnya seperti

tambahkan-apt-repository ppa:privacyidea/privacyidea
pembaruan apt-get
apt-get install privasiidea-pam

Dalam kasus lain Anda bisa mendapatkannya dari github dengan tautan yang disebutkan di atas.

Konfigurasikan SSH PAM

Sekarang mari kita lihat konfigurasi PAM untuk SSH. File /etc/pam.d/sshd berisi baris

@termasuk autentikasi umum

Ubah baris ini menjadi

@termasuk umum-auth-pi

Dengan membuat file baru seperti itu, lebih mudah bagi kami untuk menambahkan dua faktor ke setiap layanan PAM yang diaktifkan.

Salin berkas /etc/pam.d/common-auth ke /etc/pam.d/common-auth-pi . Berkas /etc/pam.d/common-auth-pi akan terlihat seperti ini:

auth [sukses=1 default=abaikan] pam_python.so /lib/security/privacyidea_pam.py url=https://serveranda \
                                                  nosslverifikasi debug
auth diperlukan pam_deny.so
otorisasi diperlukan pam_permit.so
otorisasi opsional pam_cap.so

Dalam berkas common-auth-pi kami mengganti pam_unix.so dengan privacyidea_pam . Anda perlu menentukan URL server privacyIDEA Anda. Jika semuanya berjalan lancar, Anda dapat menghapus parameter debug . Jika Anda memiliki sertifikat tepercaya, Anda dapat menghapus nosslverify .

Pastikan Anda telah masuk ke sistem atau memiliki cara lain untuk masuk seperti kunci ssh. Memodifikasi tumpukan PAM untuk SSH dapat mengakibatkan Anda tidak dapat lagi masuk dengan kata sandi melalui SSH.

Sekarang setelah Anda telah mengonfigurasi

  • /etc/ssh/sshd_config
  • /etc/pam.d/common-auth-pi
  • /dll/pam.d/sshd

Anda dapat memulai ulang server SSH agar perubahan diterapkan.

Saat Anda mencoba masuk melalui SSH, nama pengguna dan kata sandi akan dikirim ke privacyIDEA untuk verifikasi. Anda tidak dapat menggunakan PIN OTP dan Yubikey untuk masuk.

Jika Anda mengalami masalah, lihat /var/log/auth.log .

Jika semuanya berfungsi dengan baik, Anda sekarang melakukan autentikasi dengan:

  1. Token OTP didukung oleh privacyIDEA seperti Google Authenticator atau lebih disukai Yubikey ( faktor kepemilikan keras – tidak dapat disalin)
  2. PIN OTP opsional yang dikontrol oleh privacyIDEA ( pengetahuan )

Tambahkan Kunci SSH

Anda mungkin menyadari, bahwa jika Anda memiliki kunci SSH di authorized_keys, Anda tidak akan dimintai OTP. Saat ini Anda masuk dengan kunci SSH atau dengan OTP. Mari kita ubah ini sekarang, bahwa Anda dapat menggunakan kunci SSH dan OTP.

OpenSSH saat ini dilengkapi dengan opsi AuthenticationMethods . Ini digunakan untuk menggabungkan metode autentikasi yang diperlukan. Lihat halaman manual sshd_config untuk keterangan lebih lanjut.

Dalam file /etc/ssh/sshd_config kita tambahkan baris ini:

Metode Autentikasi kunci publik, kata sandi

Artinya SSH akan mengharuskan Anda memberikan kunci SSH tepercaya dan setelah ini meminta kata sandi (PIN+OTP), yang akan diverifikasi oleh privacyIDEA.

Loginnya akan terlihat seperti ini:

root@gawain ~ # ssh root@privacyidea
Diotentikasi dengan keberhasilan sebagian.
kata sandi root@privacyidea:
Selamat datang di Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-66-generic x86_64)

"Diautentikasi dengan keberhasilan parsial" berarti bahwa autentikasi dengan kunci SSH berhasil. Sekarang Anda perlu menentukan Kata Sandi Sekali Pakai yang akan dikirim ke privacyIDEA.

Catatan: Jika Anda ingin masuk sebagai pengguna “root”, pastikan untuk menambahkan “PermitRootLogin yes” ke sshd_config Anda .

Akhirnya kami berhasil mengautentikasi pengguna dengan:

  1. Kunci SSH ( faktor kepemilikan lunak – dapat disalin!)
  2. frasa sandi opsional pada Kunci SSH, yang tidak dikontrol oleh server! ( pengetahuan )
  3. Token OTP didukung oleh privacyIDEA seperti Google Authenticator atau lebih disukai Yubikey ( faktor kepemilikan keras – tidak dapat disalin)
  4. PIN OTP opsional yang dikontrol oleh privacyIDEA ( pengetahuan )

Kelola Kunci SSH dengan privacyIDEA

Tunggu! Apakah kamu masih di sana? Satu hal mungkin masih terlintas di benakmu:

Sementara semua token OTP dikelola secara terpusat oleh privacyIDEA, pengguna masih menaruh kunci SSH publik mereka di semua mesin dan Anda bertanya-tanya di mana kunci SSH semua pengguna berada.

Tidak ada cara mudah bagi Anda untuk mencabut kunci SSH yang telah disusupi.

Namun, Anda juga dapat menyelesaikan masalah ini dengan privacyIDEA. Pengguna dapat mengunggah kunci SSH publik mereka ke privacyIDEA dengan tokentype SSH Key .

Dengan cara ini Anda juga dapat mengelola semua kunci SSH di privacyIDEA. Di sshd_config Anda perlu menggunakan AuthorizedKeysCommand untuk mengambil kunci SSH dari privayyIDEA tepat pada waktunya. Menghapus kunci SSH di privacyIDEA akan langsung menolak akses untuk pengguna ini.

Anda dapat membaca Manajemen Kunci SSH dengan privacyIDEA untuk mengaturnya.

Dengan cara ini Anda memiliki tiga faktor kuat untuk mengamankan akses ke SSH.