Samba4 AD DC pada centos 6

Dengan semakin matangnya dukungan Active Directory pada samba4, maka mimin kavalinux mencoba untuk melakukan instalasi samba4 untuk dijadikan AC DC Server. Percobaan dilakukan mengunakan mesin virtual yang telah di install dengan distro Centos versi 6.5, instalasi menggunakan mode basic server dengan tambahan paket development.

Kebutuhan program

IP Address yang akan digunakan

  • SERVER : 10.211.55.10
  • GATEWAY : 10.211.55.1
  • DNS SERVER : 10.211.55.10
  • DNS FORWARD : 10.211.55.1
  • NTP SERVER : 172.16.2.8
KONFIGURASI AWAL SERVER:
  • Selalu update centos, agar selalu dalam kondisi prima.
  • Pastikan nama server menggunakan aturan FQDN, contoh : server.kavalinux.net.
    Gunakan perintah hostname untuk memastikan nama server yang digunakan sudah sesuai.

    [root@server.kavalinux.net:~]# hostname
    server.kavalinux.net
  • Update environment language, edit file /etc/environment, tambahkan baris berikut :
    LANGUAGE=en_US.utf-8
    LC_ALL=en_US.utf-8
  • Disable selinux, edit file /etc/selinux/config menjadi seperti berikut :
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these two values:
    # targeted - Targeted processes are protected,
    # mls - Multi Level Security protection.
    SELINUXTYPE=targeted
  • reboot !!!!

INSTALASI SAMBA :
Sebelum melakukan kompilasi program, pastikan paket untuk melakukan kompilasi sudah terinstall.

install paket pendukung untuk kompilasi program

yum -y install gcc make python-devel
gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation

kompilasi dan instalasi samba

tar xf samba-4.1.4.tar.gz
./configure --prefix=/opt/samba --enable-selftest
make && make install

Setelah samba selesai di instal, langkah selanjutnya adalah menambahkan default library cache dan default path, berikut langkahnya :

  • Buat file baru dengan nama domain.sh di /etc/profile.d/, isi dengan :
    export PATH=/opt/samba/bin:/opt/samba/sbin:$PATH
  • Buat file baru dengan nama domain.conf di /etc/ld.so.conf.d/, isi dengan :
    /opt/app/samba/lib
    /opt/app/samba/lib64
  • Setelah menambahkan dua buah file diatas, untuk sementara supaya perubahan dapat langsung digunakan, ketik 2 buah perintah berikut di terminal :
    export PATH=/opt/samba/bin:/opt/samba/sbin:$PATH
    ldconfig

KONFIGURASI NTP, SAMBA dan KERBEROS:

NTP
Sebelum melakukan provisioning domain menggunakan samba, pastikan waktu sudah tersinkronisasi dengan benar, untuk itu kita akan melakukan konfigurasi ntp server terlebih dahulu.

  • Paksa update time menggunakan ntpdate : ntpdate -u 172.16.2.8
  • Backup file ntp.conf di direktori /etc, lalu buat file ntp.conf baru, isi dengan :
    restrict 127.0.0.1
    restrict 172.16.2.8 mask 255.255.255.255 nomodify notrap nopeer noquery
    restrict default kod nomodify notrap nopeer mssntp
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    server 172.16.2.8 iburst prefer
    driftfile /var/lib/ntp/ntp.drift
    logfile /var/log/ntp
    ntpsigndsocket /opt/samba/var/lib/ntp_signd/
  • Aktifkan dan jalankan service ntpd :
    chkconfig --add ntpd
    chkconfig --level 345 ntpd on
    service ntpd start

SAMBA
Kita mulai provisioning domain baru dengan konfigurasi yang akan digunakan sebagai berikut :
– REALM : KAVALINUX.NET
– DOMAIN : KAVALINUX
– DNS Backend : SAMBA_INTERNAL
– DNS Forward IP address : 10.211.55.1
Ketik perintah dibawah ini untuk memulai provisioning :

samba-tool domain provision --use-rfc2307 --interactive --use-xattrs=yes

keterangan :
use-rfc2307, menambahkan attribut POSIX ke dalam schema AD, agar bisa menggunakan client dari linux, bsd atau OS X untuk autentikasi.
use-xattrs=yes, digunakan samba agar mendukung ACLs untuk file yang akan di share (pastikan file system di mount dengan dukungan ACLs).

Buat script service samba, letakan di direktori /etc/init.d.
Isi file service samba dengan :

