GNU/Linux >> Belajar Linux >  >> Linux

Cara Install Kerberos 5 KDC Server di Linux untuk Otentikasi

Kerberos adalah protokol otentikasi jaringan.

Kerberos menyediakan otentikasi kriptografi yang kuat terhadap perangkat yang memungkinkan klien &server untuk berkomunikasi dengan cara yang lebih aman. Ini dirancang untuk mengatasi masalah keamanan jaringan.

Ketika firewall bertindak sebagai solusi untuk mengatasi intrusi dari jaringan eksternal, Kerberos biasanya digunakan untuk mengatasi intrusi dan masalah keamanan lainnya di dalam jaringan.

Versi Kerberos saat ini adalah versi 5 yang disebut sebagai KRB5 .

Untuk mengimplementasikan Kerberos, kita perlu menjalankan layanan otentikasi terpusat di server.

Layanan ini disebut KEY DISTRIBUTION CENTER (KDC).

Server yang terdaftar di KDC dipercaya oleh semua komputer lain di ranah Kerberos.

Contoh File krb5.conf

Berikut adalah contoh file krb5.conf yang berisi semua informasi pemetaan REALM dan domain ke REALM,

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

Instal server KDC Kerberos

Untuk alasan keamanan, disarankan untuk menjalankan server Kerberos (KDC) di server terpisah.

Unduh dan instal paket server krb5.

# rpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm
Preparing...       ########################################### [100%]
   1:krb5-server   ########################################### [100%]

Pastikan rpm berikut telah diinstal sebelum mengkonfigurasi KDC:

# rpm -qa | grep -i krb5
pam_krb5-2.3.11-9.el6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

Ubah File /etc/krb5.conf

Ubah /etc/krb5.conf untuk mencerminkan seperti di bawah ini dengan pemetaan REALM dan DOMAIN_REALM yang sesuai.

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = elserver1.example.com
  admin_server = elserver1.example.com
 }

[domain_realm]
 .myrealm.com = MYREALM.COM
 myrealm.com = MYREALM.COM

Ubah File kdc.conf

Juga kdc.conf harus dimodifikasi seperti yang ditunjukkan di bawah ini.

# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

Buat basis data KDC

Selanjutnya buat database KDC menggunakan perintah kdb5_util seperti gambar di bawah ini. Pada tahap ini, masukkan kata sandi yang sesuai untuk kunci master basis data KDC.

# /usr/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MYREALM.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

Tetapkan Hak Istimewa Administrator

Pengguna dapat diberikan hak administrator ke database menggunakan file /var/kerberos/krb5kdc/kadm5.acl.

# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]     *

Dalam contoh di atas, setiap prinsipal di MYREALM dengan instans admin memiliki semua hak administrator.

Buat Kepala Sekolah

Buat kepala sekolah menggunakan perintah berikut. Dalam contoh ini, saya membuat prinsipal dengan nama pengguna “eluser”.

# kadmin.local -q "addprinc eluser/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for eluser/[email protected]; defaulting to no policy
Enter password for principal "eluser/[email protected]":
Re-enter password for principal "eluser/[email protected]":
Principal "eluser/[email protected]" created.

Mulai Layanan Kerberos

Jalankan daemon KDC dan kaadmin seperti yang ditunjukkan di bawah ini.

# service krb5kdc start
Starting Kerberos 5 KDC:               [  OK  ]

# service kadmin start
Starting Kerberos 5 Admin Server:      [  OK  ]

Konfigurasi Klien Kerberos

Konfigurasikan klien Kerberos untuk mengautentikasi terhadap database KDC:

Sekarang mari kita lihat cara mengonfigurasi klien krb5 untuk mengautentikasi terhadap basis data KDC Kerberos yang kita buat di atas.

Langkah 1:Instal paket krb5-libs dan krb5-workstation pada mesin klien.

Langkah 2:Salin /etc/krb5.conf dari server KDC ke mesin klien.

Langkah 3:Sekarang kita perlu membuat prinsipal untuk klien di database KDC/Kerberos.

Anda dapat menggunakan perintah di bawah ini untuk membuat prinsipal untuk mesin klien di server master KDC. Dalam contoh di bawah ini, saya membuat prinsip host untuk klien elserver3.example.com di server master KDC elserver1.example.com

# kadmin.local -q "addprinc host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for host/[email protected]; defaulting to no policy
Enter password for principal "host/[email protected]":
Re-enter password for principal "host/[email protected]":
Principal "host/[email protected]" created.

Langkah 4:Ekstrak krb5.keytab untuk klien dari server master KDC menggunakan perintah di bawah ini:

# kadmin.local -q "ktadd -k /etc/krb5.keytab host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.

Ini menyelesaikan konfigurasi. Anda sudah selesai pada tahap ini.

Mulai sekarang, setiap kali Anda membuat koneksi SSH, RSH, host memverifikasi identitasnya terhadap database KDC menggunakan file keytab dan membuat koneksi aman melalui Kerberos.

Ktadd digunakan untuk membuat tab kunci baru atau menambahkan prinsip ke tab kunci yang ada dari perintah kadmin.

Ktremove digunakan untuk menghapus prinsipal dari tab kunci yang ada. Perintah untuk menghapus prinsip yang kita buat di atas adalah,

kadmin.local -q "ktremove -k /etc/krb5.keytab –q all"

Menghapus basis data KDC

Untuk beberapa alasan, jika Anda harus menghapus database KDC, gunakan perintah berikut:

# kdb5_util -r MYREALM.COM destroy
kdb5_util: Deleting KDC database stored in /usr/local/var/krb5kdc/principal, you sure
(type yes to confirm)? <== yes
OK, deleting database '/usr/local/var/krb5kdc/principal'...

Opsi -f pada perintah di atas memaksa penghapusan basis data KDC.

Cadangkan dan Pulihkan Basis Data KDC

Untuk mencadangkan basis data KDC ke file, gunakan krb5_util_dump.

# kdb5_util dump kdcfile

# ls -l kdcfile
-rw-------. 1 root root 5382 Apr 10 07:25 kdcfile

Untuk memulihkan database KDC dari file dump yang dibuat pada langkah di atas, lakukan hal berikut:

# kdb5_util load kdcfile

Linux
  1. Cara Menginstal Server Web Nginx di Linux

  2. Cara menginstal Borgmatic untuk backup server Linux yang mudah

  3. Cara Menginstal Virtualisasi Server Linux

  1. Cara Menginstal SQL Server di Linux

  2. Cara Menginstal Sophos Intercept X Advanced untuk Server

  3. Bagaimana cara menginstal Microsoft SQL Server untuk linux (fedora)?

  1. Cara menginstal server Minecraft di RHEL 8 Linux

  2. Cara menginstal Server Minecraft di Linux

  3. Cara Mengatur Otentikasi Multi-Faktor Untuk SSH Di Linux