Outils pour utilisateurs

Outils du site


welcome:linux_usually:secure_nextcloud

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édentes Révision précédente
Prochaine révision
Révision précédente
welcome:linux_usually:secure_nextcloud [2021/12/07 17:47]
arnaud [HAProxy]
welcome:linux_usually:secure_nextcloud [2023/10/08 11:20] (Version actuelle)
arnaud [Communiquer avec OPNSense]
Ligne 1: Ligne 1:
-<color #22b14c>**Fail2ban pour Nextcloud sur Debian10 (Turnkey16)**</color>{{howhard>3}}+<color #22b14c>**Fail2ban pour Nextcloud sur Ubuntu22**</color>{{howhard>3}}
  
 https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html#setup-fail2ban https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html#setup-fail2ban
Ligne 8: Ligne 8:
  
 source: https://linuxize.com/post/install-configure-fail2ban-on-debian-10/ \\ source: https://linuxize.com/post/install-configure-fail2ban-on-debian-10/ \\
-  * fail2ban est configuré d'origine sur ct Turnkey.<code>#systemctl status fail2ban </code> le confirme+  * fail2ban n'est pas installé d'origine sur un CT Ubuntu.<code># apt-get install fail2ban </code>
   * installer ''whois'' pour des infos plus détaillées sur les IPs bloquées <code># apt-get install whois </code>   * installer ''whois'' pour des infos plus détaillées sur les IPs bloquées <code># apt-get install whois </code>
- 
- 
----- 
- 
- 
- 
   * copier le fichier de configuration d'origine qui ne doit pas être modifié <code># cp /etc/fail2ban/jail.{conf,local}</code>   * copier le fichier de configuration d'origine qui ne doit pas être modifié <code># cp /etc/fail2ban/jail.{conf,local}</code>
-  * paramétrer dans cette copie <code># nano /etc/fail2ban/jail.{conf,local}+  * paramétrer dans cette copie <code># nano /etc/fail2ban/jail.local
      ...      ...
      ignoreip = 127.0.0.1/ IPs.reseau.lan.local/24   si besoin      ignoreip = 127.0.0.1/ IPs.reseau.lan.local/24   si besoin
Ligne 32: Ligne 26:
      ...      ...
 # systemctl restart fail2ban </code> # systemctl restart fail2ban </code>
-  * Activer les jails: \\ Le plus simple est de faire ça dans webmin. Activer toutes les jails apache et SSL. 
  
-====== Pour Joomla ====== +__Activer les jails:__  activer toutes les jails apache et SSL. 
-Malheureusement les jails de fail2ban ne suffisent pas car ce n'est pas Apache qui logge pas les tentatives d'identification mais Joomla!\\ +''sshd'', ''dropbear'', ''apache-auth'', ''apache-badbots'', ''apache-noscript'', ''apache-overflows'', ''apache-nohome'', ''apache-botsearch'', ''apache-fakegooglebot'', ''apache-modsecurity'', ''apache-shellshock''
-Sources: https://www.joomla-security.de/server/joomla-login-mit-fail2ban-schuetzen.html et https://www.andrehotzler.de/de/blog/technology/62-joomla-login-mit-fail2ban-schuetzen.html +<code># nano /etc/fail2ban/jail.local 
-  * créer le filtre: <code># nano /etc/fail2ban/filter.d/joomla-login-errors.conf +---- 
 +[sshd] 
 +... 
 +enabled = true  
 +----</code> 
 +====== Pour Nextcloud ====== 
 +Malheureusement les jails de fail2ban ne suffisent pas car ce n'est pas Apache qui logge pas les tentatives d'identification mais Nextcloud!\\ 
 +===== le filtre: ===== 
 +  
 +<code># nano /etc/fail2ban/filter.d/nextcloud.conf 
 + 
      [Definition]      [Definition]
