Membangun Linux Active Directory Dengan Samba4 Pada Redhat/CentOS Part 4 : Compile, Install & Provisioning Samba 4

DOWNLOAD DAN COMPILE SAMBA

Sebelum melakukan compile dan instalasi, install terlebih dahulu package-package yang dibutuhkan untuk proses compile
[code lang=’bash’]
yum install libacl-devel e2fsprogs-devel gnutls-devel readline-devel python-devel gdb pkgconfig gcc libblkid-devel zlib-devel setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel krb5-workstation perl openldap-devel bind bind-sdb
[/code]
Download samba 4 latest update dan simpan pada folder /opt. Samba 4 dapat di download pada link berikut : https://ftp.samba.org/pub/samba/stable/. Saat tulisan ini dibuat, Samba 4 paling update adalah samba-4-0-5
[code lang=’bash’]
cd /opt
wget -c https://ftp.samba.org/pub/samba/stable/samba-4.0.5.tar.gz
tar -zxvf samba-4.0.5.tar.gz
cd samba-4.0.5
./configure.developer
make
make install
[/code]
compile-samba-imanudin.com
PROVISIONING SAMBA

Provisioning pada Samba bisa dikatakan sebagai dcpromo-nya pada Windows Server. Pada contoh ini, nama domain yang digunakan adalah imanudin.com dan nama hostname samba4 yang telah dikonfigurasi.  Jalankan perintah berikut pada terminal :
[code lang=’bash’]
/usr/local/samba/bin/samba-tool domain provision
[/code]
Pada bagian Realm diisi dengan nama domain, yaitu IMANUDIN.COM dan pada bagian Domain diisi dengan nama domain tanpa TLD (Top Level Domain), yaitu IMANUDIN. Untuk Server Role diisi dengan dc dan DNS backend menggunakan BIND9_DLZ. Isian password minimal 8 karakter dan ada 1 huruf besar, 1 huruf kecil. Tunggu hingga proses provisioning selesai, jika tidak ada masalah seharusnya hasil provisioning seperti berikut :

# /usr/local/samba/bin/samba-tool domain provision
Realm [IMANUDIN.COM]: IMANUDIN.COM
Domain [IMANUDIN]: IMANUDIN
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=imanudin,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=imanudin,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Unable to find group id for BIND,
set permissions to sam.ldb* files manually
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4
NetBIOS Domain: IMANUDIN
DNS Domain: imanudin.com
DOMAIN SID: S-1-5-21-2376012262-3063750277-1052043788

STARTING SAMBA 4

Untuk melakukan start, stop samba4 kita dapat menggunakan perintah berikut :
[code lang=’bash’]
/usr/local/samba/sbin/samba
[/code]
Check apakah samba sudah berjalan dengan perintah ps
[code lang=’bash’]
ps aux | grep samba
[/code]
Untuk melakukan stop, kita dapat menggunakan perintah pkill
[code lang=’bash’]
pkill samba
[/code]
Agar otomatis jalan pada saat booting, kita dapat membuat satu script untuk menjalankannya. Buat script dengan nama samba4 pada folder /etc/rc.d/init.d kemudian simpan
[code lang=’bash’]
vi /etc/rc.d/init.d/samba4
[/code]
Isi dengan isian berikut :
[code lang=’bash’]
#! /bin/bash
#
# samba4 Bring up/down samba4 service
#
# chkconfig: – 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functions

if [ -f /etc/sysconfig/samba4 ]; then
. /etc/sysconfig/samba4
fi

CWD=$(pwd)
prog=”samba4″

start() {
# Attach irda device
echo -n $”Starting $prog: ”
/usr/local/samba/sbin/samba
sleep 2
if ps ax | grep -v “grep” | grep -q /samba/sbin/samba ; then success $”samba4 startup”; else failure $”samba4 startup”; fi
echo
}
stop() {
# Stop service.
echo -n $”Shutting down $prog: ”
killall samba
sleep 2
if ps ax | grep -v “grep” | grep -q /samba/sbin/samba ; then failure $”samba4 shutdown”; else success $”samba4 shutdown”; fi
echo
}
status() {
/usr/local/samba/sbin/samba –show-build
}

# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status irattach
;;
restart|reload)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart|status}”
exit 1
esac

