Halo, Sobat! Pernah dengar tentang Samba Server? Nah, di dunia server dan jaringan, Samba adalah salah satu komponen penting yang sering digunakan, terutama saat ingin berbagi file antar sistem Linux dan Windows.
Samba Server
Samba Server adalah sebuah layanan open source yang memungkinkan sistem operasi Linux atau Unix untuk berkomunikasi dan berbagi file serta printer dengan sistem Windows melalui protokol SMB (Server Message Block) atau CIFS (Common Internet File System). Fungsi utamanya untuk berbagi folder atau file dari server Linux, berbagi printer antar sistem operasi yang berbeda, dan memberikan akses jaringan lokal layaknya sistem berbasis Windows server.
Samba biasanya digunakan di berbagai tempat yang membutuhkan layanan berbagi file dalam jaringan, seperti di kantor, sekolah, atau kampus yang menggunakan kombinasi komputer Windows dan Linux. Selain itu, Samba juga kerap dimanfaatkan di ruang guru, laboratorium komputer, hingga warnet sebagai server file yang mudah diakses. Bahkan, pengguna VPS atau server pribadi juga bisa memanfaatkan Samba untuk berbagi file antar perangkat, baik di jaringan lokal maupun melalui koneksi internet.
Samba juga sangat membantu dalam kolaborasi antar pengguna dari sistem operasi berbeda, serta mudah dikonfigurasi bahkan oleh pengguna yang masih baru belajar mengelola server.
Fyi, VPS hosting pada artikel ini yaitu Ubuntu versi 22.04, Sob. Kamu bisa menemukan berbagai jenis VPS hosting di Jagoan Hosting melalui laman VPS Terbaik Jagoan Hosting.
Step 1: Buat Koneksi SSH VPS
Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.
Detail informasi awal layanan kamu, bisa diakses seperti pada Informasi Awal Layanan VM.
Step 2: Update dan Install Samba Server
Sebelum mulai instalasi, update list package di sistem server kamu dulu kemudian lanjut jalankan perintah instal samba server.
sudo apt update
sudo apt update install samba smbclient cifs-utils
Step 3: Buat Direktori untuk Tempat Sharing File dan Konfigurasi
Setelah itu, kamu bisa menyediakan direktor/folder sharing yang akan digunakan sebagai tempat berbagi file. Kamu bisa membagi menjadi dua, misalnya folder public dan folder private. Folder public dapat diakses oleh siapa pun, sedangkan folder private hanya boleh diakses oleh user tertentu saja.
sudo mkdir /smb-public
sudo mkdir /smb-private
Selanjutnya, buka file konfigurasi samba dan backup file konfigurasi tersebut. Tujuannya supaya ketika terjadi kesalahan ketika mengedit konfigurasi, kamu masih bisa mengembalikannya ke versi awal dengan file berekstensi .bak. Jadi, di sini kamu membuat salinan cadangan dari file konfigurasi utama Samba (smb.conf) dan menyimpannya sebagai smb.conf.bak
sudo cp /etc/samba/smb.conf{,.bak}
sudo nano /etc/samba/smb.conf
Tambahkan baris konfigurasi berikut pada bagian paling bawah.
[publicshare]
path = /smb-public
writable = yes
guest ok = yes
guest only = yes
force create mode = 775
force directory mode = 775
Untuk konfigurasi samba private, kamu bisa tambahkan konfigurasi seperti ini.
[privateshare]
path = /smb-private
valid users = demouser
guest ok = no
writable = yes
force create mode = 770
force directory mode = 770

Tekan Ctrl+x, lalu y untuk menyimpan. Dan Enter untuk keluar dari mode editor.
Berikutnya, buat grup ‘smbinternal’ dan tambahkan user tertentu pada grup tersebut. Di mana private share hanya akan bisa diakses oleh user tersebut saja.
sudo groupadd smbinternal
Lakukan update permission pada folder private menggunakan command:
sudo chgrp -R smbinternal /smb-private/
sudo chgrp -R smbinternal /smb-public
sudo chmod 2770 /smb-private/
sudo chmod 2775 /smb-public
Setelah itu, buat satu folder demo tanpa akses ke shell dan tambahkan user tersebut ke dalam grup subinternal.
#Buat user sistem baru tanpa akses shell
sudo useradd -M -s /sbin/nologin demouser
#Tambahkan ke grup smbinternal
sudo usermod -aG smbinternal demouser
#Aktifkan akun Samba dan beri password
sudo smbpasswd -a demouser #membuat akun Samba
sudo smbpasswd -e demouser #mengaktifkan akun Samba

Kemudian, verifikasi hasil konfigurasi untuk melihat apakah ada error atau tidak.
sudo testparm
Kalau tidak ada error, muncul seperti ini.

