Bref, depuis quelque temps, j'ai envie de reconstruire mon réseau domestique, mais avec quelques contraintes :
* une installation totalement automatisée des machines et des services,
* ce que je peux en termes de sécurité (on évite les mots de passe et chiffrement de toutes les connexions),
* passage possible à l'IP v.6,
* structure assez simple, avec par exemple deux catégories de personnes (les admins et les utilisateurs), un seul réseau local, un seul domaine DNS, …
* machines clientes sous OS X ou Ubuntu.
L'installation des machines se fera avec une ISO contenant les réponses aux questions.
Je pense faire les choses en plusieurs étapes, avec d'abord un socle avec les services suivants :
* PKI avec un certificat racine, pour délivrer des certificats propres pour tout (services, machines, utilisateurs, …),
* LDAP pour stocker les utilisateurs et les groupes,
* Kerberos pour l'authentification (utilisateurs, machines, services),
* serveur DHCP et DNS (avec enregistrement automatique des nouveaux services et machines),
* DNSSEC et DANE pour sécuriser le DNS,
* mail (SMTP/IMAP avec opensmtpd et dovecot),
* ntp,
* logs centralisés et supervision (pas encore fait).
À terme, je rajouterais volontiers pour compléter ce socle du 802.1x (si mon imprimante le permet

Au-dessus de ça, je pense mettre quelques services applicatifs :
* CardDAV, CalDAV (via Radicale),
* XMPP (avec Prosody),
* SIP (Asterisk ?),
* génération des profils pour les Mac et les iPhone ^^
* un Gitlab et ce qui va avec (Jenkins, notamment)
* Plex (partages multimédia) et Seafile (partage et synchro de fichiers),
* proxy HTTP,
* plein d'autres choses…
Je n'ai pas encore trouvé comment faire de l'authentification sans mot de passe sur Plex et Seafile (Qt ne connaît même pas Kerberos)

L'autre problème, c'est que l'iPhone ne supporte pas Kerberos

Actuellement, j'en suis encore au socle qui sera basé sur du Ubuntu 15.04 Server.
Ça n'avance pas très vite, tout automatiser prend un peu de temps, et surtout le manque de doc est assez incroyable.
Les messages d'erreur aident beaucoup également : par exemple, quand kerberos dit « incorrect password », il faut comprendre que l'horloge du serveur retarde trop.
Quand le serveur LDAP est injoignable, c'est évidemment qu'il y a un problème de certificat.
En pratique, on crée un fichier avec la liste des machines à utiliser et quelques paramètres (le nom de domaine, les mots de passe), on a une machine (ou plusieurs) avec une Ubuntu Server nue (uniquement ssh), et on lance :
ansible-playbook -i servers_1504.ini common_pass_1.yml
ansible-playbook -i servers_1504.ini auth_servers.yml
ansible-playbook -i servers_1504.ini dhcp_servers.yml
ansible-playbook -i servers_1504.ini common_pass_2.yml
ansible-playbook -i servers_1504.ini mail_servers.yml
À partir de là, on a une PKI, un LDAP, Kerberos, DHCP, smtp, imap, ntp … configurés et fonctionnels sur les bonnes machines.
Bon, c'est très loin d'être fini, mais je pense avoir fait le plus dur.
Pour me simplifier la vie, j'ai fait un petit service web (penates-server), qui simplifie la vie. On va pouvoir enregistrer un service avec un seul webservice de smtp://mail01.example.org:993 vers server.example.org fait différentes actions :
* le certificat SSL (récupéré avec un appel ultérieur),
* l'enregistrement DNS CNAME,
* l'enregistrement DNS DANE (avec le certificat), et les NS / MX / DKIM et SPF si besoin est,
* l'enregistrement DNS SRV si nécessaire,
* le keytab pour l'authent' kerberos (récupéré avec un appel ultérieur).
Autre exemple, on peut enregistrer une machine avec un seul webservice :
* un keytab machine renvoyé à l'enregistrement,
* certificat SSL machine,
* enregistrement A ou AAAA,
* enregistrement des SSHFP pour enregistrer les clefs SSH publiques des machines,
* enregistrement des adresses MAC et IP dans le DHCP.