User Tools

Site Tools


linux:samba

Samba Client

List all share on the PC name helene-pc, with the user helene:

smbclient -L \\\\helene-pc -U helene

Domain=[HELENE-PC] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]

 Sharename       Type      Comment
 ---------       ----      -------
 ADMIN$          Disk      Administration à distance
 C$              Disk      Partage par défaut
 Documents       Disk     
 IPC$            IPC       IPC distant
 Users           Disk

Now connect directly on the share Documents:

smbclient \\\\helene-pc\\Documents -U helene
smb: \>

You can use the following commands:

smb: \> ?
?              allinfo        altname        archive        blocksize     
cancel         case_sensitive cd             chmod          chown         
close          del            dir            du             echo          
exit           get            getfacl        hardlink       help          
history        iosize         lcd            link           lock          
lowercase      ls             l              mask           md            
mget           mkdir          more           mput           newer         
open           posix          posix_encrypt  posix_open     posix_mkdir   
posix_rmdir    posix_unlink   print          prompt         put           
pwd            q              queue          quit           readlink      
rd             recurse        reget          rename         reput         
rm             rmdir          showacls       setmode        stat          
symlink        tar            tarmode        translate      unlock        
volume         vuid           wdel           logon          listconnect   
showconnect    ..             !

Mount a CIFS share on Linux:
- CIFS for latest Linux clients
- SMBFS for oldest

mount -t smbfs -o username=<username>,password=<password> //<win-box>/<share> /mnt/<name-of-mountpoint>
or
mount -t cifs //ntserver/download -o username=vivek,password=myPassword /mnt/ntserver
or
mount -t cifs CORESERVER:F\$ /mnt/temp -o username=nimda,domain=WINLAB
Password:

Add an enty into /etc/fstab:

//windows_srv/c$  /mnt/recurring  smbfs  defaults,user,noauto,username=Administrator,password=Password  0  0 
or 
MachineName:ShareFolderName /mnt/MountFolderName cifs username=UserName,domain=DomainName,password=Password 0 0

You can also use a credential file:

root@mystery:~# cat >/etc/recurring.smbpass  <<EOF
username=Administrator
password=password
EOF

By changing the permissions this can then be read only by the root user:
root@mystery:~# chmod 600 /etc/recurring.smbpass 
root@mystery:~# chown root.root /etc/recurring.smbpass

Add into /etc/fstab:
//windows_srv/c$  /mnt/recurring  smbfs  defaults,credentials=/etc/recurring.smbpass  0  0 

Samba Hardening security parameters

