| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| tutoriel:samba_ad_dc_members [Le 21/11/2017, 17:35] – ajout {{tag>tutoriel}} fabux | tutoriel:samba_ad_dc_members [Le 11/09/2022, 12:20] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art |
|---|
| <file - /etc/resolv.conf>nameserver 192.168.1.11 | <file - /etc/resolv.conf>nameserver 192.168.1.11 |
| search example.com</file> | search example.com</file> |
| Ces paramètres sont soit fournis par le serveur DHCP du réseau ou configurés de façon statique dans le fichier /etc/network/interfaces par l'intermédiaire du paquet //resolvconf// avec les commandes dns-nameservers et dns-search. | Ces paramètres sont soit fournis par le serveur DHCP du réseau ou configurés de façon statique dans le fichier **/etc/network/interfaces** (obsolète à partir de 18.04) ou dans un fichier YAML dans **/etc/netplan** (par défaut à partir de 18.04) (se référer à [[tutoriel:comment_configurer_son_reseau_local|Comment configurer son réseau local ?]] et [[utilisateurs:ool:netplan|netplan]]) |
| <file - /etc/network/interfaces>auto eth0 | |
| iface eth0 inet static | |
| address 192.168.1.101 | |
| netmask 255.255.255.0 | |
| gateway 192.168.1.1 | |
| dns-nameservers 192.168.1.11 | |
| dns-search example.com</file> | |
| Les tests suivant devraient renvoyer des résultats corrects (se référer à [[:samba-active-directory#tests_du_dns|Samba AD DC - Tests du DNS]]) | Les tests suivant devraient renvoyer des résultats corrects (se référer à [[:samba-active-directory#tests_du_dns|Samba AD DC - Tests du DNS]]) |
| <code>dig ubndc01.example.com</code> | <code>dig ubndc01.example.com</code> |
| ==== Configurer samba ==== | ==== Configurer samba ==== |
| La configuration de samba peut être réécrite comme suit : | La configuration de samba peut être réécrite comme suit : |
| | * Pour Ubuntu 14.04 et 16.04 (avant Samba 4.6) |
| <file - /etc/samba/smb.conf> | <file - /etc/samba/smb.conf> |
| # Global parameters | # Global parameters |
| [global] | [global] |
| workgroup = EXAMPLE | workgroup = EXAMPLE |
| |
| winbind nss info = rfc2307 | winbind nss info = rfc2307 |
| | winbind trusted domains only = no |
| | winbind use default domain = yes |
| | winbind enum users = yes |
| | winbind enum groups = yes |
| | winbind refresh tickets = yes |
| | |
| | kerberos method = system keytab |
| | </file> |
| | * A partir d'Ubuntu 17.10 (à partir de Samba 4.6) |
| | <file - /etc/samba/smb.conf> |
| | # Global parameters |
| | [global] |
| | workgroup = EXAMPLE |
| | realm = EXAMPLE.COM |
| | netbios name = ubnwks01 |
| | security = ADS |
| | encrypt passwords = yes |
| | |
| | idmap config EXAMPLE:backend = ad |
| | idmap config EXAMPLE:schema_mode = rfc2307 |
| | idmap config EXAMPLE:range = 10000-39999 |
| | idmap config EXAMPLE:unix_nss_info = yes |
| | |
| | idmap config *:backend = tdb |
| | idmap config *:range = 40000-49999 |
| | |
| winbind trusted domains only = no | winbind trusted domains only = no |
| winbind use default domain = yes | winbind use default domain = yes |
| Les lignes //idmap config *:... // définissent le backend tdb (base de données locale) et la plage d'identifiants pour les utilisateurs et groupes venant d'autres domaines. On retrouve ici entre-autre les groupes venant de BUILTIN. Par défaut, une machine qui rejoint le domaine reçoit deux groupes locaux, //BUILTIN\Administrators// et //BUILTIN\Users//. Par défaut, le groupe //EXAMPLE\Domain Admins// est membre du groupe //BUILTIN\Administrators// et le groupe //EXAMPLE\Domain Users// est membre du groupe //BUILTIN\Users//. Les autres groupes qui seraient créés localement sur la machine auront la forme //UBNWKS01\Nom du groupe//. | Les lignes //idmap config *:... // définissent le backend tdb (base de données locale) et la plage d'identifiants pour les utilisateurs et groupes venant d'autres domaines. On retrouve ici entre-autre les groupes venant de BUILTIN. Par défaut, une machine qui rejoint le domaine reçoit deux groupes locaux, //BUILTIN\Administrators// et //BUILTIN\Users//. Par défaut, le groupe //EXAMPLE\Domain Admins// est membre du groupe //BUILTIN\Administrators// et le groupe //EXAMPLE\Domain Users// est membre du groupe //BUILTIN\Users//. Les autres groupes qui seraient créés localement sur la machine auront la forme //UBNWKS01\Nom du groupe//. |
| |
| Les lignes //winbind ...// définissent d'autres options pour l'utilisation de //winbind//. Notamment, la ligne //use default domain// permet de ne pas devoir inscrire à chaque fois le nom du domaine pour un utilisateur ou un groupe appartenant au domaine par défaut. La ligne //winbind offline logon// permet de | Les lignes //winbind ...// définissent d'autres options pour l'utilisation de //winbind//. Notamment, la ligne //use default domain// permet de ne pas devoir inscrire à chaque fois le nom du domaine pour un utilisateur ou un groupe appartenant au domaine par défaut. |
| |
| La ligne //kerberos method = system keytab// va générer, lorsque l'on joint la machine au domaine, et maintenir à jour un fichier keytab propre à la machine (/etc/krb5.keytab). Ce fichier est le jeton d'authentification Kerberos pour la machine (UBNWKS01$). Ce jeton comme toute autre jeton Kerberos expire après un certain délais (10 jours ?). Avec cette option, le service //samba// maintient à jour ce jeton en le renouvelant régulièrement à condition d'avoir une connexion avec le DC. | La ligne //kerberos method = system keytab// va générer, lorsque l'on joint la machine au domaine, et maintenir à jour un fichier keytab propre à la machine (/etc/krb5.keytab). Ce fichier est le jeton d'authentification Kerberos pour la machine (UBNWKS01$). Ce jeton comme toute autre jeton Kerberos expire après un certain délais (10 jours ?). Avec cette option, le service //samba// maintient à jour ce jeton en le renouvelant régulièrement à condition d'avoir une connexion avec le DC. |
| | <note important>A partir de Samba 4.6, le paramètre **winbind nss info = rfc2307** est remplacé par **idmap config EXAMPLE:unix_nss_info = yes**(([[https://wiki.samba.org/index.php/Idmap_config_ad#The_RFC2307_and_template_Mode_Options|The RFC2307 and template Mode Options]]))</note> |
| |
| ==== Appliquer les modifications ==== | ==== Appliquer les modifications ==== |
| |
| ==== Joindre la machine au domaine ==== | ==== Joindre la machine au domaine ==== |
| <code>sudo net join -U Administrator | Bien que l'option **createupn** ne soit pas obligatoire pour joindre la machine dans le domaine, certaines fonctionnalités tel que [[tutoriel:samba_ad_dc_nfs4_kerberized|Partage NFSv4 avec authentification Kerberos]] auront besoin que cette information soit présente dans l'AD. Il est donc recommandé de directement fournir ces informations plutôt que de ne pas le faire, attendre et finalement s'amuser à modifier ultérieurement l'objet dans l'AD. |
| | <code>sudo net join -U Administrator</code> |
| | ou |
| | <code>sudo net join createupn=UBNWS01.EXAMPLE.COM\$@EXAMPLE.COM -U Administrator |
| Enter Administrator's password: | Enter Administrator's password: |
| Using short domain name -- EXAMPLE | Using short domain name -- EXAMPLE |
| <code>ls -l /etc/krb5.keytab | <code>ls -l /etc/krb5.keytab |
| -rw------- 1 root root 1057 Nov 4 19:37 /etc/krb5.keytab</code> | -rw------- 1 root root 1057 Nov 4 19:37 /etc/krb5.keytab</code> |
| Avec les [[utilisateurs:qedinux:samba_ad_dc_members#kerberos|outils Kerberos]], on peut lire ce ticket | Avec les [[utilisateurs:qedinux:samba_ad_dc_members#kerberos|outils Kerberos]], on peut lire ce ticket |
| <code>sudo klist -ket | <code>sudo klist -ket |
| Keytab name: FILE:/etc/krb5.keytab | Keytab name: FILE:/etc/krb5.keytab |
| La seconde interroge le DC pour recevoir un nouveau jeton et crée le fichier /etc/krb5.keytab sur la machine. | La seconde interroge le DC pour recevoir un nouveau jeton et crée le fichier /etc/krb5.keytab sur la machine. |
| <code>sudo net ads keytab create -k</code> | <code>sudo net ads keytab create -k</code> |
| <note tip>Vous recevez un avertissement si le paramètre "kerberos method" n'est pas définit dans /etc/samba/smb.conf | <note tip>Vous recevez un avertissement si le paramètre "kerberos method" n'est pas définit dans /etc/samba/smb.conf |
| <code>Warning: "kerberos method" must be set to a keytab method to use keytab functions.</code> | <code>Warning: "kerberos method" must be set to a keytab method to use keytab functions.</code> |
| </note> | </note> |
| |
| ==== Authentification hors ligne ==== | ==== Authentification hors ligne ==== |
| | <note>A mettre à jour cfr [[https://wiki.samba.org/index.php/PAM_Offline_Authentication|PAM Offline Authentication]]</note> |
| Le cas des ordinateurs portables est typique d'une situation dans laquelle l'utilisateur est amené à ne pas être connecté au réseau et par conséquence, ne pas être capable de se faire authentifier par le DC. Une solution à ce problème consiste à mettre en place un cache des authentifications sur base des authentifications réussies. Ainsi, lorsque le DC est inaccessible, le cache permet d'authentifier l'utilisateur lui permettant de travailler. | Le cas des ordinateurs portables est typique d'une situation dans laquelle l'utilisateur est amené à ne pas être connecté au réseau et par conséquence, ne pas être capable de se faire authentifier par le DC. Une solution à ce problème consiste à mettre en place un cache des authentifications sur base des authentifications réussies. Ainsi, lorsque le DC est inaccessible, le cache permet d'authentifier l'utilisateur lui permettant de travailler. |
| |
| <code>sudo pam-auth-update</code> | <code>sudo pam-auth-update</code> |
| |
| Afin de réaliser le cache des d'informations d'authentification, il faut installer le PAM pour CCRED (Cache Credentials) avec le paquet **[[apt>libpam-ccreds]]** | <del>Afin de réaliser le cache des d'informations d'authentification, il faut installer le PAM pour CCRED (Cache Credentials) avec le paquet **[[apt>libpam-ccreds]]**</del> |
| <code>sudo apt-get install libpam-ccreds</code> | <code>sudo apt-get install libpam-ccreds</code> |
| |
| Le PAM pour CCRED (Cache Credentials) réalise le cache des informations d'authentification. Ce cache est stocké dans une base de données de type Berkeley DB, /var/cache/.security.db. Il est possible d'interroger cette base de données avec les outils //cc_dump// et //cc_test// fournis par le paquet //libpam-ccreds//. Cette base de données équivaut au //shadow// du NSS. | <del>Le PAM pour CCRED (Cache Credentials) réalise le cache des informations d'authentification. Ce cache est stocké dans une base de données de type Berkeley DB, /var/cache/.security.db. Il est possible d'interroger cette base de données avec les outils //cc_dump// et //cc_test// fournis par le paquet //libpam-ccreds//. Cette base de données équivaut au //shadow// du NSS.</del> |
| |
| Il faut également ajouter le paquet **[[apt>nss-updatedb]]** | <del>Il faut également ajouter le paquet **[[apt>nss-updatedb]]**</del> |
| <code>sudo apt-get install nss-updatedb</code> | <code>sudo apt-get install nss-updatedb</code> |
| |
| Le paquet //nss-updatedb// fourni la commande //nss_updatedb// qui permet de créer des bases de données de type Berkeley DB stockant les données équivalentes aux //passwd// et //group// du NSS. Il faut l'invoquer régulièrement afin de maintenir à jour ces bases de données. | <del>Le paquet //nss-updatedb// fourni la commande //nss_updatedb// qui permet de créer des bases de données de type Berkeley DB stockant les données équivalentes aux //passwd// et //group// du NSS. Il faut l'invoquer régulièrement afin de maintenir à jour ces bases de données.</del> |
| <code>sudo nss_updatedb winbind</code> | <code>sudo nss_updatedb winbind</code> |
| De plus, il faut informer le système qu'il peut utiliser ces bases de données comme source pour //passwd// et //group// en ajoutant //db// aux entrées respectives du fichier ///etc/nsswitch.conf// | <del>De plus, il faut informer le système qu'il peut utiliser ces bases de données comme source pour //passwd// et //group// en ajoutant //db// aux entrées respectives du fichier ///etc/nsswitch.conf//</del> |
| <file - /etc/nsswitch.conf> | <file - /etc/nsswitch.conf> |
| passwd: compat winbind db | passwd: compat winbind db |