exit 0
[/code]
Jalankan perintah berikut untuk mengaktifkannya
[code lang=’bash’]
chmod 755 /etc/rc.d/init.d/samba4
chmod +x /etc/rc.d/init.d/samba4
ln -s /etc/rc.d/init.d/samba4 /etc/rc3.d/S80samba4
chkconfig –add samba4
chkconfig samba4 on
service samba4 restart
[/code]
Test masuk ke folder share dengan menjalankan perintah berikut :
[code lang=’bash’]
/usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%Rahasia123
[/code]
Rahasia123 diatas adalah password yang dipakai pada saat provisioning. Jika berhasil, prompt konsole akan berubah menjadi : smb: \> :

[root@samba4 ~]# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%Rahasia123
Domain=[IMANUDIN] OS=[Unix] Server=[Samba 4.0.5]
smb: \>

Jika semua perintah diatas dilakukan dan mengeluarkan hasil seperti contoh diatas, maka folder share samba4 sudah OK. Ketik exit untuk keluar dari prompt.

Artikel selanjutnya adalah setup Dynamic DNS & Kerberos untuk keperluan komunikasi dengan sistem klien.

Semoga bermanfaat 😀

Artikel sebelumnya :

  1. https://imanudin.com/2013/05/10/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-1-introduction/
  2. https://imanudin.com/2013/05/11/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-2-instalasi-sistem-operasi/
  3. https://imanudin.com/2013/05/12/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-3-konfigurasi-network-dan-repositori/

Ahmad Imanudin, Tinggal di Bekasi. Bekerja sebagai salah satu staff di PT. Excellent Infotama Kreasindo. Dapat dihubungi pada alamat surel ahmad [at] imanudin.com