Description du contrôleCommande ou paramètre relevéValeur recommandée
Analyse des éventuelles vulnérabilités connues; pour lesquelles un code d'exploitation a été rendu public et impactant la version de SAMBA actuellement utiliséesmbd -VN/A
Authentification mise en œuvre pour SAMBA“Fichier smb.conf:- paramètre security - paramètre server role”Cette valeur est adaptée à l'utilisation du service SAMBA qui est faite
Analyse de la correspondance entre les utilisateurs SAMBA et les utilisateurs du système AIXAnalyse du fichier /samba/usermapSeuls les comptes utilisateurs nécessitant un accès aux partages SAMBA devraient être présents au sein du fichier /samba/usermap
Analyse des permissions systèmes appliquées au fichier de correspondance entre les utilisateurs SAMBA et les utilisateurs du système AIXls -al /samba/usermap'-rw-r–r– root system /samba/usermap
Analyse des permissions systèmes appliquées aux ressources stockant les mots de passe chiffrés des utilisateurs SAMBA Afficher les permissions des fichiers TDB'-rw-r–r– root system
Définition d'une ou plusieurs interface(s) réseau(x) exlplicitement liée(s) au service SAMBA“Fichier smb.conf:- interfaces - bind interfaces only”“interfaces = < inclure adresse IP et nom interface ici bind interfaces only = yes”
Analyse des services réseaux rendus par SAMBA“Fichier smb.conf: - server services”Désactiver les services réseaux non utilisés (par ex. -dns -dnsupdate)
Support des connexions anonymes“Fichier smb.conf: - guest ok - guest only - only guest - map to guest”Les connexions anonymes ne doivent pas être supportées
Chaine de caractères renvoyée par le serveur SAMBA pour les demandes de découverte clientes“Fichier smb.conf: - server string”La chaine de caractères renvoyée par le serveur ne doit pas contenir d'informations techniques (par ex. version de SAMBA)
Présence d'une solution anti-virus installée et configurée pour analyser la présence éventuelle de fichiers / dossiers malveillantsN/AUne solution anti-virus devrait être utilisée
Niveau de verbosité défini pour la journalisation des évènements SAMBA“Fichier smb.conf:- log level”log level = 3
Permissions appliquées pour le fichier de journalisation SAMBAls -al /samba/logs/smbd.log-rw-r–r– root system /samba/logs/smbd.log
Permissions appliquées pour les dossiers partagésls -al /samba/interfacesN/A
Possibilité d'énumérer le contenu des répertoires partagés“Fichier smb.conf:- browseable - access based shared enum”“browseable = no access based shared enum = yes”
Définition des accès en lecture seule ou lecture / écriture“Fichier smb.conf:- read only”read only = yes pour les partages ou aucune modification / ajout de fichier ne doit être implémenté
Limiter le nombre de processus SMBD concurrents“Fichier smb.conf: - max smbd processes”max smbd processes = 1000
Délai de déconnexion automatique des sessions inactives“Fichier smb.conf:- deadtime”deadtime = 10
Limiter le nombre de connexions réseaux concurrentes“Fichier smb.conf:- max connections”max connections = 30
Analyse des utilisateurs autorisés / non autorisés à accéder aux ressources SAMBA“Fichier smb.conf: - valid users - invalid users”Préférer utiliser une approche de type liste blanche (valid users) pour autoriser un nombre restreint de comptes utilisateurs à accéder aux ressources SAMBA
Analyse des systèmes autorisés / non autorisés à accéder aux ressources SAMBA“Fichier smb.conf:- hosts allow - hosts deny”Préférer utiliser une approche de type liste blanche (host allow) pour autoriser un nombre restreint de systèmes à accéder aux ressources SAMBA
Permissions configurées lors de la création de fichiers ou dossiers“Fichier smb.conf:- create mask - directory mask”directory mask 0777
Politique de mots de passe utilisée au sein de SAMBA“Fichier smb.conf:- check password - unix passwd sync”Présence d'une politique de mots de passe
Désactivation de la mise en cache des fichiers / dossiers SAMBA“Fichier smb.conf:- csc policy”csc policy = disable
Désactivation de NetBIOS“Fichier smb.conf:- disable netbios”disable netbios = yes
Désactiver le suivi des liens symboliques“Fichier smb.conf:- follow symlinks”follow symlinks = no
Désactiver les diffusions LanManager“Fichier smb.conf:- lm announce”lm announce = no
Désactiver les protocoles d'authentification non sécurisés“Fichier smb.conf:- server min protocol - ntlm auth”“ntlm auth = no server min protocol = NT1”
Signature du traffic SMB pour le protocole SMB1“Fichier smb.conf:- server signing”server signing = auto

Samba Server

Check samba server parameters

# testparm -vs | grep "protocol"
        client ipc max protocol = default
        client ipc min protocol = default
        client max protocol = default
        client min protocol = CORE
        server max protocol = SMB3
        server min protocol = LANMAN1
PROTOCOL VALUES for SMB

Check using man smb.conf (/etc/samba/smb.conf)

The value of the parameter (a string) is the highest protocol level that will be supported by the client. Possible values are :

  • CORE: Earliest version. No concept of user names.
  • COREPLUS: Slight improvements on CORE for efficiency.
  • LANMAN1: First modern version of the protocol. Long filename support.
  • LANMAN2: Updates to Lanman1 protocol.
  • NT1: Current up to date version of the protocol. Used by Windows NT. Known as CIFS.
  • SMB2: Re-implementation of the SMB protocol. Used by Windows Vista and later versions of Windows. SMB2 has sub protocols available.
  • SMB2_02: The earliest SMB2 version.
  • SMB2_10: Windows 7 SMB2 version.
  • SMB2_22: Early Windows 8 SMB2 version.
  • SMB2_24: Windows 8 beta SMB2 version.
  • By default SMB2 selects the SMB2_10 variant.
  • SMB3: The same as SMB2. Used by Windows 8. SMB3 has sub protocols available.
  • SMB3_00: Windows 8 SMB3 version. (mostly the same as SMB2_24)
  • SMB3_02: Windows 8.1 SMB3 version.
  • SMB3_10: early Windows 10 technical preview SMB3 version.
  • SMB3_11: Windows 10 technical preview SMB3 version (maybe final).
  • By default SMB3 selects the SMB3_11 variant.
  • Normally this option should not be set as the automatic negotiation phase in the SMB protocol takes care of choosing the appropriate protocol.
  • The value default refers to SMB3_11.
Encrypt user's passwords

To create a user in samba, if local authentification, then create the user locally then use pdbedit

List all users (verbose)

# pdbedit -L -v 

Create a user, you 'll be prompt for password, the user must exist on unix

# pdbedit -a -u myuser

Remove a user

# pdbedit -x -u myuser
linux/samba.txt · Last modified: 2021/01/01 21:25 (external edit)