Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:web-01 [18/09/2025 00:12] – [Etherpad-Lite] LibertAdmin | tech:web-01 [13/12/2025 14:53] (Version actuelle) – [Paramètres réseau et swap dans sysctl] LibertAdmin | ||
|---|---|---|---|
| Ligne 16: | Ligne 16: | ||
| ===== Topologie ===== | ===== Topologie ===== | ||
| - | Cette VM héberge tous les frontaux et applications web de Liberta. Historiquement, | + | Cette VM héberge tous les frontaux et applications web de Liberta. Historiquement, |
| Ce serveur héberge donc les services : | Ce serveur héberge donc les services : | ||
| Ligne 23: | Ligne 23: | ||
| * CryptPad | * CryptPad | ||
| * Etherpad-Lite | * Etherpad-Lite | ||
| - | * Funkwhale | ||
| * Nextcloud | * Nextcloud | ||
| * Peertube | * Peertube | ||
| Ligne 64: | Ligne 63: | ||
| ==== Paramètres réseau et swap dans sysctl ==== | ==== Paramètres réseau et swap dans sysctl ==== | ||
| - | Dans ''/ | + | Dans ''/ |
| < | < | ||
| # Cloud : | # Cloud : | ||
| vm.overcommit_memory = 1 | vm.overcommit_memory = 1 | ||
| - | # swap à 0% de ram libre : | + | # swap si plus qu'1% de RAM libre : |
| - | vm.swappiness=0 | + | vm.swappiness=1 |
| </ | </ | ||
| Ligne 1300: | Ligne 1299: | ||
| </ | </ | ||
| + | Nous avons créé le fichier commun ''/ | ||
| + | Le fichier est agrémenté de directives de sécurité recommandées pour la plupart des applications (certaines modifient ces directives via leur propre configuration évidemment) : | ||
| - | === CryptPad | + | <code bash> |
| - | === Etherpad-Lite === | + | # cat / |
| - | === Funkwhale | + | # Security headers |
| - | === Castopod | + | add_header X-XSS-Protection |
| - | === Castopod | + | add_header X-Content-Type-Options |
| - | === Castopod | + | add_header Referrer-Policy |
| + | add_header Content-Security-Policy | ||
| + | add_header Permissions-Policy | ||
| + | add_header Strict-Transport-Security " | ||
| + | |||
| + | # Dotfiles | ||
| + | location ~ / | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | # ACME-challenge | ||
| + | location ^~ / | ||
| + | root / | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Liberta (Site principal)=== | ||
| + | |||
| + | Le site de Liberta est en pur HTML et CSS. Il **était**, il est passé sur [[https:// | ||
| + | |||
| + | Ce fichier contient la gestion globale du HTTP, lequel redirige tous les domaines vers HTTPS, notamment le site de Liberta qui est sur le sous-domaine '' | ||
| + | |||
| + | Nous listons volontairement notre répertoire '' | ||
| + | |||
| + | <code bash> | ||
| + | # Configuration globale : | ||
| + | # HTTP + redirect | ||
| + | server { | ||
| + | server_name _; | ||
| + | listen | ||
| + | listen | ||
| + | |||
| + | include letsencrypt_security.conf; | ||
| + | |||
| + | location / { | ||
| + | return 301 https:// | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # Domaine liberta.vip sans sous-domaine : | ||
| + | # HTTP + redirect | ||
| + | server { | ||
| + | server_name liberta.vip; | ||
| + | listen | ||
| + | listen | ||
| + | |||
| + | include letsencrypt_security.conf; | ||
| + | |||
| + | location / { | ||
| + | return 301 https:// | ||
| + | } | ||
| + | } | ||
| + | server { | ||
| + | server_name liberta.vip; | ||
| + | listen 443 ssl http2; | ||
| + | listen [::]:443 ssl http2; | ||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | return 301 https:// | ||
| + | } | ||
| + | # Liberta (Pur HTML / CSS) | ||
| + | # HTTP + redirect | ||
| + | server { | ||
| + | server_name www.liberta.vip; | ||
| + | listen | ||
| + | listen | ||
| + | |||
| + | include letsencrypt_security.conf; | ||
| + | |||
| + | location / { | ||
| + | return 301 https:// | ||
| + | } | ||
| + | } | ||
| + | server { | ||
| + | server_name www.liberta.vip; | ||
| + | listen 443 ssl http2; | ||
| + | listen [::]:443 ssl http2; | ||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | |||
| + | # Secure headers | ||
| + | add_header X-Frame-Options " | ||
| + | add_header Strict-Transport-Security " | ||
| + | add_header X-Xss-Protection "1; mode=block" always; | ||
| + | add_header Content-Security-Policy " | ||
| + | add_header X-Content-Type-Options " | ||
| + | |||
| + | |||
| + | root / | ||
| + | access_log / | ||
| + | error_log / | ||
| + | index index.html; | ||
| + | |||
| + | location | ||
| + | | ||
| + | access_log off; | ||
| + | } | ||
| + | |||
| + | location | ||
| + | allow all; | ||
| + | log_not_found off; | ||
| + | access_log off; | ||
| + | } | ||
| + | |||
| + | location | ||
| + | allow all; | ||
| + | log_not_found off; | ||
| + | access_log off; | ||
| + | autoindex on; | ||
| + | } | ||
| + | |||
| + | location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { | ||
| + | expires max; | ||
| + | log_not_found off; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Nous ne fournirons pas tous les détails des configurations pour chaque application, | ||
| + | |||
| + | À terme, nous prévoyons de publier notre configuration complète sur [[https:// | ||
| + | |||
| + | EN COURS DE RÉDACTION... | ||
| + | === Castopod (Liberta Podcasts) | ||
| + | |||
| + | === CryptPad (Liberta Docs) === | ||
| + | === Etherpad-Lite (Liberta Pad) === | ||
| + | |||
| + | === Nextcloud (Liberta Cloud) === | ||
| + | === Peertube (Liberta Vidéo) === | ||
| + | === WriteFreely (Liberta Blogs) | ||