Manajemen Kunci SSH dengan KeyBox
Setiap proyek dengan lebih dari segelintir mesin akan menyadari betapa banyak pekerjaan yang diperlukan untuk merawatnya dan memastikan bahwa akses dibatasi hanya untuk jumlah orang yang terbatas. Ketika kami mulai membuat build farm, kami segera menyadari betapa memakan waktu hal ini dan karenanya kami ingin menemukan solusi yang tepat untuk menghemat waktu. Salah satu masalah terbesar yang kami temukan adalah memberi orang akses sementara ke mesin. Kami sering menemukan bahwa akses tersebut tidak pernah dicabut dan karenanya hal ini menjadi mimpi buruk bagi administrator.
Saat mencari di internet, saya menemukan proyek sumber terbuka bernama KeyBox. KeyBox adalah konsol SSH berbasis web yang mengelola akses administratif ke sistem secara terpusat. Sangat mudah untuk disiapkan dan kami memutuskan untuk menjalankannya di salah satu mesin kami yang dibundel dengan Jetty. Setelah mengunduh file tar.gz, hanya ada beberapa perintah yang harus dijalankan sebelum Anda memiliki server KeyBox yang berfungsi penuh. Salah satu fitur hebat lainnya adalah Anda dapat menginstal FreeOTP atau Google Authenticator untuk mengaktifkan autentikasi dua faktor dengan Android atau iOS.
Setelah Anda menjalankan contoh KeyBox, Anda dapat mulai mengubah konfigurasi Anda agar sesuai dengan kebutuhan Anda. Kami memutuskan bahwa kami ingin menggunakan kunci ssh publik kami sendiri yang sudah ada daripada membiarkan KeyBox membuatnya, jadi kami harus mengubah berkasnya KeyBoxConfig.properties. Berkas ini dapat ditemukan di KeyBox-jetty/jetty/keybox/WEB-INF/classes. Cukup edit berkas ini dengan editor favorit Anda dan ubah barisnya:
# set to true to generate keys when added/managed by users and enforce strong
# passphrases set to false to allow users to set their own public key
forceUserKeyGeneration=truemenjadi:
# set to true to generate keys when added/managed by users and enforce strong
# passphrases set to false to allow users to set their own public key
forceUserKeyGeneration=falseKemudian simpan konfigurasi Anda dan mulai ulang KeyBox menggunakan./startKeyBox.sh
Menambahkan Mesin
Hal pertama yang saya lakukan saat mendapatkan KeyBox adalah menambahkan beberapa mesin kami. Sangat mudah untuk menambahkan mesin, Anda hanya perlu mengklik 'Systems', 'Add System', lalu mengisi nama tampilan, pengguna sistem, dan host (biarkan kolom port dan Authorized Keys sebagai default).

Setelah Anda mengeklik 'Kirim', KeyBox akan membuat koneksi ssh ke mesin tersebut. Anda akan diminta memasukkan kata sandi untuk pengguna tersebut, tetapi Anda hanya perlu melakukannya sekali. Di sinilah keajaiban itu terjadi… KeyBox akan menghapus semua authorized_keys Anda dan menambahkan kunci publiknya sendiri. Satu hal yang perlu dipertimbangkan adalah bahwa ketika Anda menambahkan sistem baru, Anda hanya menambahkannya untuk satu pengguna tunggal tersebut, jadi Anda mungkin ingin menambahkan sistem tersebut beberapa kali (dalam kasus kami, kami memiliki pengguna sudo di setiap mesin serta pengguna jenkins tanpa izin administratif).
Menetapkan sistem ke profil
Setelah Anda menambahkan beberapa mesin ke KeyBox, hal yang jelas untuk dilakukan selanjutnya adalah mulai menetapkan mesin ke profil. Ide di balik profil adalah Anda dapat membuat kumpulan akses mesin yang kemudian dapat Anda tetapkan kunci ssh-nya. Misalnya dalam kasus kami, kami memiliki profil jenkins yang berisi semua sistem dengan akses pengguna jenkins. Anda mungkin juga ingin membuat profil Mac atau profil Linux untuk memungkinkan pengguna mengakses sistem operasi tertentu saja. Membuat profil itu mudah, Anda tinggal menavigasi ke halaman profil, klik 'Tambahkan Profil' lalu tetapkan nama dan deskripsi opsional. Setelah Anda melakukannya, Anda dapat mengklik 'Tetapkan Sistem' dan mencentang mesin mana yang ingin Anda tetapkan ke profil itu.

Menambahkan Kunci SSH
Ini adalah langkah terakhir bagi kita, Anda telah berhasil menambahkan semua mesin dan menetapkan profil akses ke mesin-mesin tersebut, sekarang Anda ingin memberikan akses kepada orang lain. Seperti yang saya sebutkan di atas, kami ingin pengguna dapat mengirimkan kunci publik mereka yang ada kepada saya, dan agar kunci tersebut ditambahkan ke semua mesin yang mereka butuhkan daripada membuat kunci dan mengirimkannya kembali kepada pengguna. Cara ini tampak lebih logis bagi saya karena mencegah pengguna kehilangan beberapa kunci di sistem mereka.

Untuk menambahkan kunci pengguna, cukup klik 'Tambah/Hapus Kunci', salin kunci publik mereka, tentukan profil mana yang akan diberi kunci, lalu klik 'Kirim'. Ini adalah cara yang bagus untuk menangani manajemen kunci karena berarti administrator memiliki satu tampilan sederhana untuk melihat semua akses mesin oleh setiap pengguna.
Fitur lainnya
KeyBox memiliki beberapa fitur hebat lainnya seperti autentikasi dua faktor, sesi terminal berbasis web, dan eksekusi kode grup, tetapi saya belum cukup menguji fitur-fitur tersebut untuk menulis tentangnya. Secara keseluruhan, KeyBox adalah alat yang hebat, yang akan saya rekomendasikan untuk setiap proyek sumber terbuka yang membutuhkan kontrol yang lebih baik dalam hal manajemen kunci ssh.
Temukan informasi lebih lanjut di http://sshkeybox.com/.

Tidak ada komentar:
Posting Komentar