Modifications entre les versions 3 et 14 (s'étendant sur 11 versions)
Version 3 à la date du 2006-12-06 09:58:12
Taille: 1097
Éditeur: JérômeSantini
Commentaire: synchro passwd/mysql
Version 14 à la date du 2006-12-11 15:49:52
Taille: 3290
Éditeur: JérômeSantini
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
= Création base de donneés = ## page was renamed from Tini/Notes/NssCnf
= Création de la base de données =
Ligne 12: Ligne 13:
mysql> grant select on authnss.* to nss@'%' identified by 'xxxxx'; mysql> grant select on authnss.* to nssroot@'%' identified by 'xxxxx';
Ligne 27: Ligne 28:
 * activer log mysql.log, virer /var/log/mysql/mysql-bin.log  * activer log /var/log/mysql/mysql.log (à supprimer qd debug terminé)
 *
virer /var/log/mysql/mysql-bin.log
 * set-variable=wait_timeout=10
Ligne 32: Ligne 35:

note : le shell est configuré en statique à {{{/bin/bash}}} sur les postes clients. Et pris dans la colonne {{{shell}}} pour les serveurs. (reprise 1:1 du schéma nis)

= Test =

 * 8 machines dans le centre de ressources
 * les 3 machines cheikh, balla, zoser (configuration via auf-auth-mysql)
 * 10 machines infotèhe
 * sur nfs.refer.sn lui-même
 * suivi du nombre de connexion mysql simultanées sur http://bao.sn.auf/cgi-bin/grapher.cgi?target=/serveurs/nfs/mysql;view=mysql;ranges=d:w:m:y

= Sale problème de merde qui pue =

dans la fonction "lookup" de libnss-mysql-bg :
{{{
  cur_euid = geteuid ();
  D ("%s: restricted = %d, cur_euid = %u", FUNCNAME, restricted, cur_euid);
  if (restricted == ntrue && cur_euid != 0)
    DSRETURN (NSS_NOTFOUND)
}}}
et dans le getspnam :
{{{
#ifdef HAVE_NSS_H
  retVal = _nss_mysql_lookup (BYNAME, name, 0, conf.sql.query.getspnam,
                              ntrue, result, buffer, buflen, errnop,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
#else
  retVal = _nss_mysql_lookup (BYNAME, NSS_ARGS(args)->key.name, 0,
                              conf.sql.query.getspnam, ntrue,
                              NSS_ARGS(args)->buf.result,
                              NSS_ARGS(args)->buf.buffer,
                              NSS_ARGS(args)->buf.buflen,
                              &NSS_ARGS(args)->erange,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
  if (retVal == NSS_SUCCESS)
    NSS_ARGS(args)->returnval = NSS_ARGS(args)->buf.result;
#endif
}}}

résultat, seul root à accés aux mot de passe, les mécanismes "pam/shadow" genre unix_chkpwd sont tous cassés. (Faire un chmodu+s /bin/unix_chkpwd ? booof)

= Actions suivantes =

 * signaler le bug à debian/ubuntu
 * faire un package patché sans le test en attendant
 * mesurer l'impact sur le serveur mysql, suivre les perfs : en inférer le nbre max de process à configurer
 * documenter une fois que ça tourne bien : LibNssMysql

Création de la base de données

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.0.24_Debian-10sarge2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database authnss;
Query OK, 1 row affected (0.02 sec)

mysql> grant select on authnss.* to nssroot@'%' identified by 'xxxxx';
Query OK, 0 rows affected (0.00 sec)

mysql> use authnss;
Database changed
mysql> source /root/auth.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Modifs du /etc/mysql/my.cnf ::

  • écouter sur le réseau
  • activer log /var/log/mysql/mysql.log (à supprimer qd debug terminé)
  • virer /var/log/mysql/mysql-bin.log
  • set-variable=wait_timeout=10

Synchro /etc/{passwd,shadow} avec mysql

modification de admincomptes pour insérer des appels à [http://trac.sn.auf.org/guia/browser/contrib/migrations/auth-sql/import-passwd import-passwd] aux endroits appropriés. cf. [http://trac.sn.auf.org/guia/browser/contrib/migrations/auth-sql/LISZEMOI.txt LISEZMOI.txt] pour l'utilisation du machin.

note : le shell est configuré en statique à /bin/bash sur les postes clients. Et pris dans la colonne shell pour les serveurs. (reprise 1:1 du schéma nis)

Test

Sale problème de merde qui pue

dans la fonction "lookup" de libnss-mysql-bg :

  cur_euid = geteuid ();
  D ("%s: restricted = %d, cur_euid = %u", FUNCNAME, restricted, cur_euid);
  if (restricted == ntrue && cur_euid != 0)
    DSRETURN (NSS_NOTFOUND)

et dans le getspnam :

#ifdef HAVE_NSS_H
  retVal = _nss_mysql_lookup (BYNAME, name, 0, conf.sql.query.getspnam,
                              ntrue, result, buffer, buflen, errnop,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
#else
  retVal = _nss_mysql_lookup (BYNAME, NSS_ARGS(args)->key.name, 0,
                              conf.sql.query.getspnam, ntrue,
                              NSS_ARGS(args)->buf.result,
                              NSS_ARGS(args)->buf.buffer,
                              NSS_ARGS(args)->buf.buflen,
                              &NSS_ARGS(args)->erange,
                              _nss_mysql_load_shadow, &mresult, FUNCNAME);
  if (retVal == NSS_SUCCESS)
    NSS_ARGS(args)->returnval = NSS_ARGS(args)->buf.result;
#endif

résultat, seul root à accés aux mot de passe, les mécanismes "pam/shadow" genre unix_chkpwd sont tous cassés. (Faire un chmodu+s /bin/unix_chkpwd ? booof)

Actions suivantes

  • signaler le bug à debian/ubuntu
  • faire un package patché sans le test en attendant
  • mesurer l'impact sur le serveur mysql, suivre les perfs : en inférer le nbre max de process à configurer
  • documenter une fois que ça tourne bien : LibNssMysql

ZAO/Dakar/Configuration/AuthentificationClients (dernière édition le 2008-02-21 22:10:04 par localhost)