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 18:20]
arnaud [Pour Nextcloud]
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 26: 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. 
  
 +__Activer les jails:__  activer toutes les jails apache et SSL.
 +''sshd'', ''dropbear'', ''apache-auth'', ''apache-badbots'', ''apache-noscript'', ''apache-overflows'', ''apache-nohome'', ''apache-botsearch'', ''apache-fakegooglebot'', ''apache-modsecurity'', ''apache-shellshock''.
 +<code># nano /etc/fail2ban/jail.local
 ---- ----
 +[sshd] 
 +... 
 +enabled = true  
 +----</code>
 ====== Pour Nextcloud ====== ====== 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!\\ Malheureusement les jails de fail2ban ne suffisent pas car ce n'est pas Apache qui logge pas les tentatives d'identification mais Nextcloud!\\
-  * créer le filtre: <code># nano /etc/fail2ban/filter.d/nextcloud.conf+===== le filtre: ===== 
 +  
 +<code># nano /etc/fail2ban/filter.d/nextcloud.conf
    
      [Definition]      [Definition]
Ligne 39: Ligne 46:
                  ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Trusted domain error.                  ^\{%(_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>      datepattern = ,?\s*"time"\s*:\s*"%%Y-%%m-%%d[T ]%%H:%%M:%%S(%%z)?" </code>
-  * créer la jail: <code># nano /etc/fail2ban/jail.d/nextcloud.local+      
 +      
 +===== la jail: ===== 
 + <code># nano /etc/fail2ban/jail.d/nextcloud.local
      [nextcloud]      [nextcloud]
      backend = auto      backend = auto
Ligne 49: Ligne 59:
   * <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.1638901203.txt.gz · Dernière modification: 2021/12/07 18:20 de arnaud

DokuWiki Appliance - Powered by TurnKey Linux