TaBr : hébergement de services à taille humaine §

Voici un recueil d'outils permettant de gérer les inscriptions à un serveur.

Téléchargement :

tabr.tgz

Services actuellement gérés:

Un dossier ''/var/tabr-data/'' (variable "data" dans tabr.conf) contiendra un fichier par utilisateur contenant les codes de récupération hachés.

Ce dossier appartiendra et ne sera lisible que à/par un utilisateur dédié : ''_tabr_admin''.

Les utilisateurs appartiennent à un groupe commun ''_tabr_users'', ce qui pourra simplifier la gestion si un accès SSH est envisagé. Il s'agit de réels utilisateurs système, ce qui impose une limite à leur nombre maximum : 2147483647 (y a de la marge).

Mise en place §

Création de groupes et d'utilisateurs dédiés. _tabr_admin n'a pas de dossier personnel ni de shell, il ne servira qu'à lancer des commandes sans être root via doas.

groupadd _tabr_users
useradd -s /sbin/nologin -m -d /var/_tabr_admin _tabr_admin
install -m 0700 -o _tabr_admin -g _tabr_admin -d /var/_tabr_admin/tabr-data
install -m 0700 -o _tabr_admin -g _tabr_admin -d /var/_tabr_admin/tabr-data/instructions

La modification de mot de passe sera gérée par l'user _tabr_admin, il faut donc configurer doas:

cat >> /etc/doas.conf << EOF
permit root
# TaBr admin need to change passwords
permit nopass _tabr_admin cmd /usr/sbin/useradd
permit nopass _tabr_admin cmd /usr/sbin/usermod
permit nopass _tabr_admin cmd /usr/sbin/userdel
permit nopass _tabr_admin cmd /usr/local/sbin/prosodyctl

Les messages envoyés à _tabr_admin peuvent être redirigés vers root:

echo "_tabr_admin:  root" >> /etc/mail/aliases
newaliases

Un fichier de configuration est attendu à /etc/tabr.conf, vous devriez le configurer après l'installation.

vi /etc/tabr.conf

La commande qrencode doit être disponible pour tabr_adduser:

# pkg_add libqrencode

Installation §

Les différents scripts et outils peuvent être installés avec la commande ''make install''.

Vous voudrez probablement auparavant ajuster la configuration du script cgi en éditant le fichier ''config.h'' du dossier ''tabr_chpw_cgi''.

Utilisation §

Les différents scripts sont supposés être appelés en tant que _tabr_admin. Pour cela, doas est là.

Description des outils §

tabr_adduser §

doas -u _tabr_admin tabr_adduser nouvel_utilisateur

Ajout d'un nouvel utilisateur du si3tch TaBr.

tabr_chpw.cgi §

CGI pour demander une modification de mot de passe pour un utilisateur. Un délai d'attente avant de répondre et un captcha est prévu pour limiter les abus. Il profite de unveil et pledge pour éviter les escalades. Il se configure en éditant le fichier ''config.h'' situé dans le dossier ''src/chpw_cgi''.

httpd doit être configuré pour appeler le cgi:

# rcctl enable slowcgi
# rcctl start slowcgi
# cat /etc/httpd.conf
[...]
server "example.com" {
    [...]
    location "/chpw" {
        root "/cgi-bin/tabr_chpw.cgi"
        fastcgi
    }
}
# rcctl reload httpd

tabr_passwd §

doas -u _tabr_admin tabr_passwd /var/www/tabr_chpw_requests/

Une tâche cron de _tabr_admin appelle le script qui regarde tous les fichiers éventuellement créés par tabr_chpw.cgi:

# crontab -u _tabr_admin -e
*/1 * * * * /usr/local/sbin/tabr_passwd /var/www/tabr_chpw_requests
...

tabr_deluser §

Script qui supprime l'utilisateur et son fichier de récupération