Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:forgejo [2024/06/19 18:47] – [Upgrade] Niveaux de titres... Zatalyzdoc:forgejo [2025/02/27 07:46] (Version actuelle) – [Gestion des badbot] Zatalyz
Ligne 123: Ligne 123:
  
 page à check : https://forgejo.org/docs/latest/admin/upgrade/ page à check : https://forgejo.org/docs/latest/admin/upgrade/
 +
 +
 +==== Gestion des badbot ====
 +Y'a des bots malpolis sur le web... Sur Forgejo, leur impact peut être vraiment gênant.
 +
 +=== Remplissage des archives ===
 +Lorsque quelqu'un télécharge une archive d'un dépôt (en zip ou tar.gz), cela génère une "archive". Par défaut, elles ont juste stockées. Mais cela peut rapidement remplir l'espace disque. On va donc faire que ce soit purgé régulièrement. 
 +
 +<code ini /etc/forgejo/app.ini>[repository]
 +ARCHIVE_RETENTION_DAYS = 1</code>
 +
 +On peut évidement mettre plus si on a réglé le souci des badbots, parce que générer les archives prends aussi un peu de puissance sur le serveur (donc "moins" c'est parfois mieux). 
 +
 +Redémarrer le service : 
 +  sudo systemctl restart forgejo
 +
 +=== Bannir les vilains via nftables et Fail2ban ===
 +<WRAP center round tip 60%>
 +Si le proxy gère les accès, cela se paramètre sur le proxy.
 +</WRAP>
 +Configuration de nftables : 
 +<code bash /etc/nftables.conf>
 +table inet filter {
 +    # création du set où les vilaines ip seront notées
 +    set bad_ips {
 +        type ipv4_addr;
 +        flags dynamic;
 +        timeout 24h;
 +    }
 +
 +    chain input {
 +        type filter hook input priority 0; policy accept;
 +        # action sur ces vilaines ip : les balancer dans le vide
 +        ip saddr @bad_ips drop;
 +    }
 +}
 +</code> 
 +
 +Recharger nftables : 
 +  sudo nft -f /etc/nftables.conf
 +Pour bloquer une ip suspecte qu'on n'a pas encore "eu" via un filtre de fail2ban : 
 +  sudo nft add element inet filter bad_ips { xx.xxx.xxx.xxx }
 +
 +Voir les IPs bannies :
 +  sudo nft list set inet filter bad_ips
 +
 +Débloquer une IP :
 +  sudo nft delete element inet filter bad_ips { xx.xxx.xxx.xxx }
 +
 +
 +
 +Puis on installe Fail2Ban et on le paramètre avec ces deux fichiers 
 +<code bash /etc/fail2ban/filter.d/nginx-runner.conf>
 +[Definition]
 +failregex = ^<HOST> - .*"POST /api/actions/runner.* HTTP.*"
 +ignoreregex =
 +</code>
 +
 +
 +<code bash /etc/fail2ban/jail.d/custom.conf>
 +[DEFAULT]
 +maxRetry = 4
 +findtime = 3h
 +bantime = 3d
 +banaction = nftables-multiport
 +
 +[nginx-runner]
 +enabled = true
 +filter = nginx-runner
 +port = http,https
 +logpath = /var/log/nginx/forgejo.access.log
 +maxretry = 1
 +findtime = 600
 +bantime = 86400
 +banaction = nftables-multiport
 +</code>
 +
 +Et on active le service : 
 +  sudo systemctl enable fail2ban
 +  sudo systemctl restart fail2ban
 +
 +Pour voir quelles ips sont dans la jail : 
 +  sudo fail2ban-client status nginx-runner
 +
 +
 +
  
 {{tag>Brouillon Documentation}} {{tag>Brouillon Documentation}}
  
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
doc/forgejo.1718822828.txt.gz · Dernière modification : 2024/06/19 18:47 de Zatalyz