Belajar Samba - Hardening SMB
Episode 14 of 23

Belajar Samba - Hardening SMB

Episode ini mengeraskan Samba: menonaktifkan SMB1 via server min protocol = SMB2_10, mengevaluasi ntlm auth = no, mewajibkan server signing dan enkripsi, serta membangun audit dengan smbstatus dan log level yang tepat. Kalian mendapatkan baseline hardening yang bisa diterapkan langsung di production.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Firewall di episode 13 mengamankan jalan masuk; sekarang kita mengeraskan server itu sendiri. Hardening SMB artinya menutup fitur-fitur lawas yang rapuh, mewajibkan mekanisme keamanan modern, dan membangun audit agar perilaku mencurigakan terlihat. Targetnya: konfigurasi yang kalau diaudit oleh pentester atau SOC, tidak menghasilkan temuan besar.

Menonaktifkan SMB1 dan Dialek Lemah

server min protocol

SMB1 sudah nonaktif secara default sejak Samba 4.11 (episode 2), tapi kalian harus menegaskan dan mendokumentasikannya agar tidak bergeser diam-diam:

/etc/samba/smb.conf [global] — dialek minimum
[global]
   server min protocol = SMB2_10
   server max protocol = SMB3_11

server min protocol = SMB2_10 menolak klien di bawah SMB2.1. Jangan pilih SMB1 atau NT1 dalam kondisi apa pun — setiap dialek di bawah SMB2 membawa permukaan serangan yang tidak bisa dibenarkan. Untuk environment yang hanya berisi klien modern, SMB3 (bukan SMB3_11) juga opsi yang sah dan lebih ketat.

Warning

Menurunkan server min protocol "biar klien lawas bisa akses" adalah keputusan yang harus ditolak dengan tegas. Perangkat yang hanya bisa SMB1 (printer USB-to-LAN lama, NAS kuno, Windows XP) adalah risiko yang tidak sebanding. Ganti perangkatnya, bukan melemahkan server. Jika benar-benar terpaksa, pisahkan perangkat tersebut di VLAN terpisah dan share khusus — bukan melemahkan kebijakan global.

Autentikasi: ntlm auth

NTLM vs Kerberos

NTLM adalah protokol autentikasi warisan yang rentan terhadap pass-the-hash dan relay attack (kita bisa meredam relay dengan signing, tapi tidak semua). Kerberos adalah standar modern di domain AD. Parameter:

/etc/samba/smb.conf [global] — NTLM
[global]
   ntlm auth = no
   lanman auth = no
  • ntlm auth = no: tolak autentikasi NTLM — klien harus memakai Kerberos. Konsekuensi: perangkat/konsol lawas yang tidak mendukung Kerberos akan gagal login.
  • lanman auth = no: tolak LM hash yang lebih lemah lagi — ini hampir selalu aman dimatikan.

Kapan "no" Bisa Diterapkan

ntlm auth = no tidak bisa diterapkan buta:

  • Pada AD DC, NTLM kadang masih dibutuhkan untuk skenario tertentu (beberapa aplikasi line-of-business, Windows lawas) — evaluasi dengan audit dulu.
  • Pada member/standalone dengan semua klien modern (Windows 10+, macOS, Linux), no umumnya aman.
  • Gunakan log untuk menemukan pemakai NTLM sebelum mematikannya (bagian audit di bawah) — pendekatan detect → assess → enforce.

Signing dan Enkripsi Wajib

Server Signing

Signing melindungi integritas dan meredam SMB relay attack (protocol smuggling). Di Samba:

/etc/samba/smb.conf [global] — signing & enkripsi
[global]
   server signing = required
   smb encrypt = required

server signing = required + smb encrypt = required adalah kombinasi paling keras: setiap koneksi ditandatangani dan dienkripsi. Trade-off: beban CPU tambahan (minimal pada CPU modern dengan AES-NI) dan kompatibilitas — perangkat lama yang tidak mendukung enkripsi SMB3 akan ditolak. Untuk baseline production modern, ini harga yang wajar.

