Berikut beberapa metoda untuk autentikasi user yang ada dilinux :

authentikasi

1. Default authentikasi Linux (passwd,group,shadow)

Account Information : berupa UID,GID, Default Shell,dll
root# cat /etc/passwd
Root:x:0:0:root:/root:/bin/bash

efrizal:x:501:502:/home/efrizal/bin/bash
Authentication Information:  password.
root# cat /etc/shadow
root:Z$ZN$Kr0/$.p/Eg3z6s4B7v9qX5oCT9/:13542:0:99999:7:::
efrizal: $6$O2YJRzun$Sy10dGqnEOjoNuffc9auVSz9kX.1PSR1sEGIwidKzmEw2aVdDzw/J4zLOtKp
Butuh library khusus untuk mengontrolnya : libc

Ada beberapa kelemahan menggunakan default autentikasi ini :
User yang bisa mengambil /etc/passwd dan /etc/shadow, dengan tools tertentu bisa mendapat seluruh password yang ada
Jika kita sering berganti aplikasi dan setiap aplikasi butuh autentikasi, berapa password yang harus dihapal, untuk mencegahnya biasanya file ini di immunisasi dengan perintah chattr.

2. Karberos

Protocol yang dirancang untuk menyediakan strong authentication untuk aplikasi client/server menggunakan kombinasi secret key dan public key cryptography. Menggunakan sebuah server pusat (yang disebut trusted server) yang bertindak sebagai sebuah pihak ketiga yang dipercaya (trusted) untuk meng-otentifikasi user dan mengendalikan akses terhadap sumber daya jaringan.

Dasar pengembangan Kerberos :

  • Tidak mungkin menjamin keamanan seluruh server yang ada di dalam jaringan
  • Konsep ini mengasumsikan bahwa pembobolan server tidak dapat dihindarkan di dalam suatu lingkungan distributed computing yang terdiri dari beberapa server
  •  Tidak mungkin mengamankan semua server
  • Akan lebih aman untuk mengendalikan seluruh akses jaringan melalui satu buah server yang aman
  • Pertukaran kunci Kerberos sangat sederhana tetapi sangat impressive
  • Kerberos tidak pernah mentransmisikan passwords di dalam jaringan, terlepas dari apakah password sudah dienkripsi atau tidak
  • Kerberos menggunakan kunci cryptographic yang disebut “tickets“ untuk mengendalikan akses terhadap sumber daya server jaringan
  • Tickets merupakan encrypted passes atau encrypted files yang dikeluarkan oleh “trusted” server kepada user dan proses untuk menentukan access level

Ada enam tipe tickets: initial, invalid, preauthenticated, renewable, forwardable, dan postdated.

Pertukaran kunci karberos

  • Client mengirimkan permintaan (request) untuk melakukan pengiriman ke server Kerberos
  • Request diberi digital signature oleh client menggunakan private key client (digitally signed client request)‏
  •  Client meng-enkripsi digitally signed request menggunakan public key dari server Kerberos
  • Client mengirimkan digitally signed and encrypted request ke server Kerberos
    • Server Kerberos men-dekripsi request menggunakan private key-nya dan meng-otentifikasi pengirim request dengan cara mem-verifikasi digital signature pengirim menggunakan public key pengirim request
    • Server Kerberos memiliki database yang berisi seluruh public keys dari authorized users sehingga server Kerberos tidak perlu mengandalkan pengirim ataupun pihak ketiga untuk memverifikasi public key pengirim
    • Jika server Kerberos tidak memiliki public key pengirim request di dalam database-nya, maka digital signature tidak dapat diverifikasi
    • Demikian juga bila server Kerberos tidak memiliki public key pengirim request maka pengirim bukanlah seorang authorized user jaringan, sehingga request-nya akan ditolak.
    • Jika server Kerberos telah menerima request dan mengotentifikasi identitas pengirim request, maka server memverifikasi bahwa client memiliki otorisasi untuk mengakses sumber daya jaringan yang diminta.
    • Jika Kerberos telah menentukan bahwa client memiliki otoritas untuk mengakses server payroll, maka server Kerberos akan mengirimkan session ticket yang sama baik kepada client maupun ke server lain.
    •  Untuk mengirimkan session ticket kepada client, server Kerberos meng-enkripsi-nya menggunakan public key dari cleint.
    • Untuk mengirimkan session ticket ke server , server Kerberos menggunakan public key server .
    • Ketika menerima encrypted session ticket, baik client maupun server akan mendekripsi-nya menggunakan private keys masing-masing
    • Session ticket bisa di-tandatangani pula oleh server Kerberos untuk mencegah adanya ticket palsu yang dikirimkan ke client maupun ke sumber daya jaringan

    File yang berhubungan

  • /etc/pam.d
    /etc/pam.conf
    /lib/security
    Pam_ldap.so
    Pam_unix.so
    /etc/security
  • Libc  Name Service  Name Service Switch
    PAM (Puggale Authentication Modules )‏