-     failregex = ^.*INFO <HOST>.*joomlafailure.*(Benutzername|Username|utilisateur).* </code> +     _groupsre = (?:(?:,?\s*"\w+":(?:"[^"]+"|\w+))*) 
-  * créer la jail: <code># nano /etc/fail2ban/jail.d/joomla-login-errors.conf +     failregex = ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Login failed: 
-     [joomla-login-errors]+                 ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Trusted domain error. 
 +     datepattern = ,?\s*"time"\s*:\s*"%%Y-%%m-%%d[T ]%%H:%%M:%%S(%%z)?" </code> 
 +      
 +      
 +===== la jail: ===== 
 + <code># nano /etc/fail2ban/jail.d/nextcloud.local 
 +     [nextcloud] 
 +     backend = auto
      enabled = true      enabled = true
-     filter joomla-login-errors +     port 80,443 
-     port   http,https +     protocol tcp 
-     logpath = /var/www/joomla/administrator/logs/error.php </code>+     filter = nextcloud 
 +     logpath = /var/www/nextcloud-data/nextcloud.log</code>
   * <code># systemctl restart fail2ban  </code>   * <code># systemctl restart fail2ban  </code>
  
-====== Restreindre l'accès au répertoire d'administration ====== +===== l'action: ===== 
-  * Dans la config d'Apache: <code># nano /etc/apache2/sites-available/joomla.conf+<code># nano /etc/fail2ban/action.d/opnsense.conf 
 +     # Fail2Ban configuration file  
 +     # from triumvirat.org 
 + 
 +     [Definition] 
 + 
 +     actionban /root/fail2ban-IP.sh ban <ip> 
 +     actionunban = /root/fail2ban-IP.sh unban <ip> </code> 
 +      
 +===== Général ===== 
 +Placer la nouvelle action dans /etc/fail2ban/jail.local 
 +<code>... 
 +banaction = opnsense 
 +... </code> 
 + 
 +<code># systemctl restart fail2ban 
 +# systemctl status fail2ban </code> 
 + 
 +====== Communiquer avec OPNSense ====== 
 +Il faut créer un petit script: 
 +<code># nano fail2ban-IP.sh </code> 
 +<code>#!/bin/sh 
 +KEY="la_clé" 
 +SECRET="le_mot_de_passe" 
 +FWIP="ip.de.la.OPNSense" 
 +FWPORT="n°_de_port" 
 +ALIAS="fail2ban_CT_Joomla" 
 +if [ $1 = "ban" ]; then 
 +TODO="add" 
 +elif [ $1 = "unban" ]; then 
 +TODO="delete" 
 +fi 
 +curl -X POST -d '{"address":"'$2'"}' -H "Content-Type: application/json" -k -u $KEY:$SECRET https://$FWIP:$FWPORT/api/firewall/alias_util/$TODO/$ALIAS </code> 
 +    * La clé et le mot de passe sont les identifiants API de l'utilisateur créé à cet effet 
 +    * le n° de port est celui utilisé pour la connexion https à l'interface web 
 +    * l'alias est celui utilisé pour la règle de blocage du firewall  
 + 
 +<code># chmod 600 fail2ban-IP.sh 
 +# chmod +x fail2ban-IP.sh </code> 
 + 
 +Pour tester le script: <code># ./fail2ban-IP.sh ban 192.168.1.1 
 +# ./fail2ban-IP.sh unban 192.168.1.1</code> 
 +et pour finir:  
 +<code># fail2ban-client set nextcloud.local banip 192.168.1.1 
 +# fail2ban-client set nextcloud.local unbanip 192.168.1.1</code> 
  
-et ajouter: 
-     <Directory /var/www/joomla/administrator> 
-         Order Deny,Allow 
-         Deny from all 
-         Allow from ip1.ou.bien.réseau1/24 ip2.ou.bien.réseau.2/24 
-     </Directory> </code> 
-  * <code># systemctl restart apache2 </code> 
  
welcome/linux_usually/secure_nextcloud.1638899232.txt.gz · Dernière modification: 2021/12/07 17:47 de arnaud

DokuWiki Appliance - Powered by TurnKey Linux