Commit Graph
9 Commits
Author SHA1 Message Date
Damien 4744de1a43 fix(proxy): séparer le listener rsyslog du catch-all générique
Le catch-all du récepteur générique vivait dans 10-remote-receiver.conf,
chargé avant tout 50-<service>.conf (rsyslog charge /etc/rsyslog.d/*.conf
par ordre alphabétique, et les règles d'un ruleset s'exécutent dans
l'ordre de chargement). Chaque message tagué finissait donc écrit deux
fois : une fois par le catch-all générique, une fois par sa règle
dédiée.

10-remote-receiver.conf ne contient plus que module()/input(). Le
catch-all part dans 90-remote-fallback.conf, chargé après tout
50-<service>.conf, dont le `stop` empêche alors effectivement la
double écriture.

Gardé sur la syntaxe legacy $RuleSet plutôt que l'objet moderne
ruleset(name=...){...} suggéré en review : ce dernier refuse d'être
déclaré une seconde fois pour le même nom ("ruleset ... specified more
than once"), ce qui casserait dès qu'un 50-<service>.conf ajoute ses
propres règles au même ruleset remoteLogs — précisément le mécanisme
que ce découpage doit permettre. $RuleSet est un sélecteur de contexte,
pas une déclaration unique ; n'importe quel nombre de fichiers peut le
rouvrir pour y ajouter des règles. Détail dans le commentaire du script
et dans le README.

README : table mise à jour (3 fichiers au lieu de 2), exemple avec
`stop`, et la phrase sur ce qui atterrit dans /var/log/remote/ corrigée
(uniquement ce qui n'est pas réclamé, pas "tout").
2026-08-01 18:10:21 +02:00
Damien 75d10385d7 feat(proxy): add generic rsyslog receiver for exposed services
A fail2ban jail running inside a service's own LXC only ever sees this
proxy's tailnet IP as the connection source, so it would end up
banning the proxy itself. Detection needs to stay at the service's
application log; banning needs to happen here, at the edge where
public connections terminate.

Adds a generic imtcp listener (port RSYSLOG_PORT, default 5514) that
routes anything unclaimed by a later 50-<service>.conf into
/var/log/remote/<sender-hostname>.log, plus logrotate with
copytruncate so fail2ban never loses its file descriptor. No
service-specific routing yet — that's one 50-<service>.conf per
service, documented here for the next issue to follow.

Refs #20
2026-07-31 17:52:47 +02:00
Damien 9f6e583135 Update proxy server installation script
Switch to Let's Encrypt HTTP challenge
Add Tailscale exit node support
Add Fail2ban protection for Traefik
Improve idempotency and error handling
2026-05-13 16:37:15 +02:00
Damien 7c3cab2b5a Update proxy installer to use Traefik v3 with Fail2ban and Infomaniak
DNS
2026-05-13 10:39:44 +02:00
Damien 13d97ff627 feat(proxy): add MOTD configuration 2026-01-11 19:00:39 +00:00
Damien 4935ae3c3e refactor(proxy): use robust awk-based Tailscale FQDN extraction from seedbox 2026-01-11 18:51:01 +00:00
Damien 1dad64cb07 Actualiser proxy/install.sh 2025-12-31 17:35:10 +00:00
Damien 625dc5ada7 feat(proxy): add temporary SSH access with scheduled cleanup 2025-12-26 11:24:30 +00:00
Damien 0807beb5fa feat: add proxy server deployment script 2025-12-03 09:09:39 +00:00