Serveurs/Golf.md
... ...
@@ -15,20 +15,69 @@ Golf est sur Debian 7. C'est une vieille VM, et le projet [RWS](https://git.rese
15 15
16 16
Comme Golf sert pour l'hébergement des sites de clubs, cette machine héberge une serveur FTP pour que les clubs puissent pousser du code pour leur site.
17 17
18
-### Authentification LDAP
18
+Il y a deux choses : `NSS` qui gère le LDAP comme bdd de configuration pour le système, et `PAM` qui permet d'authentifier depuis le LDAP.
19 19
20
-Pour que les membres puissent se connecter à la machine en FTP, un compte leur est créé, et `pam` est configuré pour accepter leurs connexion en authentifiant depuis le LDAP.
20
+## Synchronisation webmestres & sites via LDAP
21 21
22
-La configuration du ldap pour pam est : `/etc/pam_ldap.conf`
22
+Les webmestres des sites de clubs doivent pouvoir y accéder, via le ftp.
23
+Pour cela, Golf est configuré pour synchroniser ses comptes utilisateurs et ses groupes avec le LDAP
23 24
25
+#### Authentification via PAM
26
+
27
+**PAM** : _Pluggable Authentication Module_ est le gestionnaire des authentifications sous linux, il est configuré pour accepter leurs connexion en les authentifiant depuis le LDAP.
28
+
29
+La configuration globale du ldap pour pam est dans : `/etc/pam_ldap.conf`, elle contient le lien vers la branche du LDAP.
30
+
31
+Ensuite les modules d'interface de pam (ce sont les différent aspect du processus d'authentification), qui sont dans `/etc/pam.d` sont configurés pour accepter un accord de pam_ldap comme suffisant (`sufficient`) :
32
+* `common-password` : pour modifier son mot de passe
33
+* `common-session` : pour configurer la session
34
+* `common-auth` : pour authentifier l'utilisateur
35
+* `common-account` : pour vérifier que le compte est valide
36
+* `sshd` : pour les connexions ssh.
37
+
38
+La configuration actuelle du LDAP accepte une connexion de n'importe quel membre du ResEl dans la branche
24 39
25 40
##### Ajouter un compte admin
26 41
27
-Comme le compte existe déjà en tant que compte user, il faut soit ajouter un compte admin avec un pseudo différent, où si on souhaite remplacer le compte user, il faut modifier dans la conf `pam` le provider d'authentification qui sur LDAP, pour le mettre en compte Linux classsique :
42
+Comme le compte existe déjà en tant que compte user, il faut ajouter un compte admin avec un pseudo différent.
43
+
44
+Il est peut-être possible de modifier dans la conf de `pam` le provider d'authentification pour des exceptions, pour le mettre en compte Linux classique :
45
+
28 46
47
+#### Synchronisation des informations via NSS
48
+
49
+Une fois qu'on utilisateur est authentifié, les programmes qui ont besoin des infos d'un user, traditionnellement vont les chercher dans `/etc/passwd`, `/etc/group` et doivent demander à **NSS** : _Name service Switch_. On utilise nss_ldap pour synchroniser le LDAP comme bdd pour ces services, par exemple `passwd` est sur Linux la base de donnée qui store les comptes des utilisateurs.
50
+
51
+Il est installé via `apt install libnss-ldap`.
52
+
53
+La configuration globale de NSS est dans `/etc/nsswitch.conf` et précise et les utilisateurs et les groupes vont être recuperé depuis le LDAP.
54
+
55
+La configuration globale du LDAP pour NSS est dans `/etc/nss-ldap.conf`. Cette configuration contient aussi une partie intéressante :
29 56
```
57
+nss_base_passwd ou=webmasters,dc=maisel,dc=enst-bretagne,dc=fr?one
58
+nss_base_group ou=sites,dc=resel,dc=enst-bretagne,dc=fr?one
59
+logdir /var/log/libnss-ldap
60
+nss_default_attribute_value uidNumber 179
61
+nss_override_attribute_value uidNumber 179
62
+nss_default_attribute_value gidNumber 1029
63
+nss_map_objectclass posixAccount genericPerson
64
+nss_map_objectclass shadowAccount genericPerson
65
+nss_default_attribute_value cn ldap_user
66
+nss_default_attribute_value loginShell /usr/bin/scponlyc_umask
67
+nss_override_attribute_value loginShell /usr/bin/scponlyc_umask
30 68
```
31 69
70
+Cela signifie :
71
+- Les comptes (qui sont les webmestres) vont êtes récupérés depuis `ou=webmasters`
72
+- Les groupes (qui sont les sites de clubs) vont être récuperés depuis `ou=sites`.
73
+- On map un `posixAccount` a un `genericPerson`
74
+- Le shell autorisé pour les utilisateurs depuis le ldap est `scponly` qui est un cli pour `scp`.
75
+
76
+# Historique
77
+
78
+* Migration et re-rédaction des articles sur Golf et Sites Clubs par Théo Jacquin en 2017.
79
+* Golf mise en place, refonte entière du système de site de clubs : mise en place de webmasters et plus de compte par clubs, refonte de l'architecture.
80
+* Avant Golf, les sites clubs étaient hébergés sur Baal.
32 81
33 82
# Liens utiles
34 83