Comme vous le savez sans doute, cette semaine Hackademics a migré toute son infrastructure.
Dans cet article, je vais revenir avec vous sur ce que nous avons fait et appris.

Commençons par le début… La définition des besoins :

Nous avions besoin des éléments suivants :

  • Un blog
  • Le forum (qui ne devait pas changer d’URL pour des besoins SEO)
  • Un endroit ou héberger du code
  • Un système de mails (mailing list et transactionnels)
  • Une messagerie mail pour le staff
  • Une plateforme de CTF
  • De quoi partager les CTF
  • Un système de sauvegarde pour le forum
  • Une messagerie instantanée pour les membres et le staff
  • Un système de monitoring
  • Une boutique
  • Améliorer les performances et la sécurité
  • Un environnement de preprod similaire à la prod pour faire des tests

Architecture globale

Après réflexion nous avons donc dégagé l’architecture suivante :
infra
Ne vous inquiétez pas si vous ne comprenez pas tout, nous allons revenir sur chaque point de l’infrastructure :)

Cloudflare

Pour augmenter les performances et la sécurité, nous avons fait le choix de Cloudflare ( https://www.cloudflare.com/fr-fr/ )
Nos DNS sont donc gérés chez eux. Les entrées hackademics.fr et blog.hackademics.fr passent par le proxy cloudflare (perfs + sécurité [WAF]). Les autres entrées sont uniquement utilisées en DNS afin de pointer vers des services tiers.
Note : Notre nom de domaine est géré chez Gandi ( https://www.gandi.net/en )

Proxmox

Le serveur Proxmox est l’acteur principal de l’infra. C’est notre Hyperviseur ( https://www.proxmox.com/en/ ).
Sur cet hyperviseur nous avons plusieurs zones définies :

DMZ

C’est dans cette zone que ce trouve notre firewall principal ( un pfSense : https://www.pfsense.org/ )
Nous y trouvons également notre reverse proxy ayant pour objectif de distribuer les flux web entre les machines du sous-réseau prod et dev (et est également utilisé pour de la journalisation).

Prod

Ce sont les machines principales. La machine héberge le forum et sa base de données ainsi que la machine héberge le blog.

Dev

Identique à la zone Prod mais accessible uniquement en interne.

Labs

Cette machine est un peu spéciale. Elle dispose d’une IP Failover reliée au DNS labs.hacakdemics.fr, c’est sur cette machine que nous organiserons nos CTF (basé sur du Docker). Elle sera accessible aux joueurs via OpenVPN.
Elle sera administrable uniquement via le réseau interne.
Vous reconnaitrez sans doute Portainer, je vous renvoie à mon tuto : https://hackademics.fr/forum/virtualisation/syst%C3%A8me-aa/76305-mettre-en-place-un-syst%C3%A8me-d-hypervision-pour-docker ;)

Note : toutes les machines virtuelles sur l’hyperviseur sont des machines CentOS ( https://www.centos.org/ )
Toutes les machines sont renforcées en utilisant les technologies suivantes :

UptimeRobot

UptimeRobot est la solution de monitoring que nous avons choisi ( https://uptimerobot.com/ )
Cette solution nous permet de recevoir des alertes mails et Discord en cas de soucis et de dysfonctionnement.
Elle nous permet également de mettre à votre disposition cette page : https://status.hackademics.fr

GSuite

La solution bureautique et mails de Google. Que nous utilisons pour notre documentation interne et nos mails. - https://gsuite.google.fr/intl/fr/

SendInBlue

Solution que nous utilisons pour les campagnes de mailing ainsi que pour les mails transactionnels (les mails du forum en gros : activation du compte, alerte message…) - https://fr.sendinblue.com/

Backups

Pour les backups nous utilisons l’espace FTP mis à disposition par notre hébergeur ( https://www.online.net/fr ). Nous y envoyons quotidiennement une sauvegarde des PJ du forum et une sauvegarde de la base de données chiffrée en AES.
Nous gardons 7 jours de backups.
Nous y stockons également des configurations statiques pour les machines.
Pourquoi ne pas faire des backups du blog ? Notre blog est en Jekyll et est versionné sur Github. Nous n’avons donc pas besoin de le sauvegarder une nouvelle fois. Idem pour les CTF.

Github

Nous utilisons Github pour héberger notre code et nos CTF.

Discord

Nous avons choisi Discord comme plateforme de messagerie instantanée.

Redbubble

Nous utilisons Redbubble pour notre boutique.

Conclusion

Pourquoi rendre toutes ces informations publiques ? N’est-ce pas dangereux ?
En effet, ces informations peuvent simplifier la phase de reconnaissance pour un potentiel attaquant. Mais nous ne donnons dans cet article que des informations génériques qui peuvent être trouvées autrement.
De plus nous avons décidé de nous inscrire dans la démarche security.txt : https://hackademics.fr/forum/accueil/76453-hall-of-fame-security-txt

Voilà, j’espère que ce petit article vous auras plu et je vous dis à bientôt !

Accéder aux commentaires