Étiquette : samba

23 mai 2019 /

Création d’un partage entre un hyperviseur KVM et une de ses machines virtuelles

[pastacode lang= »bash » manual= »systemctl%20enable%20smb%20nmb%0Asystemctl%20start%20smb%20nmb » message= »Activation de samba » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »ip%20a%20show%20dev%20virbr0″ message= »Virbr0 est le bridge linux créé par libvirt lors de son installation, il faut l’identifier » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »virsh%20net-edit%20default » message= »SI on veut modifier l’adresse de virbr0″ highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »mkdir%20%2Fpartage_vm%0Auseradd%20-m%20-d%20%2Fpartage_vm%20partage%0Achown%20-R%20partage%20%2Fpartage_vm%0Achmod%20g%2Bw%20%2Fpartage_vm%0Asmbpasswd%20-a%20partage » message= »On crée le partage et le compte utilisateur pour s’y connecter » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »%5Bglobal%5D%0A%20%20%20%20%20%20%20workgroup%20%3D%20WorkGroup%0A%20%20%20%20%20%20%20netbios%20name%20%3D%20Host%0A%20%20%20%20%20%20%20server%20string%20%3D%20serveur%20%25h%20(Samba%20%25partagevm)%0A%20%20%20%20%20%20%20%23%20On%20souhaite%20n’autoriser%20l’acc%C3%A8s%20que%20via%20certaines%20interfaces%20r%C3%A9seau%0A%20%20%20%20%20%20%20bind%20interfaces%20only%20%3D%20Yes%0A%20%20%20%20%20%20%20interfaces%20%3D%20127.0.0.1%2C%20192.168.122.1%0A%20%20%20%20%20%20%20log%20file%20%3D%20%2Fvar%2Flog%2Fsamba%2Flog.%25m%0A%20%20%20%20%20%20%20max%20log%20size%20%3D%20100%0A%0A%5Bpartage_vm%5D%0A%20%20%20%20%20%20%20path%20%3D%20%2Fpartage_vm%2F%0A%20%20%20%20%20%20%20public%20%3D%20no%0A%20%20%20%20%20%20%20browsable%20%3D%20yes%0A%20%20%20%20%20%20%20valid%20users%20%3D%20partage%0A%20%20%20%20%20%20%20guest%20ok%20%3D%20no%0A%20%20%20%20%20%20%20writable%20%3D%20yes%0A%20%20%20%20%20%20%20printable%20%3D%20no%0A%20%20%20%20%20%20%20hide%20files%20%3D%20%2Flost%2Bfound%2F%0A%20%20%20%20%20%20%20hide%20unreadable%20%3D%20yes%0A%20%20%20%20%20%20%20%23%20on%20force%20les%20permissions%0A%20%20%20%20%20%20%20create%20mask%20%3D%20777%0A%20%20%20%20%20%20%20force%20create%20mode%20%3D%20777%0A%20%20%20%20%20%20%20security%20mask%20%3D%20777%0A%20%20%20%20%20%20%20force%20security%20mode%20%3D%20777″ message= »On declare le partage dans le ficher /etc/samba/smb.conf » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »systemctl%20restart%20nmb.service%20smb.service%20%0Afirewall-cmd%20–add-service%3Dsamba%20–permanent%20–add-source%3D192.168.122.1%2F24″ message= »On redemarre samba et on ouvre les ports samba » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »smbclient%20%2F%2F192.168.122.1%2Fpartage_vm%20-U%20partage » message= »Test du serveur depuis l’hyperviseur » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »semanage%20fcontext%20-a%20-t%20samba_share_t%20’%2Fpartage_vm(%2F.*)%3F’%0Arestorecon%20-R%20%2Fpartage_vm%0A » message= »Si SELinux est actif dans un dossier specifique » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »setsebool%20-P%20samba_enable_home_dirs%20on » message= »Si SELinux est dans /home » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »ls%20-Z%20%2Fpartage_vm%0A-rw-rw-r–.%20partage%20partage%20unconfined_u%3Aobject_r%3Asamba_share_t%3As0%20truc.txt » message= »Pour vérifier le contexte de SELinux » highlight= » » provider= »manual »/]

Sur la VM, le dossier est accessible à l’adresse \\ip_de_virbr0\partage_vm

 

4 avril 2016 /

Pensez à déclarer le serveur dés le début dans l’AD pour éviter de patienter durant la réplication!

Avec pour domaine starmate.fr, en contrôleur primaire DC001 (192.168.2.10) et en contrôleur secondaire DC002 (192.168.2.11).

1 – Prérequis

Synchroniser l’heure avec l’adresse ip du contrôleur de domaine (ici DC001):

ntpdate 192.168.2.10

Installation de Samba, Winbind et Kerberos:

yum install samba samba-winbind samba-winbind-clients krb5-workstation krb5-libs oddjob-mkhomedir oddjob

2 – Configuration

Configuration de Kerberos:

vi /etc/krb5.conf

Et on y mets uniquement ça:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = FR.STARMATE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
FR.STARMATE.LOCAL = {
kdc = DC001
kdc = DC002
admin_server = DC001.fr.starmate.local
admin_server = DC002.fr.starmate.local
default_domain = FR.STARMATE.LOCAL
}

[domain_realm]
.fr.starmate.local = FR.STARMATE.LOCAL
fr.starmate.local = FR.STARMATE.LOCAL
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

On peut tester nos paramètres avec un compte administrateur du domaine (ici admindevops):

kinit admindevops

Configuration de Samba:

vi /etc/samba/smb.conf

Et on y mets uniquement ça (à adapter suivant votre configuration):

[global]
workgroup = STARMATE-FR
interfaces = 127.0.0.1 eth0
bind interfaces only = true
security = ads
passdb backend = tdbsam
template shell = /bin/bash
template homedir = /home/%D/%U
realm = FR.STARMATE.LOCAL
password server = DC001.fr.starmate.local, DC002.fr.starmate.local
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
printing = cups
printcap name = cups
load printers = no

3 – Jonction au domaine

Toujours avec notre compte administrateur (ici admindevops) sur le domaine, on va maintenant rejoindre le domaine avec notre serveur:

net join -U admindevops

Pour vérifier que l’on a bien rejoint le domaine:

net ads testjoin

N.B : la jonction au domaine n’est pas instantanée et peut durer quelques minutes.

4 – Authentification avec l’AD

Configuration de Winbind:

authconfig --enablewinbind --enablemd5 --enableshadow --enablewinbindauth --enablelocauthorize --enablemkhomedir --update

On modifie la configuration de PAM:

vi /etc/pam.d/system-auth

Et on y mets uniquement ça (à adapter suivant votre configuration):

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_winbind.so krb5_auth krb5_ccache_type=FILE use_first_pass
auth        required      pam_deny.so
account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so
password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     required      pam_mkhomedir.so skel=/etc/skel umask=0077
#session     required      pam_oddjob_mkhomedir.so skel=/etc/skel umask=0077     => Decommentez si votre serveur est un RHEL7 ou Centos 6-7

Activation des services:

service smb start
service winbind start
service oddjobd start

Afficher la liste des groupes d’Active Directory :

sudo wbinfo -g

Afficher la liste des utilisateurs d’Active Directory :

sudo wbinfo -u

Création du répertoire d’accueil des ~/home et activation du démarrage de winbind, samba et oddjob:

mkdir /home/STARMATE-FR
chcon --reference=/home /home/STARMATE-FR
chkconfig smb on
chkconfig winbind on
chkconfig oddjobd on

Vous devriez maintenant pouvoir vous connecter avec un compte du domaine AD 2012.

5 – Limitation d’accès

Pour filtrer les utilisateurs qui se connecte sur le serveur par groupe,  il faut modifier le fichier /etc/security/pam_winbind.conf et ajouter les groupes désirés (ici le groupe « groupe_des_admins »):

vi /etc/security/pam_winbind.conf

Puis on ajoute/modifie le paramètre suivant:

require_membership_of = groupe_des_admins

Pour déclarer plusieurs groupes, il faut faire une séparation avec une virgule.

Puis, si on veut donner le droit à la commande sudo à ce groupe:

visudo

et on y ajoute cette ligne:

%groupe_des_admins ALL=(ALL) ALL

 

5 décembre 2015 /

Pour améliorer l’ouverture de gros fichiers partagés avec Samba, il faut rajouter cette signe dans /etc/samba/smb.conf:

socket options = IPTOS_LOWDELAY TCP_NODELAY

6 juillet 2015 /

Pour créer un compte Samba nommé « utilisateur » avec le mot de passe « motdepasse » :

smbpasswd -a utilisateur motdepasse

Maintenant il ne reste plus qu’ajouter des partages accessibles pour cette utilisateur dans la configuration de Samba.

 

PS, pour afficher la liste des utilisateurs Samba:

pdbedit -L