[Tutorial]: SSH Authentication Menggunakan LDAP

tutorial_SSH_Authentication_Menggunakan_LDAP

Author: Firman Alhadiansyah.


SSH Authentication Menggunakan LDAP

Pada tutorial berikut ini akan dibahas bagaimana cara membuat autentikasi SSH dengan menggunakan LDAP. Autentikasi SSH dengan LDAP ini bertujuan agar mempermudah management user dari pengguna SSH, karena management user akan dilakukan secara terpusat pada server LDAP.  Dengan demikian server-server yang memiliki service SSH ini harus terhubung dengan server LDAP agar bisa melakukan autentikasi melalui user-user yang ada di dalam server LDAP tersebut. Langsung saja, berikut adalah langkah-langkah yg digunakan untuk membuat autentikasi SSH dengan menggunakan LDAP, akan tetapi jika server LDAP belum ada dapat digunakan tutorial berikut untuk membuatnya terlebih dahulu.

  1. Dalam konfigurasi ini ada beberapa paket-paket yang diperlukan diantaranya sebagai berikut:
    – openldapclients
    – glibc
    – glibc-common
    – nscd
    – nss-pam-ldapd
    – pam_ldap
  2. Sebelum install paket-paket diatas, pastikan selinux dalam keadaan mati agar nantinya lebih mempermudah konfigurasi
  3. Install paket-paket yang dibutuhkan pada server
    [root@ssh-server ~]#yum install openldap-clients nss-pam-ldapd pam_ldap nscd 
    glibc glibc-common
  4. Konfigurasi file ldap.conf untuk mengarahkannya ke alamat LDAP Server
    [root@ssh-server ~]#vi /etc/openldap/ldap.conf

    Tambahkan konfigurasi berikut

    ## LDAP server's URI
    ## Masukkan Alamat Server LDAP pada baris berikut:
    URI ldap://202.152.9.88/
    
    ## Specify Suffix
    ## Masukkan pula base domain dari Server LDAP pada baris berikut:
    BASE dc=ldap,dc=lintasmediadanawa,dc=com
    
  5. Konfigurasi file nscld.conf

    [root@ssh-server ~]#vi /etc/nslcd.conf

    Tambahkan konfigurasi berikut

    uri ldap://202.152.9.88/
    base dc=ldap,dc=lintasmediadanawa,dc=com
    ssl no
    
  6. Konfigurasi juga file pam_ldap.conf
    [root@ssh-server ~]#vi /etc/pam_ldap.conf

    Tambahkan konfigurasi berikut

    base dc=ldap,dc=lintasmediadanawa,dc=com
    uri ldap://202.152.9.88/
    ssl no
    
  7. Konfigurasi system-auth agar dapat melakukan autentikasi menggunakan ldap
    [root@ssh-server ~]#vi /etc/nslcd.conf

    Tambahkan konfigurasi berikut sesuai baris berwarna merah:

    auth     required     pam_env.so
    auth     sufficient   pam_fprintd.so
    auth     sufficient   pam_unix.so nullok try_first_pass
    auth     requisite    pam_succeed_if.so uid >= 500 quiet
    auth     sufficient   pam_ldap.so use_first_pass
    auth     required     pam_deny.so
    
    account  required     pam_unix.so
    account  sufficient   pam_localuser.so
    account  sufficient   pam_succeed_if.so uid < 500 quiet
    account  [default=bad success=ok user_unknown=ignore] pam_ldap.so
    account  required     pam_permit.so
    
    password requisite    pam_cracklib.so try_first_pass retry=3 type=
    password sufficient   pam_unix.so sha512 shadow nullok try_first_pass use_authok
    password sufficient   pam_ldap.so use_authtok
    password required     pam_deny.so
    
    session  optional     pam_keyinit.so revoke
    session  required     pam_limits.so
    session  [success=1 default=ignore] pam_succeed_if.so service in crond quiet 
    use_uid
    session  required     pam_unix.so
    session  optional     pam_ldap.so
  8. Terakhir konfigurasi file nsswitch.conf agar menggunakan ldap
    [root@ssh-server ~]#vi /etc/nsswitch.conf

    Edit baris-baris berikut

    passwd : files ldap
    shadow : files ldap
    group : files ldap
    netgroup : ldap
    automount : files ldap
    
  9. Aktifkan authconfig ldap agar secara default bisa melakukan ssh menggunakan user-user dalam ldap
    [root@ssh-server ~]#authconfig --enableldapauth --update
    Starting nslcd:                                             [OK]
  10. Pastikan server sudh sinkron dengan user-user dalam Server LDAP
    [root@ssh-server ~]#getent passwd | grep firman
    uid=1003(firman)gid=10(ssh_user)groups=10(ssh_user)

    Atau dapat memeriksanya dengan perintah berikut

    [root@ssh-server ~]#id firman
    uid=1003(firman)gid=10(ssh_user)groups=10(ssh_user)
    
  11. Agar service nslcd berjalan setiap kali server melakukan booting, maka gunakan perintah chkconfig
    [root@ssh-server ~]#chkconfig nslcd on
    
  12. Satu hal lagi yang perlu diperhatikan, saat user  akan melakukan SSH ke server ini, user tersebut memerlukan home directory, untuk itu konfigurasi terlebih dahulu agar saat user login SSH dapat dibuat home directory secara otomatis
    [root@ssh-server ~]#vi /etc/pam.d/sshd

    Tambahkan baris berikut di baris kedua dari file sshd

    session    required    pam_mkhomedir.so umask=0022 skel=/etc/skel
    auth       sufficient  pam_ldap.so
    account    sufficient  pam_permit.so
  13. Sebelummengujinya pastikan bahwa konfigurasi SSH mengizinkan password autentikasi lalu restart service ssh
    [root@ssh-server ~]#vi /etc/ssh/sshd_config

    Konfirmasi baris berikut apakah sudah benar

    PasswordAuthentication yes
  14. Restart service SSH
    [root@ssh-server ~]#service sshd restart
  15. Sekarang saatnya untuk melakukan uji coba Server SSH tersebut
    [root@pc-client001 ~]#ssh firman@ssh-server
    firman@ssh-server's password:
    Creating directory '/home/users/firman'.
    -sh-4.1$

 


lintasmediadanawa.com | cozy.co.id