guides/serveur/forgejo/QUICK-START.md
isUnknown e33395dc35 Réorganiser les guides et ajouter architecture filesystem
- Nouvelle structure : linux-essentials/ et forgejo/
- Nouveau guide : architecture-filesystem.md (comprendre /etc, /var, etc.)
- Déplacement et renommage des guides existants
- README pour chaque dossier
- Suppression des sections auteurs

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 08:37:50 +01:00

134 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Quick Start : Sécuriser Forgejo contre les bots (15 min)
## Problème
Bots qui téléchargent massivement des archives → Disque saturé (47G en 24-48h)
## Solution en 3 étapes
### 1⃣ Fail2ban : Ban plus rapide (3 min)
```bash
sudo nano /etc/fail2ban/jail.d/forgejo.conf
```
**Changez ces valeurs :**
```ini
maxretry = 8 # Au lieu de 20
bantime = 21600 # Au lieu de 3600
```
**Ajoutez (si absent) :**
```ini
bantime.increment = true
bantime.factor = 2
bantime.maxtime = 604800
```
```bash
sudo systemctl restart fail2ban
```
---
### 2⃣ Forgejo : Rate limit + Expiration (3 min)
```bash
nano /home/debian/forgejo/data/gitea/conf/app.ini
```
**Changez ces valeurs :**
```ini
[api]
RATE_LIMIT_BURST = 20 # Au lieu de 100
[repository.local]
ARCHIVE_EXPIRY = 3600 # Au lieu de 604800
```
```bash
docker restart forgejo
```
---
### 3⃣ Cron : Nettoyage plus fréquent (2 min)
```bash
sudo crontab -e
```
**Remplacez la ligne existante par :**
```bash
0 */6 * * * find /home/debian/forgejo/data/gitea/repo-archive -type f -mmin +360 -delete
```
---
## Nettoyage initial
```bash
# Voir la taille
du -sh /home/debian/forgejo/data/gitea/repo-archive
# Nettoyer maintenant
find /home/debian/forgejo/data/gitea/repo-archive -type f -delete
# Vérifier
du -sh /home/debian/forgejo/data/gitea/repo-archive
```
---
## Vérification quotidienne
```bash
# Taille du cache (objectif : < 5G)
du -sh /home/debian/forgejo/data/gitea/repo-archive
# IP bannies (doit augmenter)
sudo fail2ban-client status forgejo-archive
# Top 5 IP actives
docker logs forgejo --since 24h | grep "archive" | grep -oP '\d+\.\d+\.\d+\.\d+' | sort | uniq -c | sort -rn | head -5
```
---
## Résultat attendu
| Avant | Après |
|-------|-------|
| 47G de cache | 2-3G max |
| 20 archives avant ban | 8 archives avant ban |
| Ban 1h | Ban 6h (puis 12h, 24h...) |
| 100 requêtes/min | 20 requêtes/min |
| Archives gardées 7j | Archives supprimées après 1h |
---
## Dépannage
**Le cache se remplit encore ?**
```bash
# Voir qui télécharge
docker logs forgejo --since 1h | grep "archive" | grep -oP '\d+\.\d+\.\d+\.\d+' | sort | uniq -c | sort -rn
# Bannir manuellement
sudo fail2ban-client set forgejo-archive banip IP_SUSPECTE
# Vérifier Fail2ban
sudo fail2ban-client status forgejo-archive
```
**Fail2ban ne bannit pas ?**
```bash
# Tester la regex
sudo fail2ban-regex /var/lib/docker/containers/.../...json.log /etc/fail2ban/filter.d/forgejo-archive.conf
# Logs Fail2ban
sudo tail -f /var/log/fail2ban.log
```
---
Pour plus de détails, voir le guide complet : [bloquer-telechargements-abusifs.md](bloquer-telechargements-abusifs.md)