Setelah berkutat dengan setup dan konfigurasi LDAP (Lightweight Directory Access Protoco) mengguanakn Fedora Directory Server akhirnya LDAP jalan juga. Selanjutanya tinggal mengintegrasikan beberapa aplikasi agar bisa terkoneksi dengan LDAP. Beberapa aplikasi yang akan diintegrasikan dengan LDAP antara lain Samba, Postfix, Squid dan beberapa aplikasi yang dibuat oleh team seperti Absensi, Monitoring Kapal dan beberapa aplikasi lainnya.

Untuk tahap awal saya akan mencoba mengintegrasikan Samba dengan Fedora Directory Server. Beruntung sekali dokumentasi dari FDS ini cukup bagus dan komplit sehingga saya tidak terlalu kesulitan untuk mencari panduannya.

Ok sekarang mari kita mulai integrasi Samba + FDS. Sebelumnya saya baca-baca dulu dokumentasinya di sini.

  1. Sebelumnya siapkan secangkir kopi dan beberapa bungkus snack (bukan rokok lho… kebetulan saya ga merokok krn kata nenek merokok itu.. walah malah ngelantur).
  2. Persiapkan semua yang dibutuhkan :
    • openldap-servers (terdapat utiliti untuk keperluan migrasi yang akan digunakan dalam proses instalsi)
    • fedora-ds
    • samba, samba-client, samba-common
    • schema to ldif migration script
  3. Konversi scheme ke dalam ldif format

    # perl ol-schema-migrate.pl -b /usr/share/doc/samba-*/LDAP/samba.schema >
    /opt/fedora-ds/slapd-<server>/config/schema/61samba.ldif
    lalu restart fds :
    # /opt/fedora-ds/slapd-<server>/restart-slapd

  4. Konfigurasi samba dengan mengedit smb.conf seperti dibawah ini:

    [global]
    workgroup = YOURWORKGROUP
    security = user
    passdb backend = ldapsam:ldap://example.com
    ldap admin dn = cn=Directory Manager
    ldap suffix = dc=example,dc=com
    ldap user suffix = ou=People
    ldap machine suffix = ou=Computers
    ldap group suffix = ou=Groupslog file = /var/log/%m.log
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    os level = 33
    domain logons = yes
    domain master = yes
    local master = yes
    preferred master = yes
    wins support = yes
    logon home = %L%uprofiles
    logon path = %Lprofiles%u
    logon drive = H:
    template shell = /bin/false
    winbind use default domain = no
    [netlogon]
    path = /var/lib/samba/netlogon
    read only = yes
    browsable = no
    [profiles]
    path = /var/lib/samba/profiles
    read only = no
    create mask = 0600
    directory mask = 0700
    [homes]
    browsable = no
    writable = yes

  5. Buat direktori seperti dibawah ini

    # mkdir /var/lib/samba
    # mkdir /var/lib/samba/{netlogon,profiles}
    # chown root:root -R /var/lib/samba
    # chmod 0755 /var/lib/samba/netlogon
    # chmod 1755 /var/lib/samba/profiles

  6. Selanjutanya buat file /tmp/sambaDomainName.ldif dgn isi sbb:

    dn: sambaDomainName=<YOURWORKGROUP>,dc=example,dc=com
    objectclass: sambaDomain
    objectclass: sambaUnixIdPool
    objectclass: top
    sambaDomainName: <YOURWORKGROUP>
    sambaSID: S-1-5-21-1803520230-1543781662-649387223
    uidNumber: 550id
    Number: 550

  7. Untuk mendapat sambSID ketikkan perintah berikut :

    # net getlocalsid
    SID for domain YOURWORKGROUP is: S-1-5-21-1803520230-1543781662-649387223

  8. Selanjutnya “Tempatkan(Popolate)” isi FDS diatas dengan cara :

    # /opt/fedora-ds/slapd-<server>/ldif2ldap “cn=Directory manager” password
    /tmp/sambaDomainName.ldif

  9. Lalu buat file baru /tmp/sambaGroups dgn isi sbb :

    Domain Admins:x:2512:
    Domain Users:x:2513:
    Domain Guests:x:2514:
    Domain Computers:x:2515:

  10. Selanjutanya convert /tmp/sambaGroups tadi kedalam format ldif yg nantinya akan di”import” ke dalam FDS :

    # /usr/share/openldap/migration/migrate_group.pl /tmp/sambaGroups >/tmp/sambaGroups.ldif
    # cat /tmp/sambaGroups.ldifdn: cn=Domain Admins,ou=Groups,dc=example,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: Domain Admins
    userPassword: {crypt}x
    gidNumber: 2512

    dn: cn=Domain Users,ou=Groups,dc=example,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: Domain Users
    userPassword: {crypt}x
    gidNumber: 2513

    dn: cn=Domain Guests,ou=Groups,dc=example,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: Domain Guests
    userPassword: {crypt}x
    gidNumber: 2514

    dn: cn=Domain Computers,ou=Groups,dc=example,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: Domain Computers
    userPassword: {crypt}x
    gidNumber: 2515

  11. Sekarang import /tmp/sambaGroups.ldif kedalam FDS :

    # /opt/fedora-ds/slapd-<server>/ldif2ldap “cn=Directory manager”
    password /tmp/sambaGroups.ldif

  12. Lalu Map Group Samba groups ke dalam Group Linux :

    # net groupmap add rid=2512 ntgroup=’Domain Admins’ unixgroup=’Domain Admins’
    # net groupmap add rid=2513 ntgroup=’Domain Users’ unixgroup=’Domain Users’
    # net groupmap add rid=2514 ntgroup=’Domain Guests’ unixgroup=’Domain Guests’
    # net groupmap add rid=2515 ntgroup=’Domain Computers’ unixgroup=’Domain Computers

  13. Selanjutnya buat file /tmp/sambaAdmin dengan isi sbb :

    Administrator:x:0:0:Samba Admin:/root:/bin/bash

  14. Selanjutnya migrasikan /tmp/sambaAdmin ke dlm format ldif dan import ke FDS :

    # /usr/share/openldap/migration/migrate_passwd.pl /tmp/sambaAdmin > /tmp/sambaAdmin.ldif
    # /opt/fedora-ds/slapd-<server>/ldif2ldap “cn=Directory manager”
    password /tmp/sambaAdmin.ldif

  15. Selanjutnya buat Samba Administrator account dan modify account tsb dengan menggunakan Samba SID yang benar :

    # smbpasswd -a Administrator -w<ldap-admin-password>
    # pdbedit -U $( net getlocalsid | sed ‘s/SID for domain YOURWORKGROUP is: //’ ) -500 -u Administrator -r

  16. Terakhir start Service samba dan map user yang sudah ada ke dalam Samba user :

    # service smb start; chkconfig smb on
    # smbpasswd -a testuser

  17. Done

Catatan :

  • File-file yang berfungsi untuk migrasi seperti “migrate_group.pl” bisa didapatkan dari paket openldap-server seperti yang disebutkan di requirements sebelumnya.
  • Untuk file migrate_common.ph harap dimodifikasi isinya dan sesuaikan dengan domain yang anda gunakan seperti berikut :

    $NAMINGCONTEXT{‘group’} = “ou=Groups”; //pake huruf s
    # Default DNS domain
    $DEFAULT_MAIL_DOMAIN = “example.com”;# Default base
    $DEFAULT_BASE = “dc=example,dc=com”;
    $EXTENDED_SCHEMA = 1;

Selesai sudah migrasi dan konfigurasi Samba+LDAP(FDS). Selanjutanya saya coba konek dari mesin client (WindowsXp). Saya seting Windows XP agar domainnya mengarah ke domain yang sudah tadi dibuat dan ternyata berhasil.

Sekarang SAMBA + LDAP sudah bisa digunakan, tinggal create user satu-satu nih…🙂.