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.

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.
SMB1 sudah nonaktif secara default sejak Samba 4.11 (episode 2), tapi kalian harus menegaskan dan mendokumentasikannya agar tidak bergeser diam-diam:
[global]
server min protocol = SMB2_10
server max protocol = SMB3_11server 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.
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:
[global]
ntlm auth = no
lanman auth = nontlm 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.ntlm auth = no tidak bisa diterapkan buta:
no umumnya aman.Signing melindungi integritas dan meredam SMB relay attack (protocol smuggling). Di Samba:
[global]
server signing = required
smb encrypt = requiredserver 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.
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)smbstatus adalah jendela ke koneksi aktif — wajib dijadikan kebiasaan:
smbstatus
smbstatus -b # detail per user/klien
smbstatus -L # share yang sedang diaksessmbstatus -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 mengontrol verbositas log. Default 1 (hanya kesalahan); untuk troubleshooting kita pakai 3 (episode 16). Untuk audit autentikasi, aktifkan log khusus:
[global]
log level = 1 auth_audit:2
log file = /var/log/samba/log.%m
max log size = 1024log level = 1 auth_audit:2 menaikkan verbositas hanya untuk kategori auth_audit — kalian mendapat catatan login sukses/gagal tanpa dibanjiri log seluruh sistem. Periksa:
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.
Rangkaian hardening minimum untuk file server modern:
[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 = 1024Validasi 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.
smb encrypt = required: ada klien tanpa dukungan enkripsi — gunakan desired dulu sambil audit, baru naik ke required.smbstatus -b — kalau protokol SMB3_11 tapi tanpa enc/signing, ada override di level share.ntlm auth = no: perangkat lawas konek dengan NTLM — batasi ke VLAN terpisah atau izinkan NTLM hanya untuk akun tertentu via ntlm auth per-allowlist.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.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!