Restart service samba kamu.
sudo systemctl restart smbd
Lalu, buat juga file atau folder test untuk sharing.
sudo mkdir /smb-private/demofolder-priv /smb-public/demofolder-pub
sudo touch /smb-private/demofile-priv /smb-public/demofile-pub
Kemudian, buka port 139 (service samba) kalau server kamu menerapkan firewall. Sebelum membuka port, pastikan firewall dalam keadaan inactive dulu, periksa dengan menjalankan command:
sudo ufw status
Pastikan juga koneksi SSH ke VPS server kamu juga sudah diijinkan supaya tidak terkunci dari VPS ketika firewall diaktifkan.
sudo ufw allow ssh
#atau
sudo ufw allow 22/tcp
Untuk Samba:
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
Kemudian aktifkan dan reload firewall.
sudo ufw enable
sudo ufw reload
Kalau muncul konfirmasi: Command may disrupt existing ssh connections. Proceed with operation (y|n)? Klik y lalu Enter.
Kemudian periksa status firewall dan port yang terbuka.
sudo ufw status verbose
Output:

Step 4: Uji Coba Akses Samba Server
Akses Sambar server dari sisi klien dan coba berbagi file. Untuk akses samba server yang sudah disetup sebelumnya bisa diakses dari Unix OS maupun Windows. Format membuat koneksinya yaitu \\IP_Public_Server\privateshare. Contoh: \\192.168.1.10\privateshare.
Nanti, kalau diminta password dan username isikan sesuai dengan yang sudah dibuat pada step 3 sebelumnya.
Kalau mau mengakses folder public yaitu \\IP_Public_Server\publicshare. Kamu tidak akan diminta username dan password karena file pada folder ini bisa diakses siapapun.
Kalau kamu ingin mengakses menggunakan Windows.
Agar Windows bisa akses Samba di VPS hosting (misalnya via IP publik VPS), dan Samba mendengarkan koneksi dari semua IP, bukan hanya localhost.
1. Buka file konfigurasi Samba di
sudo nano /etc/samba/smb.conf
2. Lalu, pastikan bagian berikut ditulis seperti ini.
interfaces = 0.0.0.0
bind interfaces only = no
Penjelasan:
- interfaces = 0.0.0.0: artinya dengarkan di semua IP, termasuk IP publik VPS kamu.
- bind interfaces only = no: artinya jangan batasi ke interface tertentu saja, dengarkan semua interface yang aktif.
3. Simpan perubahan dengan Ctrl+x, y lalu Enter. Dan restart Samba.
sudo systemctl restart smbd
4. Buka File Explorer di windows Kemudian di panel sebelah kiri, klik kanan pada Network > pilih Map network drive
5. Akan muncul jendela Map Network Drive. Lalu, pada kolom Folder masukkan alamat folder Samba dengan format \\IP_Public_Server\privateshare. Contoh: \\192.168.1.10\privateshare

6. Kemudian, klik Finish.
7. Akan muncul prompt untuk memasukkan credential (username dan password) dari user dan password yang sudah dibuat pada step ke 3.
8. Centang opsi “Remember my credentials” kalau ingin menyimpan info credential untuk login ke depannya.
9. Kalau berhasil terhubung, folder samba (privateshare) akan muncul dan bisa diakses seperti folder lokal.
10. Kamu bisa melihat isi folder seperti demofolder dan demofile.
11. Untuk mengunggah file dari Windows ke server samba, cukup drag and drop ke dalam folder privateshare.
Penting, Sob!
Kalau klien Windows tidak dapat terhubung ke Samba server meskipun konfigurasi sudah benar dan layanan sudah aktif, kemungkinan besar port 139 dan 445 diblok oleh pihak penyedia VPS.
Untuk itu, silakan hubungi Tim Support dan lampirkan informasi bahwa port SMB sudah aktif di server. Cara mengecek:
Buka terminal windows, jalankan:
telnet 139
Jika muncul Connection timed out, artinya port diblok. Mintalah agar port 139 dan 445 dibuka untuk akses dari IP publik jika dibutuhkan.
Proses intalasi hingga konfigurasi samba server sudah berhasil dilakukan. Bahkan sudah uji coba menghubungkan untuk berbagi file. Selamat mencoba, Sob!
Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!
Halo, Sobat Jagoan! PHPMyAdmin adalah alat berbasis web yang memungkinkan kamu untuk mengelola database MySQL atau MariaDB melalui browser dengan Read more
Halo, Sobat Jagoan! Karena phpMyAdmin itu sering dipakai di mana-mana, banyak hacker yang suka mencoba masuk ke phpMyAdmin tanpa izin. Read more
Halo, Sobat Jagoan! Kamu mungkin sudah familiar dengan MySQL, tetapi tahukah kamu bahwa MariaDB menawarkan fitur yang serupa bahkan lebih Read more
Halo, Sobat Jagoan! Setelah kamu berhasil melakukan instalasi MariaDB, hal dasar yang bisa kamu lakukan yaitu membuat database baru untuk Read more