37 thoughts on “Membangun Linux Active Directory Dengan Samba4 Pada Redhat/CentOS Part 4 : Compile, Install & Provisioning Samba 4

  • Mas Saya lagi coba install under CentOS 6.4 32bit.
    Dimana saya bisa dapat file versi 32 bit untuk
    bind9.9Centos.tar.gz..??

  • mas iman seting dns servernya gimana sih koq sy gagal terus apa bisa pake webmin mas sy ikutin tutorial yg beli di excelent juga gagal,salam

  • boleh ga mas training bikin dns ma mas iman abis mau training di exelent jaraknya jauh terus waktunya ga pernah kebagian mas kalo bisa training online aja gitu mas

  • training bikin active directory ada yg online ga sih mas saya mau tuh kalo ada kalo mas iman lagi punya waktu senggang aja ajarin saya buatnya kalo bisa berapa sih mas biayanya di tunggu ya mas jawabannya

  • Mas Ahmad,
    di pembahasan :
    Test masuk ke folder share dengan menjalankan perintah berikut :
    view sourceprint?
    1./usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%Rahasia123

    saya coba dan hasilnya : NT_STATUS_LOGON_FAILURE
    salah dimana yah?
    dan untuk user = administrator dan password rahasia123 didapat dari mana yah?

    Mohon pencerahannya.
    Thx

  • @Jaro : Halo mas,

    Untuk user administrator by default ada dan di create pada saat Provisioning diatas. Untuk password Rahasia123 adalah password yang saya masukkan pada saat Provisioning. Coba lihat lagi proses Provisioning diatas mas

    • Mas Ahmad,

      Oke thx mas,
      sudah berhasil.

      sekarang masalah ada di konfigurasi Dynamic DNS.
      (pindah ke part-4)

      thx 🙂

  • Mas Ahmad,
    saya mo tanya untuk konfigurasi autostart script samba, pada bagian:
    ln -s /etc/rc.d/init.d/samba4 /etc/rc3.d/S80samba4
    koq direktori /etc/rc3.d/ ngga tersedia mas?? Apa harus mkdir dulu..??

    kalo step tersebut saya lewati dulu boleh??

  • hallo mas ahmad
    saya pakai centos 6.5
    saya jalankan samba tapi error seperti ini kira kira yang kurang apaa ya
    saya liat /usr/local/samba/private/named.conf
    juga tidak ada

    [root@samba4 samba-4.1.2]# /usr/local/samba/bin/samba-tool domain provision
    Realm [RVM.CO.ID]: rvm.co.id
    Domain [rvm]: rvm
    Server Role (dc, member, standalone) [dc]: dc
    DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
    Administrator password:
    Retype password:
    Looking up IPv4 addresses
    Looking up IPv6 addresses
    No IPv6 address will be assigned
    ldb: module schema_load initialization failed : No such object
    ldb: module rootdse initialization failed : No such object
    ldb: module samba_dsdb initialization failed : No such object
    ldb: Unable to load modules for /usr/local/samba/private/sam.ldb: (null)
    samdb_connect failed
    VFS connect failed!
    ERROR(): Provision failed – ProvisioningError: Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the ‘acl’ option.
    File “/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/domain.py”, line 398, in run
    use_rfc2307=use_rfc2307, skip_sysvolacl=False)
    File “/usr/local/samba/lib64/python2.6/site-packages/samba/provision/__init__.py”, line 2052, in provision
    raise ProvisioningError(“Your filesystem or build does not support posix ACLs, which s3fs requires. Try the mounting the filesystem with the ‘acl’ option.”)

    • [root@samba4 wandi]# cat /etc/fstab

      #
      # /etc/fstab
      # Created by anaconda on Thu Dec 5 22:05:02 2013
      #
      # Accessible filesystems, by reference, are maintained under ‘/dev/disk’
      # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
      #
      /dev/mapper/vg_samba4-lv_root / ext4 defaults 1 1
      UUID=faaae503-03c2-44a3-a854-fc9ae79837f3 /boot ext4 defaults 1 2
      /dev/mapper/vg_samba4-lv_home /home ext4 defaults 1 2
      /dev/mapper/vg_samba4-lv_swap swap swap defaults 0 0
      tmpfs /dev/shm tmpfs defaults 0 0
      devpts /dev/pts devpts gid=5,mode=620 0 0
      sysfs /sys sysfs defaults 0 0
      proc /proc proc defaults 0 0

  • maaf mas mau tanya, ketika saya add user domain dari komputer BDC dan untuk status pembuatan usernya sudah sukses, kenapa ketika saya user list di komputer utama AD tidak ada ya?

    mohon bantuannya, terima kasih.

  • Mas Imam saat saya menjalankan samba provision kok eror kira-kira apanya ya mas, saya pakai centos 5.4
    ERROR(exceptions.TypeError): uncaught exception – __init__() got an unexpected keyword argument ‘epilog’
    File “/usr/local/samba/bin/samba-tool”, line 45, in ?
    retval = cmd._run(“samba-tool”, subcommand, *args)
    File “/usr/local/samba/lib64/python2.4/site-packages/samba/netcmd/__init__.py”, line 201, in _run
    return self.subcommands[subcommand]._run(
    File “/usr/local/samba/lib64/python2.4/site-packages/samba/netcmd/__init__.py”, line 201, in _run
    return self.subcommands[subcommand]._run(
    File “/usr/local/samba/lib64/python2.4/site-packages/samba/netcmd/__init__.py”, line 142, in _run
    parser, optiongroups = self._create_parser(argv[0])
    File “/usr/local/samba/lib64/python2.4/site-packages/samba/netcmd/__init__.py”, line 130, in _create_parser
    prog=prog,epilog=epilog)

  • mas Ahmad, provisioning di samba ini sama dgn dcpromo pada windows kan ya?
    Bagaimana caranya Seandainya saya sdh provisioning, kemudian saya ingin merubah nama domain yg digunakan?

    terimakasih sebelumnya

    regards

    • Hi mas Sigit,

      Benar mas. Sama dengan dcpromo di Windows. Jika ingin ganti nama domain, tinggal jalankan kembali provisioning nya mas. Namun hal tersebut akan mengakibatkan semua data yang sudah (user, computer join dll) akan hilang

  • Mas, kalau errornya pada step tes masuk folder shere gimana ya?

    Errornya “Connecting to localhost failed (Error NT_STATUS_IO_TIMEOUT)

    Seperti itu mas, thanks

  • Mas, saya coba install ulang dan memulai ulang dari instal samba lagi dan akhirnya sukses buat testing untuk share folder, tapi pada saat tes konfigurasi DNS yang berada pas step 5 hasilnya cuma diberitahukan IP dari domainnya.

    lalu saya coba ganti domain, dengan cara mengatur ulang domainnya pada setup dan provision untuk samba, tapi setelah saya tes untuk share folder lagi malah gak bisa “NT_STATUS_LOGON_FAILURE”

    Thanks b4

  • hi mas iman ini installasinya sudah termasuk service untuk menjalankan file sharing ya ? apa masih perlu jalankan perinta #yum install samba samba-client karna dari tutorial kita sudah bisa melakukan file sharing d
    /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%Rahasia123
    Domain=[IMANUDIN] OS=[Unix] Server=[Samba 4.0.5]

  • Mas Iman, saya saat menjalankan provision muncul error tidak sukses .. Saya menggunakan redhat 7.4 ..
    Tahun lalu saya coba dengan Centos 6 tidak ada error seperti ini mas & berhasil sampai akhir ..
    Tolong Bantuannya ya mas .. Thanks

    Setting up sam.ldb users and groups
    ERROR(ldb): uncaught exception – operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2165
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py”, line 175, in _run
    return self.run(*args, **kwargs)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/domain.py”, line 398, in run
    use_rfc2307=use_rfc2307, skip_sysvolacl=False)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 2145, in provision
    skip_sysvolacl=skip_sysvolacl)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1747, in provision_fill
    next_rid=next_rid, dc_rid=dc_rid)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1435, in fill_samdb
    “KRBTGTPASS_B64”: b64encode(krbtgtpass.encode(‘utf-16-le’))
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/common.py”, line 50, in setup_add_ldif
    ldb.add_ldif(data, controls)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/__init__.py”, line 224, in add_ldif
    self.add(msg, controls)

  • Mas Ahmad, saya sudah coba masih muncul error yang sama ..

    Looking up IPv4 addresses
    More than one IPv4 address found. Using 192.168.20.160
    Looking up IPv6 addresses
    No IPv6 address will be assigned
    Setting up secrets.ldb
    Setting up the registry
    Setting up the privileges database
    Setting up idmap db
    Setting up SAM db
    Setting up sam.ldb partitions and settings
    Setting up sam.ldb rootDSE
    Pre-loading the Samba 4 and AD schema
    Adding DomainDN: DC=pif,DC=co,DC=id
    Adding configuration container
    Setting up sam.ldb schema
    Setting up sam.ldb configuration data
    Setting up display specifiers
    Modifying display specifiers
    Adding users container
    Modifying users container
    Adding computers container
    Modifying computers container
    Setting up sam.ldb data
    Setting up well known security principals
    Setting up sam.ldb users and groups
    ERROR(ldb): uncaught exception – operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2165
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py”, line 175, in _run
    return self.run(*args, **kwargs)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/domain.py”, line 398, in run
    use_rfc2307=use_rfc2307, skip_sysvolacl=False)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 2145, in provision
    skip_sysvolacl=skip_sysvolacl)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1747, in provision_fill
    next_rid=next_rid, dc_rid=dc_rid)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py”, line 1435, in fill_samdb
    “KRBTGTPASS_B64”: b64encode(krbtgtpass.encode(‘utf-16-le’))
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/provision/common.py”, line 50, in setup_add_ldif
    ldb.add_ldif(data, controls)
    File “/usr/local/samba/lib64/python2.7/site-packages/samba/__init__.py”, line 224, in add_ldif
    self.add(msg, controls)

    • Hi mas,
      Jika dilihat problemnya disisi password. Coba password yang dimasukkan lebih strong seperti mengandung huruf besar, minimal 8 karakter dan minimal 1 angkan dan simbol

  • Mas ini saya ada kendala saat ganti ip server samba, Client pc windows tidak bisa menghubungi domain di samba server. Sudah saya coba untuk menyesuaikan konfigurasi di /etc/hosts sama provisioning ulang tetap belum bisa. Kira2 masalahnya d mana ya mas? Terima kasih & Mohon solusinya.

    • Hi mas Ardi,
      Jika IP nya berubah, untuk IP disisi DNS nya juga harus diubah. Coba dicek via nslookup

      nslookup namadomain 127.0.0.1
      

      Jika IP nya masih yang lama, maka harus diubah via samba-tool

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You might also like
Cara Membuat WhatsApp Gateway Sendiri dengan go-whatsapp-web-multidevice

Cara Membuat WhatsApp Gateway Sendiri dengan go-whatsapp-web-multidevice

Panduan Konfigurasi Network dengan systemd-networkd di Ubuntu/Debian

Panduan Konfigurasi Network dengan systemd-networkd di Ubuntu/Debian

Panduan Lengkap Setup Ceph Cluster Multi-Node (GUI)

Panduan Lengkap Setup Ceph Cluster Multi-Node (GUI)

Stay Connected
Panduan Instalasi dan Konfigurasi Proxmox Backup Server
Panduan Mengirim Notifikasi Proxmox ke WhatsApp Menggunakan Webhook
Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,863 other subscribers
Categories