infrastructure-doc/man/infra.7

449 lines
6.0 KiB
Groff

.\" Generated by scdoc 1.11.2
.\" Complete documentation for this program is not available as a GNU info page
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.nh
.ad l
.\" Begin generated content:
.TH "INFRA" "7" "2024-12-07" "Infrastructure de Baguette" "Manuel de l'infra de Baguette"
.P
.SH Liste des machines
.P
Pour les services : \fBtrès important\fR, \fIplutôt important\fR
.P
.TS
allbox;c c c c c
c c l c l
c c l c l
c c l c l
c c l c l
c c l c l
c c l c l
c c l c l
c c l c l.
T{
\fBARN\fR
T} T{
\fISystème\fR
T} T{
\fIAdresse\fR
T} T{
\fIPort SSH\fR
T} T{
\fIServices\fR
T}
T{
\fBphy0\fR
T} T{
Alpine 3.\&20
T} T{
89.\&234.\&141.\&125
T} T{
22
T} T{
\fBfirewall\fR
T}
T{
team
T} T{
OpenBSD 7.\&6
T} T{
192.\&168.\&122.\&132
T} T{
2210
T} T{
\fBgitea\fR mattermost \fBsmtpd\fR honk (fediverse/Mastodon)
T}
T{
mail
T} T{
OpenBSD 7.\&6
T} T{
192.\&168.\&122.\&10
T} T{
2204
T} T{
\fBsmtpd\fR \fBimap\fR (dovecot)
T}
T{
alpha
T} T{
Alpine 3.\&20
T} T{
192.\&168.\&122.\&84
T} T{
2203
T} T{
\fBnginx\fR arpenteurs \fBweechat/irc\fR
T}
T{
baguette
T} T{
Alpine 3.\&20
T} T{
192.\&168.\&122.\&181
T} T{
2220
T} T{
\fIzig dev\fR \fIpackage.\&mk\fR
T}
T{
bsdbuild
T} T{
OpenBSD 6.\&6
T} T{
192.\&168.\&122.\&165
T} T{
2265
T} T{
builds (weechat)
T}
T{
R&D
T} T{
Alpine 3.\&1X
T} T{
192.\&168.\&122.\&211
T} T{
2205
T} T{
expérimental
T}
T{
CEIUS
T} T{
Alpine 3.\&1X
T} T{
192.\&168.\&122.\&30
T} T{
2230
T} T{
CEIUS (?\&?\&)
T}
.TE
.sp 1
.P
.P
\fINotes\fR :
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
Les machines pourraient être renommées.\&
.br
Les adresses et les ports sont aléatoires.\&
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
Le serveur physique a plusieurs disques, mais un seul est utilisé pour le moment.\&
.br
Un RAID serait envisageable.\&
.RE
.P
.SH phy0
.P
La machine `phy0` redémarre sur son disque `/dev/sdb`.\&
.P
.SS procédure après redémarrage
.P
Il faut supprimer la règle iptables empêchant les connexions extérieures vers les machines virtuelles.\&
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
iptables -D FORWARD 2
.RE
.P
.SH VM Alpha
.P
.SS NGINX
.P
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
gère toutes les connexions entrantes sur les ports 80, 443
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
configuration dans \fI/srv/root/nginx/\fR, attention au rewrite de service (voir \fBTODO\fR)
.RE
.P
.TS
allbox;c c c
c c c
c c c
c c c
c c c
c c c.
T{
\fIDomaine\fR
T} T{
\fIService\fR
T} T{
\fIPort\fR
T}
T{
\fBgit.\&baguette.\&netlib.\&re\fR
T} T{
gitea
T} T{
443 (80 redirigé)
T}
T{
\fBteam.\&baguette.\&netlib.\&re\fR
T} T{
mattermost
T} T{
443 (80 redirigé)
T}
T{
\fBsocial.\&karchnu.\&netlib.\&re\fR
T} T{
honk
T} T{
80 (443 redirigé)
T}
T{
\fItodo.\&baguette.\&netlib.\&re\fR
T} T{
todo
T} T{
443 (80 redirigé), 9999
T}
T{
arpenteurs.\&netlib.\&re
T} T{
kemal
T} T{
80
T}
.TE
.sp 1
.SH VM team
.P
.SS {git,team}.baguette.netlib.re
.P
Les services `gitea` et `mattermost` sont \fIouvert\fR au public, notamment pour le projet `Baguette`.\&
.P
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
gitea et mattermost utilisent \fIpostgresql\fR
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
gitea
.RS 4
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
configuration: \fI/etc/gitea/\fR = la base, \fI/var/gitea/\fR = les données + personnalisation
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
\fI/etc/gitea/gitea.\&conf\fR = psql, mails, droits
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
\fI/var/gitea/\fR = dépôts, avatars, personnalisation de l'\&apparence
.RE
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
mattermost pour le développement
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
\fIhonk\fR pour remplacer Twitter
.RE
.P
Les certificats ont été générés par \fIacme.\&sh\fR.\& Voir section \fBTODO\fR.\&
.P
.SS opensmtpd
.P
Le serveur smtpd gère les domaines :
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
baguette.\&netlib.\&re (requis par gitea et mattermost)
.RE
.P
\fBDebug potentiel\fR
.P
En cas de \fB\fRAUTH LOGIN failed\fB\fR dans les logs, vérifier que \fBrspamd\fR est lancé.\&
.P
.P
.SH VM bsdbuild (toujours active ?)
.P
Actuellement : zone de jeu, on peut tester des outils dessus, lancer des compilations.\&
.P
.P
.SH TODO pour le développement d'outils à déployer sur l'infra
.P
.SS Pare-feu
.P
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
pourrait imposer un rate limit
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
l'\&accès à un service depuis une autre VM est compromis pour l'\&instant, il faut des règles DNAT+SNAT
.RE
.P
.SS Déploiement
.P
Le déploiement devrait être effectué de manière automatique depuis les sources.\&
Actuellement un problème réseau nous en empêche : il faut se plonger dans `iptables`.\&
.P
\fBservice\fR
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
pourrait (devrait ?\&) être utilisé à terme
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
manque la gestion correcte des groupes au lancement d'\&un processus
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
lance actuellement nginx \fBmais sa configuration est réécrite avec de mauvaises valeurs\fR, à revoir
.RE
.P
\fBlibipc\fR doit être patché pour les sockets unix qu'\&il crée :
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
changer le propriétaire et le groupe
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
changer les permissions
.RE
.P
.SS Certificats à maintenir (acme-client sur team)
.P
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
baguette.\&netlib.\&re (+ git, team et todo sur le même domaine)
.RE
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.IP \(bu 4
.\}
social.\&karchnu.\&netlib.\&re
.RE
.P
.SS Adresse IPv6
.P
Pour le moment tout est en v4, y compris sur la machine physique.\&