#! /bin/bash
#
# samba4 This shell script takes care of starting and stopping
# the Samba4 server
#
# chkconfig: - 91 35
# description: Samba provides file and print services to SMB/CIFS
# Version 4 adds an Active Directory domain controller.
# config: /opt/samba/etc/smb.conf
# pidfile: /opt/samba/var/run/samba.pid
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Start and stop the Samba4 server
# Description: Samba provides file and print services to SMB/CIFS
# Version 4 adds an Active Directory domain controller.
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
# Avoid using root's TMPDIR
unset TMPDIR
prog=samba4
samba=/opt/samba/sbin/samba
pidfile=/opt/samba/var/run/samba.pid
smbdpidfile=/opt/samba/var/run/smbd.pid
# Check that smb.conf exists.
[ -f /opt/samba/etc/smb.conf ] || exit 6
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon --pidfile=$pidfile $samba $SMBDOPTIONS
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: "
killproc -p $pidfile $samba
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $pidfile && rm -f $smbdpidfile
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p $pidfile $samba
RETVAL=$?
;;
restart|reload)
stop
sleep 1
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL

Konfigurasi agar file service samba jalan saat restart :

chmod +x /etc/init.d/samba
chkconfig --add samba
chkconfig --level 345 samba on

KERBEROS
Setelah selesai melakukan provisioning domain, selanjutnya akan dilakukan konfigurasi kerberos.

  • Backup terlebih dahulu file krb5.conf yang ada pada direktori /etc.
  • Buat file krb5.conf baru pada direktori /etc, lalu isi dengan data sebagai berikut :
    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log
    [libdefaults]
    default_realm = KAVALINUX.NET
    dns_lookup_realm = false
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true

TESTING INSTALASI
DNS
Pastikan DNS berjalan dengan normal, gunakan beberapa perintah dibawah ini :

host -t SRV _ldap._tcp.internal.domain.com.
host -t SRV _kerberos._udp.internal.domain.com.
host -t A server.internal.domain.com.

Berikut ini contoh hasil dari perintah diatas :

[root@server.kavalinux.net:~]# host -t SRV _ldap._tcp.kavalinux.net.
_ldap._tcp.kavalinux.net has SRV record 0 100 389 server.kavalinux.net.
[root@server.kavalinux.net:~]# host -t SRV _kerberos._udp.kavalinux.net.
_kerberos._udp.kavalinux.net has SRV record 0 100 88 server.kavalinux.net.
[root@server.kavalinux.net:~]# host -t A kavalinux.net.
kavalinux.net has address 10.211.55.10

NT Authentication
Untuk memastikan otentikasi password berjalan dengan lancar, gunakan perintah dibawah ini untuk mengetesnya :

smbclient //localhost/netlogon -U Administrator -c 'ls'

Berikut ini contoh hasil dari perintah diatas :

[root@server.kavalinux.net:~]# smbclient //localhost/netlogon -U Administrator -c 'ls'
Enter Administrator's password:
Domain=[KAVALINUX] OS=[Unix] Server=[Samba 4.1.4]
. D 0 Fri Jan 17 15:07:15 2014
.. D 0 Fri Jan 17 15:07:20 2014
44914 blocks of size 131072. 16149 blocks available

Kerberos
Untuk memeriksa apakah KDC berjalan dengan normal, gunakan perintah berikut ini :

kinit administrator@INTERNAL.DOMAIN.COM
klist
smbclient //serversubdomainname/netlogon -k -c 'ls'

Berikut ini contoh hasil dari perintah diatas :

[root@server.kavalinux.net:~]# kinit administrator@KAVALINUX.NET
Password for administrator@KAVALINUX.NET:
Warning: Your password will expire in 41 days on Fri Feb 28 15:07:19 2014
[root@server.kavalinux.net:~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@KAVALINUX.NET
Valid starting Expires Service principal
01/17/14 17:54:22 01/18/14 03:54:22 krbtgt/KAVALINUX.NET@KAVALINUX.NET
renew until 01/24/14 17:54:20
[root@server.kavalinux.net:~]# smbclient //server/netlogon -k -c 'ls'
Domain=[KAVALINUX] OS=[Unix] Server=[Samba 4.1.4]
. D 0 Fri Jan 17 15:07:15 2014
.. D 0 Fri Jan 17 15:07:20 2014
44914 blocks of size 131072. 16149 blocks available

Selanjutnya??
Kalau sampai test di atas tidak ada error, berarti konfigurasi sudah selesai dan samba4 sudah berjalan dengan mulus :D. selanjutnya join-kan salah satu windows client dan login dengan user Administrator lalu install Windows Remote Administration Tools untuk mengkonfigurasi AD lebih lanjut, (cara install Remote Administration Tools bisa dibaca di wiki samba)

Source: Kavalinux

Advertisements

Leave a Reply

%d bloggers like this: