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]
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 :
- https://imanudin.com/2013/05/10/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-1-introduction/
- https://imanudin.com/2013/05/11/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-2-instalasi-sistem-operasi/
- https://imanudin.com/2013/05/12/membangun-linux-active-directory-dengan-samba4-pada-redhatcentos-part-3-konfigurasi-network-dan-repositori/
Mas Saya lagi coba install under CentOS 6.4 32bit.
Dimana saya bisa dapat file versi 32 bit untuk
bind9.9Centos.tar.gz..??
Halo mas, bisa didapatkan pada link berikut : http://centos.alt.ru/repository/centos/6/i386/
Tinggal sesuaikan saja paket apa saja yang dibutuhkan 😀
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
Halo mas,
Tidak bisa pake Webmin. Tidak bisa-nya kenapa? seperti apa? dan apakah ada lognya?
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??
@Hendra: Tidak masalah mas dilewati terlebih dahulu, karena step tersebut supaya samba4 otomatis start saja pada saat booting
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.”)
@Suandi : Halo mas,
Coba paste hasil perintah ini mas untuk check konfigurasi fstab
cat /etc/fstab
[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.
Halo mas,
Biasanya butuh waktu mas dan tidak langsung ada. Coba dicek lagi di server AD utama beberapa saat
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)
Halo mas,
Mungkin banyak dependensi dan file yang tidak cocok. Mungkin bisa dicoba pake CentOS versi 6 atau 7 mas
Terima kasih mas Imam saya coba dulu pakai centos 7 .
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
Hi mas,
Coba restart service Samba4-nya dan coba kembali
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,
Coba gunakan panduan ini jika masih bermasalah : https://imanudin.net/2014/11/16/how-to-install-samba4-active-directory-on-centos-7-part-1/
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]
Hi mas Azan,
Untuk instalasi sudah all in one mas. Bisa sebagai AD dan bisa juga sebagai file sharing.
ok kang iman nuhun…
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)
Hi mas,
Bisa coba panduan yang ini mas : https://imanudin.net/2014/11/16/how-to-install-samba4-active-directory-on-centos-7-part-1/
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
Jika IP nya masih yang lama, maka harus diubah via samba-tool