Bab 23 menutup Bagian V dengan strategi backup dan restore untuk empat database yang sudah dipasang di server kita. Bab 24 membuka Bagian VI dengan kebutuhan yang jauh lebih sering muncul di keseharian kantor: bagaimana caranya satu folder di server Linux bisa diakses bersama-sama oleh laptop Windows tim desain, workstation Linux tim developer, dan perangkat lain yang berbeda platform sekaligus. Kebutuhan file sharing lintas platform semacam ini dijawab oleh Samba, implementasi protokol SMB/CIFS di dunia Linux yang sudah dipercaya sejak awal era jaringan Windows. Kita akan memahami dasar protokol SMB/CIFS, memasang dan mengonfigurasi Samba di Ubuntu Server 26.04 LTS, membuat share folder lengkap dengan permission-nya, mengatur autentikasi user Samba, lalu menutup bab dengan menghubungkan share tersebut dari client Windows maupun Linux.
24.1 Konsep SMB/CIFS
SMB (Server Message Block) adalah protokol jaringan yang dipakai untuk berbagi file, printer, dan resource lain antar komputer dalam satu jaringan. Protokol ini awalnya dikembangkan IBM pada tahun 1980-an, lalu dikembangkan lebih jauh oleh Microsoft sebagai fondasi file sharing di seluruh sistem operasi Windows. CIFS (Common Internet File System) adalah nama yang dipakai Microsoft untuk salah satu dialek awal SMB pada era Windows NT dan Windows 95, dan sampai sekarang istilah "SMB/CIFS" masih sering dipakai bergantian meskipun versi SMB modern sudah jauh berbeda dari dialek CIFS aslinya.
Samba adalah proyek open source yang mengimplementasikan ulang protokol SMB/CIFS agar sistem Unix dan Linux bisa berkomunikasi dengan client Windows tanpa perlu lisensi atau sistem operasi Microsoft sama sekali. Proyek ini dimulai Andrew Tridgell pada 1992 dan menjadi jembatan utama interoperabilitas Linux-Windows sampai hari ini. Saat Samba terpasang, server Linux kita bisa berperan sebagai file server yang dilihat Windows Explorer persis seperti file server Windows biasa, lengkap dengan autentikasi user dan permission folder.
Di lapangan, kombinasi platform semacam ini sangat umum: tim desain dan marketing memakai laptop Windows atau macOS, sementara infrastruktur server dan tim development berjalan di atas Linux. Samba menjadi jawaban paling praktis ketika Sysadmin harus menyediakan folder bersama tanpa memaksa satu divisi pun berpindah sistem operasi. Kebutuhan ini berbeda dari NFS yang dibahas di Bab 25, karena NFS dirancang murni untuk file sharing antar Linux/Unix dan tidak dipahami secara native oleh Windows.
24.1.1 Evolusi Versi Protokol SMB
SMB sudah melewati beberapa generasi besar, dan versi yang dipakai berpengaruh langsung terhadap keamanan serta performa transfer file. Tabel berikut merangkum tiga generasi utama yang relevan untuk konfigurasi Samba modern.
| Versi | Diperkenalkan di | Karakteristik |
|---|---|---|
| SMB1 | Windows NT / era CIFS (1990-an) | Chatty (banyak round-trip jaringan), tanpa enkripsi, rentan terhadap eksploitasi seperti EternalBlue yang dipakai ransomware WannaCry pada 2017. Sudah dianggap usang dan tidak boleh diaktifkan di server production. |
| SMB2 | Windows Vista / Windows Server 2008 | Protokol dirombak total, jumlah command jauh lebih sedikit, request bisa di-batch (compounding) untuk mengurangi round-trip jaringan, performa meningkat signifikan dibanding SMB1. |
| SMB3 | Windows 8 / Windows Server 2012 | Menambahkan enkripsi transport (SMB Encryption), multichannel untuk memanfaatkan banyak koneksi jaringan sekaligus, dan berbagai perbaikan keamanan lanjutan. Menjadi target protokol modern untuk deployment Samba saat ini. |
Sejak Samba versi 4.11 yang dirilis pada 2019, nilai default untuk server min protocol maupun client min protocol sudah diubah menjadi SMB2, bukan lagi SMB1. Artinya, instalasi Samba modern seperti yang dibawa Ubuntu 26.04 LTS sudah menolak koneksi SMB1 secara default, sejalan dengan rekomendasi resmi proyek Samba untuk melindungi server dari eksploitasi bergaya WannaCry. Kabar baiknya, hampir seluruh client modern (Windows 10/11, macOS terbaru, dan distribusi Linux mana pun) sudah mendukung SMB2 dan SMB3 tanpa masalah, sehingga menonaktifkan SMB1 nyaris tidak berdampak ke pengguna sehari-hari, kecuali ada perangkat sangat lawas seperti printer jaringan atau NAS tua yang masih bergantung pada SMB1.
24.1.2 NetBIOS: Warisan Lama yang Mulai Ditinggalkan
NetBIOS adalah mekanisme lawas untuk penamaan dan resolusi nama komputer di jaringan lokal lewat broadcast, jauh sebelum DNS menjadi standar de facto. Di dunia Samba, komponen yang menangani NetBIOS adalah service terpisah bernama nmbd, sedangkan proses inti yang benar-benar melayani transfer file dan autentikasi SMB adalah smbd. Client Windows modern sudah tidak lagi bergantung penuh pada broadcast NetBIOS untuk menemukan file server; resolusi nama host kini lebih banyak mengandalkan DNS atau koneksi langsung lewat alamat IP, sehingga NetBIOS berangsur menjadi warisan yang tidak wajib diaktifkan lagi.
Konsekuensinya untuk konfigurasi server: NetBIOS sebaiknya dinonaktifkan secara eksplisit lewat directive disable netbios = yes, sebuah langkah hardening yang direkomendasikan karena mengurangi permukaan serangan (attack surface) tanpa mengorbankan fungsi utama file sharing. Langkah praktiknya dibahas di Bagian 24.2.3.
24.2 Instalasi dan Konfigurasi Samba
Bagian ini memasang Samba dari repository resmi Ubuntu, lalu mengarahkan konfigurasinya ke praktik modern: protokol minimum SMB2 ke atas dan NetBIOS nonaktif.
24.2.1 Instalasi Package Samba
Langkah Praktik
- Perbarui daftar package, lalu pasang
sambabesertasamba-common-binyang berisi tool administrasi sepertismbpasswd,testparm, danpdbedit.sudo apt update sudo apt install -y samba samba-common-bin - Periksa versi Samba yang terpasang.
smbd --version
Verifikasi dan Troubleshooting
- Pastikan service utama
smbdsudah aktif dan berjalan otomatis saat boot.systemctl status smbd --no-pager - Jika
apt installgagal dengan pesanUnable to locate package, jalankan ulangsudo apt updateuntuk memastikan indeks repository benar-benar sudah tersinkron, identik dengan troubleshooting APT di Bab 6.
24.2.2 Mengenal Struktur smb.conf
Seluruh konfigurasi Samba terpusat di satu file, /etc/samba/smb.conf, terbagi menjadi section [global] untuk pengaturan server secara keseluruhan dan satu section terpisah untuk setiap share (folder atau resource yang dibagikan) yang didefinisikan, ditandai nama share di antara tanda kurung siku seperti [nama-share]. Package Ubuntu sudah menyertakan contoh section [homes] dan [printers] dalam kondisi nonaktif (dikomentari) sebagai referensi awal.
Langkah Praktik
- Backup file konfigurasi default sebelum diubah, kebiasaan wajib sebelum menyentuh file konfigurasi service production mana pun.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig - Buka file konfigurasi untuk diperiksa isi section
[global]bawaannya.
Perhatikan directivesudo nano /etc/samba/smb.confworkgroup = WORKGROUPyang menentukan nama grup kerja Windows, danserver stringyang menjadi deskripsi server saat dilihat dari Network Neighborhood/File Explorer milik client Windows.
Verifikasi dan Troubleshooting
- Validasi sintaks file konfigurasi kapan pun sebelum reload, memakai
testparmbawaansamba-common-bin.
Perintah ini membacatestparm -ssmb.conf, melaporkan error sintaks jika ada, lalu mencetak konfigurasi efektif yang benar-benar dipakai Samba. Selalu jalankantestparmsetiap selesai mengeditsmb.conf, karenasmbdtidak menolak konfigurasi yang salah secara eksplisit saat reload, melainkan berpotensi mengabaikan directive yang typo begitu saja tanpa pesan error yang jelas.
24.2.3 Mengatur SMB3 dan Menonaktifkan NetBIOS
Langkah Praktik
- Tambahkan dua directive berikut ke section
[global]di/etc/samba/smb.conf.
Default[global] workgroup = WORKGROUP server min protocol = SMB2_10 disable netbios = yesserver min protocolSamba sejak versi 4.11 sebenarnya sudah SMB2_02 (menolak SMB1 secara otomatis), namun kita naikkan sedikit keSMB2_10agar server mewajibkan dialek setara Windows 7 ke atas, baseline yang lebih aman sekaligus lebih eksplisit untuk didokumentasikan. Kita sengaja tidak menyentuhserver max protocol, karena nilai defaultnya sudahSMB3_11, dialek SMB3 paling baru yang didukung Samba saat ini; menuliskan ulang sebagaiSMB3saja justru berisiko mengunci negosiasi ke dialek SMB3 paling awal (SMB3_00), bukan yang paling baru. Directivedisable netbios = yesmematikan fungsi NetBIOS sesuai penjelasan Bagian 24.1.2. - Validasi ulang konfigurasi, lalu terapkan dengan reload service.
testparm -s sudo systemctl reload smbd - Karena NetBIOS sudah dinonaktifkan, service
nmbdtidak lagi diperlukan. Matikan dan disable service tersebut agar tidak membebani server tanpa fungsi yang terpakai.sudo systemctl disable --now nmbd - Buka port firewall yang dibutuhkan. Karena NetBIOS nonaktif, kita hanya perlu port
445/tcpuntuk SMB langsung di atas TCP/IP, tanpa port NetBIOS lama (137, 138, 139) yang biasa ikut disertakan app profile Samba bawaan UFW.
Pembahasan mendalam soal UFW dan app profile menyusul di Bab 31.sudo ufw allow 445/tcp
Verifikasi dan Troubleshooting
- Konfirmasikan directive protokol minimum dan NetBIOS benar-benar terbaca dari konfigurasi efektif.
testparm -s 2>/dev/null | grep -Ei "protocol|netbios" - Pastikan hanya port 445 yang benar-benar listening, tanpa port 139 milik NetBIOS session service.
sudo ss -tlnp | grep smbd - Jika client lawas (misalnya printer jaringan atau NAS tua) tiba-tiba gagal terhubung setelah perubahan ini, penyebabnya hampir selalu karena perangkat tersebut cuma mendukung SMB1. Solusinya bukan mengaktifkan kembali SMB1 di server yang berisiko keamanan, melainkan memperbarui firmware perangkat tersebut atau mengisolasinya di jaringan terpisah.
24.3 Membuat Share Folder dan Mengatur Permission
Skenario praktik pada bagian ini: tim desain dan tim development perlu satu folder bersama bernama proyek untuk bertukar file, terlepas dari platform yang dipakai masing-masing. Folder ini harus bisa ditulis oleh anggota tim yang berwenang saja, bukan seluruh user di server.
24.3.1 Menyiapkan Direktori dan Permission Linux
Langkah Praktik
- Buat group sistem khusus untuk anggota yang berhak mengakses share ini.
sudo groupadd tim-proyek - Buat direktori tempat file share disimpan, lalu serahkan kepemilikannya ke group tersebut.
sudo mkdir -p /srv/samba/proyek sudo chown root:tim-proyek /srv/samba/proyek - Terapkan permission
2770: pemilik dan group mendapat akses penuh baca/tulis/eksekusi, user lain sama sekali tidak punya akses, sedangkan bit setgid (digit depan2) memastikan setiap file baru yang dibuat di dalam folder ini otomatis ikut kepemilikan grouptim-proyek, bukan group pribadi user yang membuatnya.sudo chmod 2770 /srv/samba/proyek
Verifikasi dan Troubleshooting
- Pastikan permission dan bit setgid sudah terpasang dengan benar.
Output yang benar diawalils -ld /srv/samba/proyekdrwxrws---, dengan hurufsdi posisi permission group menandakan bit setgid aktif.
24.3.2 Mendefinisikan Share di smb.conf
Langkah Praktik
- Tambahkan section share baru di akhir
/etc/samba/smb.conf.[proyek] path = /srv/samba/proyek valid users = @tim-proyek read only = no create mask = 0660 directory mask = 2770 force group = tim-proyekvalid users = @tim-proyekmembatasi akses hanya untuk anggota group tersebut, tanda@menandai referensi ke group Linux, bukan user tunggal.create maskdandirectory maskmemastikan setiap file dan folder baru yang dibuat lewat Samba tetap mengikuti permission yang konsisten dengan Bagian 24.3.1, sedangkanforce groupmenjadi lapisan tambahan yang memaksa kepemilikan group tetaptim-proyekmeskipun user yang login punya group utama berbeda. - Validasi lalu reload konfigurasi.
testparm -s sudo systemctl reload smbd
Verifikasi dan Troubleshooting
- Pesan error
Unknown parameter encountereddaritestparmmenandakan ada typo pada nama directive, periksa ulang ejaan setiap baris di dalam section[proyek].
24.3.3 Verifikasi Share Terdaftar
Langkah Praktik
- Konfirmasikan section
[proyek]sudah terbaca sebagai bagian dari konfigurasi efektif Samba.
Pengujian lewat koneksi SMB sungguhan (bukan sekadar membaca konfigurasi) baru bisa dilakukan setelah user dan password Samba dibuat di Bagian 24.4, karena default konfigurasi Ubuntu tidak mengizinkan akses anonim/guest ke share manapun.testparm -s 2>/dev/null | grep -A6 "^\[proyek\]"
Verifikasi dan Troubleshooting
- Output
testparmharus menampilkan seluruh directive yang baru ditulis:path,valid users,read only,create mask,directory mask, danforce group. - Jika section
[proyek]sama sekali tidak muncul, pastikansystemctl reload smbdpada langkah sebelumnya benar-benar berhasil, cek lewatjournalctl -u smbd -n 30.
24.4 Autentikasi User Samba
Samba tidak memakai password Linux biasa untuk autentikasi SMB. Setiap user yang ingin mengakses share lewat protokol SMB wajib punya password Samba terpisah, disimpan di database kredensial milik Samba sendiri (secara default memakai backend tdbsam), meski user tersebut tetap harus terdaftar sebagai user sistem Linux terlebih dahulu.
24.4.1 Membuat User Sistem dan Password Samba
Skenario mengikuti Bagian 24.3: siti mewakili tim desain yang mengakses dari Windows, dan andi mewakili tim development yang mengakses dari Linux. Keduanya dibuat sebagai user sistem tanpa shell login interaktif, karena mereka hanya butuh akses file lewat Samba, bukan akses SSH ke server, mengikuti prinsip least privilege yang sama seperti Bagian 23.6.1.
Langkah Praktik
- Buat kedua user sistem, lalu masukkan keduanya ke group
tim-proyekyang sudah dibuat di Bagian 24.3.1.sudo useradd --no-create-home --shell /usr/sbin/nologin siti sudo useradd --no-create-home --shell /usr/sbin/nologin andi sudo usermod -aG tim-proyek siti sudo usermod -aG tim-proyek andi - Set password Samba untuk masing-masing user memakai
smbpasswd.
Flagsudo smbpasswd -a siti sudo smbpasswd -a andi-amenambahkan user baru ke database Samba sekaligus meminta password dua kali secara interaktif untuk konfirmasi. Perintah ini akan gagal dengan pesanFailed to add entry for userjika user sistem Linux yang bersangkutan belum ada, karena Samba selalu memvalidasi keberadaan akun Unix lebih dulu sebelum membuat entry passwordnya sendiri.
Verifikasi dan Troubleshooting
- Tampilkan daftar seluruh user Samba yang terdaftar di server ini.
sudo pdbedit -L - Lihat detail flag akun tertentu, termasuk status aktif atau terkunci.
sudo pdbedit -Lv -u siti
24.4.2 Menguji Autentikasi Lokal
Langkah Praktik
- Lihat daftar share dengan autentikasi user yang baru dibuat, melengkapi verifikasi konfigurasi yang sempat tertunda di Bagian 24.3.3.
Sharesmbclient -L localhost -U sitiproyekharus muncul dalam daftar output setelah kita memasukkan password Samba miliksiti, bersanding dengan shareIPC$bawaan yang dipakai Samba untuk komunikasi antar proses. - Uji koneksi langsung ke share
proyekmemakai user yang sama, langsung dari server itu sendiri.
Jika autentikasi berhasil,smbclient //localhost/proyek -U sitismbclientmasuk ke shell interaktifsmb: \>tempat kita bisa mencoba perintah sepertilsatauputuntuk transfer file uji coba.
Verifikasi dan Troubleshooting
- Pesan
NT_STATUS_LOGON_FAILUREberarti kombinasi username/password Samba salah, bukan password Linux. Set ulang lewatsmbpasswdjika lupa. - Pesan
NT_STATUS_ACCESS_DENIEDsaat mencoba menulis file lewatputbiasanya menandakan user tersebut belum masuk grouptim-proyek, cek ulang dengangroups siti.
24.5 Menghubungkan dari Windows dan Linux
Share sudah siap diakses. Bagian ini menutup bab dengan cara koneksi dari sisi client Windows sebagai representasi tim desain, dan client Linux sebagai representasi tim development.
24.5.1 Menghubungkan dari Windows
Langkah Praktik
- Buka File Explorer di komputer Windows, lalu ketik alamat server pada address bar memakai format UNC path.
Karena NetBIOS sudah dinonaktifkan di Bagian 24.2.3, gunakan alamat IP server secara langsung atau hostname yang benar-benar bisa di-resolve lewat DNS internal, bukan mengandalkan pencarian otomatis lewat Network Neighborhood yang selama ini bergantung pada broadcast NetBIOS.\\ALAMAT_IP_SERVER\proyek - Saat diminta kredensial, masukkan username
sitibeserta password Samba yang sudah dibuat di Bagian 24.4.1. - Opsional, petakan share ini sebagai network drive permanen lewat Command Prompt.
net use Z: \\ALAMAT_IP_SERVER\proyek /user:siti
Verifikasi dan Troubleshooting
- Pesan Windows "The specified network password is not correct" umumnya berarti password Samba yang dimasukkan salah, atau Windows masih mencoba memakai kredensial lama yang tersimpan di Credential Manager. Bersihkan kredensial lama tersebut lewat menu Credential Manager Windows sebelum mencoba login ulang.
- Jika folder tidak bisa diakses sama sekali, pastikan port 445 dari Bagian 24.2.3 memang benar-benar terbuka dari arah jaringan client, bukan cuma dari server itu sendiri.
24.5.2 Menghubungkan dari Linux
Langkah Praktik
- Pasang package client yang dibutuhkan:
smbclientuntuk akses interaktif, dancifs-utilsuntuk mount filesystem SMB langsung ke direktori lokal.sudo apt install -y smbclient cifs-utils - Uji koneksi interaktif lebih dulu, mengikuti pola yang sama seperti Bagian 24.4.2 namun dari komputer client yang terpisah.
smbclient //ALAMAT_IP_SERVER/proyek -U andi - Untuk pemakaian sehari-hari, mount share sebagai direktori lokal jauh lebih praktis daripada shell
smbclient. Simpan kredensial di file terpisah agar tidak perlu mengetik password setiap kali mount, sekaligus menghindari password terekam di histori shell.sudo nano /etc/samba/credentials-proyekusername=andi password=PasswordSambaAndi!2026 domain=WORKGROUPsudo chmod 600 /etc/samba/credentials-proyek - Buat titik mount, lalu uji mount manual memakai file kredensial tersebut.
Flagsudo mkdir -p /mnt/proyek sudo mount -t cifs //ALAMAT_IP_SERVER/proyek /mnt/proyek \ -o credentials=/etc/samba/credentials-proyek,vers=3.0,uid=andivers=3.0memaksa client memakai SMB3, selaras dengan SMB3 yang memang sudah menjadi protokol maksimum default Samba sesuai penjelasan Bagian 24.2.3, sedangkanuid=andimemastikan seluruh file di titik mount tampil sebagai milik userandisecara lokal. - Agar mount otomatis terpasang kembali setiap boot, tambahkan entry berikut ke
/etc/fstab.
Opsi//ALAMAT_IP_SERVER/proyek /mnt/proyek cifs credentials=/etc/samba/credentials-proyek,vers=3.0,uid=andi,_netdev 0 0_netdevmemberitahu systemd bahwa filesystem ini bergantung pada jaringan, sehingga proses mount ditunda sampai koneksi jaringan benar-benar siap saat boot, mencegah boot macet menunggu share yang belum bisa dijangkau.
Verifikasi dan Troubleshooting
- Uji entry
/etc/fstabtanpa perlu reboot.sudo mount -a df -h /mnt/proyek - Error
mount error(13): Permission deniedberarti kombinasi username/password di file kredensial salah, atau user tersebut belum masuk grouptim-proyekdi server. - Error
mount error(112): Host is downatau koneksi timeout biasanya menandakan port 445 belum terbuka dari sisi firewall, cek ulang Bagian 24.2.3.
24.5.3 Memantau Koneksi Aktif dari Sisi Server
Sebagai Sysadmin, kita perlu cara untuk melihat siapa saja yang sedang terhubung ke share tanpa harus bertanya langsung ke user.
Langkah Praktik
- Lihat seluruh sesi dan file yang sedang dibuka lewat Samba saat ini.
sudo smbstatus
Verifikasi dan Troubleshooting
- Output
smbstatusmenampilkan kolomUsername,Machine(alamat IP client), danProtocol Version, berguna untuk memastikan client benar-benar bernegosiasi memakai SMB3, bukan diam-diam turun ke SMB2 karena keterbatasan perangkat lama. - Catatan jujur dari lapangan: share yang dipakai bersama oleh banyak orang seperti
proyekini rawan konflik penulisan file secara bersamaan (dua orang menyimpan file yang sama nyaris bersamaan). Samba sendiri tidak menyediakan mekanisme locking yang sekuat aplikasi kolaborasi dokumen modern, sehingga kebiasaan komunikasi tim, seperti penamaan file dan folder kerja masing-masing, tetap jadi mitigasi paling praktis di luar konfigurasi teknis server.
Sampai di sini, server Linux kita sudah berperan sebagai file server lintas platform: SMB3 sebagai protokol default, NetBIOS nonaktif demi permukaan serangan yang lebih kecil, share proyek dengan permission dan autentikasi yang jelas, serta bisa diakses baik dari Windows maupun Linux. Bab 25 melanjutkan topik file sharing dengan sudut pandang yang berbeda, yaitu NFS, protokol yang dirancang khusus untuk file sharing antar sesama Linux/Unix.

