Samba digunakan oleh sysadmin untuk mengatasi masalah interoperabilitas dalam lingkungan campuran di mana Anda memiliki Linux dan Windows. Ini menyediakan platform umum untuk Windows dan Linux untuk memiliki ruang berbagi yang sama.
Pengontrol domain adalah layanan yang digunakan untuk administrasi terpusat pengguna, grup, atau objek apa pun dalam jaringan. Layanan ini memungkinkan kita untuk mengelola, mengotentikasi, dan mengamankan login pengguna dan data terkait.
Tutorial ini menjelaskan bagaimana kita dapat mengkonfigurasi Samba di Linux sebagai pengontrol domain utama.
1. Siapkan Nama Host yang Tepat
Pastikan Anda telah menyiapkan nama host dan ip statis yang sesuai. Jika Anda menggunakan alamat ip internal, dan jika Anda ingin mengaksesnya dari internet, siapkan aturan NAT yang sesuai di firewall Anda.
Dalam tutorial ini akan menggunakan tgs.example.com sebagai nama host.
# vi /etc/sysconfig/network HOSTNAME=tgs.example.com
Pastikan ia memiliki pengaturan ip-address statis yang sesuai di file ifcfg-eth0.
# vi /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.101.1 NETMASK=255.255.255.0
Juga, tetapkan gateway dan dns yang sesuai di file /etc/sysconfig/network dan /etc/resolv.conf Anda.
Verifikasi bahwa file /etc/hosts Anda memiliki entri yang mirip dengan berikut ini.
# vi /etc/hosts 192.168.101.1 tgs.example.com tgs
Juga, pastikan layanan NTP diatur dan berjalan dengan benar di server ini.
2. Instal Samba dari Sumber
Pada CentOS, secara default paket samba tidak akan diinstal untuk jenis instalasi minimal.
Pertama, instal paket dependen berikut.
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 git-core openldap-devel
Selanjutnya, unduh sumber samba seperti yang ditunjukkan di bawah ini.
# git clone git://git.samba.org/samba.git sambaserver
File akan diunduh ke direktori sambaserver. Instal server samba seperti yang ditunjukkan di bawah ini.
cd sambaserver ./configure --enable-debug --enable-selftest make make install
Samba akan diinstal di lokasi default /usr/local/samba/bin. Anda akan melihat beberapa utilitas klien samba terinstal di bawah direktori ini.
# cd /usr/local/samba/bin/ # ls cifsdd ldbsearch ntdbrestore regshell smbcquotas tdbbackup dbwrap_tool locktest ntdbtool regtree smbget tdbdump eventlogadm masktest ntlm_auth rpcclient smbpasswd tdbrestore gentest ndrdump oLschema2ldif samba-tool smbspool tdbtool ldbadd net pdbedit sharesec smbstatus testparm ldbdel nmblookup pidl smbcacls smbtar wbinfo ldbedit nmblookup4 profiles smbclient smbta-util ldbmodify ntdbbackup regdiff smbclient4 smbtorture ldbrename ntdbdump regpatch smbcontrol smbtree
3. Siapkan Penyediaan Domain
Untuk memulai penyediaan domain, jalankan samba-tool seperti yang ditunjukkan di bawah ini. Ini akan mengambil nama host dan nama domain default dari file konfigurasi.
# /usr/local/samba/bin/samba-tool domain provision Realm [EXAMPLE.COM]: Domain [EXAMPLE]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [125.22.47.125]: 8.8.8.8 Administrator password: Retype password: ... ... Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=example,DC=com Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions 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: tgs NetBIOS Domain: EXAMPLE DNS Domain: example.com DOMAIN SID: S-1-5-21-2869186506-3515775153-2841826798
4. Mulai Layanan Samba
Mulai layanan samba, seperti yang ditunjukkan di bawah ini.
/usr/local/samba/sbin/samba
Tambahkan entri berikut ke file rc.local untuk memastikan layanan samba dimulai secara otomatis selama startup sistem.
# echo /usr/local/samba/sbin/samba >> /etc/rc.d/rc.local # cat /etc/rc.d/rc.local touch /var/lock/subsys/local /usr/local/samba/sbin/samba
5. Periksa Versi Samba
ANDA dapat memverifikasi versi samba menggunakan perintah samba atau smbclient seperti yang ditunjukkan di bawah ini.
# /usr/local/samba/sbin/samba -V Version 4.2.0pre1-GIT-913b2a1 # /usr/local/samba/bin/smbclient -V Version 4.2.0pre1-GIT-913b2a1
Perintah berikut akan menampilkan semua share Samba yang saat ini tersedia.
# /usr/local/samba/bin/smbclient -L localhost -U% Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.2.0pre1-GIT-913b2a1) Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Server Comment --------- ------- Workgroup Master --------- -------
Verifikasi bahwa Anda dapat masuk menggunakan nama pengguna dan kata sandi administrator.
# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator -c 'ls' Enter administrator's password: Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] . D 0 Fri Feb 21 15:06:15 2014 .. D 0 Fri Feb 21 15:06:28 2014 57901 blocks of size 8388608. 54372 blocks available
6. Verifikasi Domain
Sekarang mari kita periksa apakah domain berfungsi seperti yang diharapkan. Periksa catatan SRV dan A seperti yang ditunjukkan di bawah ini.
# host -t SRV _ldap._tcp.example.com _ldap._tcp.example.com has SRV record 0 100 389 tgs.example.com. # host -t SRV _kerberos._udp.example.com _kerberos._udp.example.com has SRV record 0 100 88 tgs.example.com. # host -t A tgs.example.com tgs.example.com has address 192.168.101.1
Gunakan perintah samba-tool untuk memverifikasi nama ranah seperti yang ditunjukkan di bawah ini.
# /usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm realm = EXAMPLE.COM
7. Konfigurasi Kerberos
Salin contoh file krb5.conf ke direktori /etc.
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
Setel default_realm ke nama domain Anda. Dalam hal ini, kami akan menyetelnya ke example.com
# cat /etc/krb5.conf [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
Gunakan perintah kinit untuk memastikan Kerberos telah diatur dengan benar seperti yang ditunjukkan di bawah ini.
# kinit [email protected] Password for [email protected]: Warning: Your password will expire in 41 days on Fri Apr 4 15:06:25 2014
Terakhir, Anda dapat menggunakan alat administrator jarak jauh Windows untuk menyambung ke server Samba dan menggunakannya sebagai pengontrol domain.
Jika Anda menghadapi masalah selama proses di atas, pastikan Anda memperbarui sistem dengan memperbarui semua paket. Anda juga dapat menonaktifkan SELinux untuk sementara, dan meninjau audit.log untuk pesan kesalahan terkait SELinux. Selain itu, pastikan aturan IPTables Anda tidak memblokir port yang diperlukan oleh Samba untuk berkomunikasi antar server.