3. OpenLDAP

Pada sistem otentikasi terpusat, diperlukan sebuah sistem yang khusus menyimpan informasi login dan servis, beserta atribut tambahan seperti group dan lain sebagainya.
Sistem tersebut biasanya rnemanfaatkan directory service.
Beberap Direktori Service yang ada :

  • NDS, milik Novel
  • Active Directory, milik Microsoft
  • OpenLDAP, untuk linux

LDAP, Lightweigh Directory Access Protocol merupakan protokol kelas ringan untuk akses pada directory service.
Bisa digunakan untuk menyimpan informasi login sistem user ke LDAP server : email user, samba, jabber, squid, database ,dsb
Semua servis tersebut umumnya mendefinisikan apa yang diperlukan ke dalam sebuah atau lebih skema.
Sebagai contoh, skema untuk login ke sistem akan membutuhkan username, password, uid, gid, shell, dan lain sebagainya.
Setiap service umumnya mempunyai skema berbeda. Namun hampir sebagian besar service, kita dapat mempergunakan skema LDAP yang telah tersedia. Dengan pendekatan seperti ini, user hanya perlu mengingat satu user dan satu password untuk masuk ke semua service. Biasa disebut Single sign on.
Untuk Instalasi dan konfigurasi silahkan lihat  ke url https://efrizalzaida.wordpress.com/2012/03/20/konfigurasi-openldap-di-linux-dan-phpldapadmin/

4. SAMBA

samba

Saat ini pengembangan Samba dipecah menjadi 2 :
Samba, yang versi Andrew Tridgell

  • Memberikan otentikasi untuk windows didalam satu database password.
  • Memberikan hak administrator terhadap beberapa host NT dan WIN2K workstation
  • Menjalankan skrip login pada saat seorang user login ke dalam jaringan
  • Memberikan otentikasi terhadap pengguna yang menggunakan sistem lain dengan pam_smb.

Samba TNG (The New Generation)

  • Domain Logons
  • Primary Domain Controller untuk windows
  • Back Up Domain Controller untuk windows
  • Anggota dari domain NT yang sudah ada
  • Layanan basis NT (seperti service control, dan update registri jarak jauh)

Memungkinkan pengambilan user dan password dari Domain Windows.

Yang sering dilakukan adalah mengabungakan antara OpenLDAP dan SAMBA untuk instalasi dan konfigurasi lihat di url  https://efrizalzaida.wordpress.com/2012/04/24/instalasi-dan-konfigurasi-samba-dengan-backend-ldap/

5. NIS

NIS, Network Information Service merupakan layanan yang berfungsi untuk menyediakan informasi lewat jaringan yaitu informasi user name, password, home directory . Awalnya dikenal dengan Sun Yellow Pages (YP), berhubung nama Yellow Pages telah dipakai oleh British Telecom maka nama itu tidak diizinkan lagi untuk dipakai .Paket yang dibutuhkan : ypserv

Layanan NIS bekerja berbasiskan panggilan RPC (Remote Procedure Call) yaitu panggilan yang dilakukan oleh klien NIS kepada server NIS .
Untuk membuat RPC ini kita harus menjalankan program yang dinamakan portmapper (portmap) yang bertugas untuk mengkonversi nomor-nomor dalam program RPC ke dalam nomor-nomor port dalam protokol TCP/IP (atau UDP/IP).
Ketika server RPC  (server NIS) sudah diaktifkan, ia akan meminta portmap untuk membuka nomor port tertentu dan nomor program RPC berapa yang siap untuk melayani panggilan RPC dari klien.
Jadi apabila komputer klien melakukan panggilan RPC untuk meminta nomor program, ia harus terlebih dahulu melakukan hubungan dengan  portmap pada server RPC untuk mengetahui nomor port berapa paket RPC harus dikirimkan.
Nah, untuk dapat melakukan komunikasi berbasis RPC ini setting waktu antara server dan klien harus disinkronisasi terlebih dahulu lewat time service.

NIS + NFS

Penggunaan NIS biasanya dipadukan dengan layanan NFS
NFS merupakan layanan untuk menyediakan suatu sistem file komputer remote pada komputer lokal sebagaimana layaknya seperti sistem file komputer lokal itu sendiri.
Sama seperti NIS, NFS dapat bekerja karena adanya portmapper (portmap) sehingga program ini harus terinstall di server NFS dan juga klien. Server akan memberikan sistem file/direktori mana yang akan dipakai oleh klien  diatur di satu file yaitu /etc/export.

Kita membutuhkan paket-paket berikut: ypserv, ypbind, yp-tools, portmap, yang masing-masing tugasnya adalah:

  • yptools aplikasi untuk meminta dan mengolah data ypserv
  • ypbind aplikasi untuk menerima requet dari yptools, kemudian membuat koneksi dari client ke server untuk autentifikasi
  • portmap aplikasi dasar yang memberikan layanan mapping port untuk nis dan nfs nfs-utils aplikasi untuk mensharing dokumen
  • yppasswdd bertujuan untuk mengijinkan para user merubah password mereka yang ada di server NIS dari klien NIS.
  • ypserv merupakan daemon server NIS
  • ypbind merupakan daemon NIS klien
  • ypxfrd digunakan untuk mempercepat transfer “peta” NIS

Untuk menginstal semua paket tersebut, ketikkan perintah berikut:

# yum install yp-tools ypbind ypserv portmap

  • Rubah file network dengan cara mengetikkan perintah:
# vi /etc/sysconfig/network

Lalu tambahkan domain NIS. Misal domain NIS adalah NIS-NETWORK, maka tambahkan di file tersebut:

NISDOMAIN=”NIS”
  • Rubah file yp.conf dengan cara mengetikkan perintah:
# vi /etc/yp.conf

Tambahkan skrip berikut ini:

  • ypserver 127.0.0.1

Sesudah mengkonfigurasi file-file di atas, maka sekarang kita jalankan NIS:

# service portmap start ; service yppasswdd start
# service ypserv start
# chkconfig portmap on
# chkconfig yppasswdd on
# chkconfig ypserv on

Untuk melihat apakah daemon-daemon diatas sudah berjalan, ketikkan perintah berikut:

# rpcinfo -p localhost

Sesudah menentukan nama domain NIS, kita gunakan perintah ypinit untuk membuat otentifikasi file-file untuk domain. dengan cara:

# /usr/lib/yp/ypinit -m

Setelah itu, baru kita bisa menyalakan daemon ypbind dan ypxfrd karena file-file domain NIS telah terbentuk dengan cara:

# service ypbind start
# service ypxfrd start
# chkconfig ypbind on
# chkconfig ypxfrd on

Setelah itu ceklah apakah daemon-daemon NIS sudah berjalan semuanya dengan cara:

# rpcinfo -p localhost

Setelah itu, kita dapat membuat user NIS dengan cara masuk ke server NIS. Dalam tutorial ini kita akan membuat user tono dan memberinya sebuah passsword baru.

# useradd efrizal
# passwd  efrizal

Setelah itu, kita harus mengupdate file-file otentifikasi domain NIS dengan cara mengeksekusi perintah make di direktori /var/yp dan mengeceknya dengan menggunakan perintah ypmatch.

# cd /var/yp
# make
# ypmatch efrizal passwd

Untuk mengecek informasi otentifikasi user, selain menggunakan ypmatch, kita juga bisa menggunakan perintah getent.

# getent passwd efrizal

Klien

Sesudah selsesai mengkonfigurasi server NIS, maka kita berlanjut untuk menkonfigurasi klien NIS

Ketikkan perintah dibawah ini di komputer klien:

# authconfig-tui

Beri tanda bintang dengan cara menekan space bar pada bagian Use NIS.

masukkan nama Domain yang telah dibuat di server NIS dan ketikkan IP server tersebut. Jika sudah selesai tekan tombol OK. Setelah menekan tombol OK, maka sistem secara otomatis akan merestart portmap dan menyalakan Binding domain DNS. Dan juga, sistem merubah file /etc/yp.conf yang berisi alamat IP server NIS dan file /etc/sysconfig/network yang berisi nama domain NIS secara otomatis. Di tutorial ini, tambahkan skrip berikut di file yp.conf:

domain NIS server 192.168.1.1

dan di file jaringan:

NISDOMAIN=NIS

Perintah authconfig juga mengupdate file /etc/nsswitch.conf pada bagian passwd, shadow, dan group.

akan berubah sebagai berikut:

passwd: files nisshadow: files nis
group: files nis

Lainya

Untuk autentikasi lainya yang biasa digunakan untuk klien dalam mengakses internet adalah dengan mengunakan fitur squid ncsa_auth. Sekarang yang populer adalah single sign on (SSO) seperti opensso, josso,kdc dll.

by Efrizal Zaida [efrizal@nurulfikri.ac.id]  Staf Pengajar Tetap STT Terpadu Nurul Fikri

Share