{% extends "/meta/master.html" %} {% block main %}
Si l'architecture matériel de Katzei est fortement liée à son coté auto-hébergé. Son architecture logiciel est, à l'inverse, beaucoup plus classique. Tout les services publiques étant rendu via le protocole HTTP(S) il y a un serveur proxy qui reçoit toutes les requêtes destinées aux ports 80 et 443 et les rediriges vers les services concernés. Les autres ports redirigent directement sur les machines gérant les service rendu sur ce port.
Par mesure de sécurité, afin de réduire les risques liés à de mauvaises manipulations, et pour réduire les temps d’interruption, chaque service est isolé dans une machine (le plus souvent virtuelle) qui lui est dédié. Un service n'est pas que ce uniquement vous pouvez utiliser directement mais peut aussi être interne. Par exemple nous gérons des services de DNS ou de mail qui ne sont pas proposés au publique.
Pour le choix du système d'exploitation qui allait être installé sur nos machines il fallait répondre à un cahier des charges classique:
Un certain nombre de distribution Linux ou de BSD répondent à ce cahier des charges et le choix parmi celle-ci est plus une affaire de goûts que de réel supériorité de l'une ou de l'autre. Nous avons choisi Debian qui est relativement léger (il s'installe et tourne très confortablement avec moins de 1Go de RAM) et extrêmement stable (certaines mauvaises langues diront même immobile), chaque version étant maintenue 2 ans puis continuant à recevoir des correctifs de sécurité pendant 2 à 4 ans supplémentaires. Le prix a payer pour cette stabilité est de n'avoir que rarement des logiciels à jour (même si les correctifs de sécurités sont bien entendu portés sur les anciennes versions) et quand une version de logiciel comporte un problème il est courant que ce problème ne soit pas corrigé avant la version suivant de de Debian.
D'autres distributions Linux auraient pu êtres utiliser comme CentOs (une recompilation gratuite des sources de Red Hat Enterprise Linux), Ubuntu Server ou encore des version de BSD (comme FreeBSD).
Un hyperviseur est un logiciel permettant de gérer et d'héberger une ou plusieurs machines virtuelles (guest ou invité) sur une même machine physique (host ou hôte).
Nous utilisons l'hyperviseur Proxmox-ve (généralement simplement désigné par "Proxmox") pour gérer le gros de l'infrastructure de Katzei. Cette distribution Linux est très proche de Debian et se contente d'y rajouter quelque paquets. Proxmox fournit une interface graphique via un serveur web simple permettant de faire toutes les opérations courantes.
Quand on essaye de construire une infrastructure stable a destination du publique il est indispensable de pouvoir être mis au courant quand un problème apparaît sur cette infrastructure. C'est ce qu'on appel la supervision.
Il existe beaucoup de systèmes de supervision comme Nagios, le système historique, ou des système très modernes comme Prometheus, permettant de récolter des centaines de paramètres sur les machines et de les agréger dans le temps. Notre infrastructure restant très simple nous n'avons pas besoin de quelque chose d'aussi puissant que Prometheus et vue le nombre de paramètres remontés le configurer correctement pour nos besoin aurait été bien trop long. Nous avons finalement choisis d'utiliser Icinga2, un dérivé (complètement réécrit depuis) de Nagios, simple à configurer et avec une jolie interface.
Attention : si vous utilisez Icinga2 sous Debian Buster, le paquet présent sur les dépôts de la distribution à un défaut empêchant de l'utiliser comme agent. Pour éviter ce problème il est préférable d'installer la version présente sur le dépôt de Icinga.
Même si Katzei ne fournit pas d'adresse mail à ses utilisateurs, il est indispensable de pouvoir envoyer des mails pour les services ou la supervision et de pouvoir en recevoir (au moins pour respecter les obligations légales). Katzei étant auto-hébergé, notre adresse IP est automatiquement rejetés par les gros hébergeurs de mail. Pour contourner ce blocage nous sommes obligés de passer par le relais de Free. Nous perdons donc un peu d'indépendance sur ce point mais c'est, malheureusement, le seul moyen pour envoyer des mails en restant auto-hébergé chez un opérateur grand publique.
Même si il existe un grand nombre de logiciels pour envoyer et recevoir des mails, le couple Postfix/Dovecot est le plus courant. C'est donc logiquement celui que nous avons choisis. Même si il existe de nombreux tutoriels et une grosse documentation sur le sujet, la configuration de Postfix reste compliquée et peu intuitive. Si vous voulez vous lancer dans l'aventure prévoyez qu moins quelque jours pour réussir a le faire marcher convenablement (et avoir une configuration acceptable).
Dans une vision (très) simplifiée le DNS est l'annuaire qui permet d'associer un nom de domaine (par exemple "katzei.fr") à une adresse IP. Il existe deux type de serveurs DNS:
Le fait que Katzei soit auto-hébergé rend assez absurde d'héberger nous même les serveurs faisant autorité pour katzei.fr. Nous utilisons donc les serveurs du bureau d'enregistrement à qui nous louons le domaine, à savoir OVH.
Comme pour n'importe quel infrastructure un peu compliqué nous avons besoin de définir un grand nombre de sous domaines pour les adresses des différentes machines. Pour ce faire nous utilisons un un résolveur DNS menteur qui au lieu de nous renvoyer les adresses publiques des services (la réponse que vous obtenez quand vous contactez un résolveur DNS publique) nous renvois les adresses privés, et inaccessible de l’extérieur, des services. Pour ce résolveur nous utilisons Unbound qui a l'avantage d'être simple a configurer pour cette tâche.
{% endblock %}