cd / ; apropos ; find * ;

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