Kerberos adalah protokol otentikasi jaringan yang menggunakan kriptografi kunci simetris dan memerlukan otorisasi dari pihak ketiga yang tepercaya untuk mengotentikasi aplikasi client-server. Ini awalnya dikembangkan oleh Massachusetts Institute of Technology (MIT) untuk melindungi layanan jaringan yang disediakan oleh proyek Athena.
Di dunia modern, Kerberos sering digunakan sebagai layanan autentikasi pihak ketiga. Ini berarti bahwa semua klien mempercayai penilaian Kerberos tentang identitas klien lain.
Dalam tutorial ini, kami akan menunjukkan cara mengatur otentikasi Kerberos antara dua server Ubuntu 18.04. Kami akan menginstal dan mengkonfigurasi server Kerberos di server Ubuntu dan kemudian menginstal klien Kerberos di sisi lain. Terakhir, kami akan menguji otentikasi layanan SSH dengan server Kerberos.
Prasyarat
- Server Ubuntu 18.04
- 10.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
- Hak istimewa root
Apa yang akan kami lakukan:
- Siapkan File FQDN
- Instal Server KDC Kerberos
- Konfigurasi Server KDC Kerberos
- Instal dan Konfigurasikan Klien Kerberos
- Pengujian
Langkah 1 - Siapkan FQDN
Pertama-tama, kita harus mengkonfigurasi FQDN di server Kerberos dan kemudian mengedit file '/etc/hosts' dari server.
Ubah FQDN server Kerberos menggunakan perintah berikut.
hostnamectl set-hostname krb5.ahmad.io
Setelah itu, edit file '/etc/hosts' menggunakan editor vim.
vim /etc/hosts
Ubah alamat IP dan FQDN dengan milik Anda dan rekatkan ke dalamnya.
10.10.10.15 krb5.ahmad.io krb5
Simpan dan tutup.
Sekarang uji menggunakan perintah 'ping' di bawah dan pastikan FQDN diselesaikan ke alamat IP yang benar.
ping -c 3 $(hostname -f)
Langkah 2 - Instal Server KDC Kerberos
Sekarang kita akan menginstal server Kerberos di server 'krb5' dengan alamat IP '10.10.10.15' dan FQDN adalah 'krb5.ahmad.io'.
Instal server Kerberos menggunakan perintah apt berikut.
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
Selama instalasi, Anda akan ditanya tentang Kerberos Realm, server Kerberos Realm, dan server Admin.
Secara default, Kerberos akan menggunakan nama domain server Kerberos sebagai REALM, 'AHMAD.IO '.
Server Kerberos adalah 'krb5.ahmad.io '.
Dan server Admin sama dengan server Kerberos 'krb5.ahmad.io '.
Setelah instalasi selesai, Anda akan ditampilkan layanan Kerberos gagal dijalankan. Tidak apa-apa karena kami akan mengkonfigurasi pada tahap berikutnya.
Langkah 3 - Konfigurasi Server KDC Kerberos
Sekarang buat kata sandi master baru yang kuat untuk Kerberos REALM menggunakan perintah berikut.
sudo krb5_newrealm
Ketikkan kata sandi Anda yang kuat dan kata sandi REALM akan dibuat di file '/etc/krb5kdc/stash'.
Setelah itu, kita perlu membuat user admin (admin principal) untuk server KDC Kerberos, menambahkan hostname server Kerberos ke database, lalu membuat keytab untuk server Kerberos.
Jalankan antarmuka baris perintah 'kadmin.local' untuk perintah administrasi Kerberos di bawah ini.
sudo kadmin.local
Buat prinsip pengguna admin baru yang disebut 'root'.
addprinc root/admin
Ketikkan kata sandi yang kuat untuk kepala admin 'root'.
Tambahkan server KDC Kerberos ke database dan buat file keytab untuk host KDC.
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
Kemudian tutup utilitas 'kadmin.local'.
quit
Selanjutnya, kita perlu menambahkan prinsip admin 'root' ke daftar kontrol akses dengan mengedit file '/etc/krb5kdc/kadm5.acl'.
vim /etc/krb5kdc/kadm5.acl
Tambahkan konfigurasi berikut.
root/admin *
Simpan dan tutup konfigurasi, lalu mulai ulang layanan Kerberos.
sudo systemctl restart krb5-admin-server.service
Dan konfigurasi server KDC Kerberos telah selesai.
Langkah 4 - Instal dan Konfigurasikan Klien Kerberos
Pada langkah ini, kita akan menginstal klien Kerberos di server Ubuntu dengan alamat IP '10.10.10.16' dan nama host 'client1'.
- Konfigurasi FQDN
Konfigurasikan FQDN pada mesin klien menggunakan perintah berikut.
hostnamectl set-hostname client1.ahmad.io
Setelah itu, edit file '/etc/hosts' menggunakan editor vim.
vim /etc/hosts
Rekatkan server KDC Kerberos dan klien seperti di bawah ini.
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
Simpan dan tutup.
- Instal Klien Kerberos
Instal paket klien Kerberos dengan menjalankan perintah apt berikut.
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Selama instalasi, Anda akan ditanya tentang Kerberos Realm, server Kerberos Realm, dan server Admin.
Secara default, Kerberos akan menggunakan nama domain server Kerberos sebagai REALM, 'AHMAD.IO '.
Server Kerberos adalah 'krb5.ahmad.io '.
Dan server Admin sama dengan server Kerberos 'krb5.ahmad.io '.
Dan penginstalan untuk klien Kerberos selesai.
- Konfigurasikan Klien Kerberos
Dari mesin klien, sambungkan ke server KDC Kerberos menggunakan perintah 'kadmin'.
kadmin
Dan Anda akan dimintai kata sandi prinsip 'root/admin'. Ketik kata sandi dan Anda akan masuk ke sistem administrasi KDC Kerberos.
Sekarang tambahkan klien FQDN 'client1.ahmad.io' ke database Kerberos dan tambahkan file keytab untuk klien.
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
Kemudian tutup antarmuka Administrasi kaadmin Kerberos.
quit
Dan konfigurasi klien Kerberos selesai.
Langkah 5 - Pengujian
Untuk tujuan pengujian ini, kita akan mengonfigurasi otentikasi SSH menggunakan Kerberos. Mesin klien 'client1.ahmad.io' akan terhubung ke server 'krb5.ahmad.io' melalui SSH dengan otentikasi Kerberos.
- Siapkan Server 'krb5.ahmad.io'
Buat pengguna sistem baru bernama 'ammar'.
useradd -m -s /bin/bash ammar
Masuk ke administrasi KDC Kerberos dan tambahkan pengguna utama baru yang disebut 'ammar'.
kadmin.local
addprinc ammar
Tutup antarmuka Administrasi Kerberos dan edit konfigurasi ssh '/etc/ssh/sshd_config'.
vim /etc/ssh/sshd_config
Batalkan komentar 'GSSAPIAuthentication' dan aktifkan dengan mengubah nilainya menjadi ''.
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Simpan dan tutup konfigurasi, lalu restart layanan ssh.
systemctl restart sshd
- Siapkan Mesin 'client1.ahmad.io'
Tambahkan pengguna sistem baru 'ammar' pada mesin klien dan login ke dalamnya.
useradd -m -s /bin/bash ammar
su - ammar
Setelah itu, inisialisasi prinsip pengguna Kerberos 'ammar'.
kinit ammar
Ketik kata sandi pengguna dan setelah itu periksa Tiket yang tersedia menggunakan perintah berikut.
klist
Dan Anda akan diperlihatkan hasil sebagai berikut.
Sekarang Anda dapat menghubungkan server 'krb5.ahmad.io' menggunakan otentikasi SSH Kerberos.
ssh krb5.ahmad.io
Dan Anda akan terhubung ke server 'krb5.ahmad.io' melalui SSH dengan otentikasi Kerberos.
Di bawah ini adalah SSH Log setelah login ke server.
Akhirnya, instalasi dan konfigurasi server dan klien Kerberos di Ubuntu 18.04 telah berhasil diselesaikan.