Prioritas hardening
1. server min protocol = SMB2_10   (matikan SMB1)
2. lanman auth = no                (matikan LM hash)
3. server signing = required       (cegah relay)
4. smb encrypt = required          (enkripsi wire)
5. ntlm auth = no                  (Kerberos only, bila aman)

Audit: smbstatus dan Log

smbstatus: Melihat Siapa yang Terhubung

smbstatus adalah jendela ke koneksi aktif — wajib dijadikan kebiasaan:

Lihat sesi dan share aktif
smbstatus
smbstatus -b      # detail per user/klien
smbstatus -L      # share yang sedang diakses

smbstatus -b menampilkan user, host asal, IP, dan protokol. Kalian akan langsung melihat koneksi aneh (misal IP asing di jam kerja yang tidak biasa) — ini audit real-time termurah.

Log Level dan Audit Autentikasi

log level mengontrol verbositas log. Default 1 (hanya kesalahan); untuk troubleshooting kita pakai 3 (episode 16). Untuk audit autentikasi, aktifkan log khusus:

/etc/samba/smb.conf [global] — log audit
[global]
   log level = 1 auth_audit:2
   log file = /var/log/samba/log.%m
   max log size = 1024

log level = 1 auth_audit:2 menaikkan verbositas hanya untuk kategori auth_audit — kalian mendapat catatan login sukses/gagal tanpa dibanjiri log seluruh sistem. Periksa:

Cari event autentikasi
sudo grep -i "NT_STATUS" /var/log/samba/*.log
sudo journalctl -u smbd | grep -iE "(failed|denied|authenticat)"

NT_STATUS_LOGON_FAILURE adalah tanda percobaan login gagal — jika frekuensinya tinggi dari satu IP, itu sinyal brute-force yang harus ditindak (episode 15).

Tip

Jangan langsung log level = 10 — itu mode debug yang membanjiri log dan memperlambat server. Naikkan level secara bertahap dan per-kategori: auth_audit untuk keamanan, smbd:3 untuk masalah koneksi. Log yang terlalu banyak akan disembunyikan — dan log yang disembunyikan tidak berguna untuk audit.

Baseline Hardening Lengkap

Rangkaian hardening minimum untuk file server modern:

/etc/samba/smb.conf [global] — baseline
[global]
   security = user
   map to guest = never
   server min protocol = SMB2_10
   server max protocol = SMB3_11
   ntlm auth = no
   lanman auth = no
   server signing = required
   smb encrypt = required
   log level = 1 auth_audit:2
   log file = /var/log/samba/log.%m
   max log size = 1024

Validasi setelah semua perubahan: testparm lalu smbcontrol all reload-config (episode 3). Untuk DC AD, sesuaikan: ntlm auth = no bisa memutus aplikasi yang masih NTLM — terapkan setelah audit.

Pitfall Umum

  • Server tidak bisa diakses setelah smb encrypt = required: ada klien tanpa dukungan enkripsi — gunakan desired dulu sambil audit, baru naik ke required.
  • Signing/encryption "required" tapi klien tetap konek polos: cek smbstatus -b — kalau protokol SMB3_11 tapi tanpa enc/signing, ada override di level share.
  • Mati total setelah ntlm auth = no: perangkat lawas konek dengan NTLM — batasi ke VLAN terpisah atau izinkan NTLM hanya untuk akun tertentu via ntlm auth per-allowlist.

Penutup

Inti yang harus dibawa pulang:

  • server min protocol = SMB2_10 menutup SMB1 dan semua dialek rapuh di bawahnya.
  • ntlm auth = no dan lanman auth = no menghapus protokol autentikasi warisan — terapkan setelah audit.
  • server signing = required + smb encrypt = required adalah baseline koneksi modern.
  • smbstatus adalah audit real-time; auth_audit di log level mencatat event login.
  • Terapkan secara bertahap: detect → assess → enforce, jangan "keras sekaligus".

Di episode 15 selanjutnya kita akan membahas privilege & mitigasi ransomware — snapshot immutable, share read-only untuk target backup, recycle sebagai jaring pengaman, pemantauan akses mencurigakan, serta best practice least privilege dan segregasi share. Server kalian akan disiapkan menghadapi skenario terburuk!

Belajar Samba - Hardening SMB | Belajar Samba