Outils pour utilisateurs

Outils du site


nextcloud

NextCloud

Je collecterai ici quelques astuces pour NextCloud dont j’ai pu me servir.

Postgresql

Backup de la base de données PostgreSQL sous Ubuntu 20.04

Pour sauvegarder la base de donnée PostgreSQL, il faut s’appuyer sur les infos dispo dans le fichier de configuration de NextCloud (/var/www/nextcloud/config/config.php).

On y trouve:

  • le type de base données (BDD): dbtype
  • le nom de la BDD: dbname
  • la localisation de la BDD: dbhost
  • l’utilisateur de la BDD: dbuser
  • le mot de passe de la BDD: dbpassword

Toutes les infos permettant de lancer la commande qui va bien:

sudo pg_dump nextcloud_db -h localhost -U ncadmin  > nextcloud-sqlbkp.bak

La machine demande alors le mot de passe de la BDD. Elle est ensuite sauvegardée dans le répertoire courant sous le nom nextcloud-sqlbkp.bak.

Premier accès postgresql

Sous debian, le premier accès via root au prompt postgresql doit se faire via la commande:

su -c /usr/bin/psql postgres

Ou

sudo -u postgres psql postgres

Voir la doc debian.

Vider la table en cas d'erreur "Too many requests"

Si nextcloud se trouve derrière un reverse proxy mal configuré, il est possible qu'il allonge les délais de connexion pour éviter une attaque par brut force.

Si l'erreur persiste après reconfiguration du reverse proxy, il suffit de vider la table appropriée dans la base de donnée. Dans mon cas en utilisant postgresql, ça donne ça:

Connexion à postgresql avec l'utilisateur postgres:

psql -U postgres

Puis entrer les commandes suivantes dans l'invite de commande postgresql:

Se connecter à la base de donnée “nextcloud” (à ajuster en fonction du nom de la base de donnée).

\c nextcloud

Montrer la table enregistrant les soit disant brutes force:

select * from oc_bruteforce_attempts;

Effacer les données concernant l'adresse IP locale du reverse proxy (xxx.xxx.xxx.xx):

delete from oc_bruteforce_attempts where ip = 'xxx.xxx.xxx.xx';

Configuration Nextcloud

Erreur "trusted domain" derrière un reverse proxy

Si l'instance nextcloud est placée derrière un reverse proxy, il est possible d'avoir un message d'erreur demandant de modifier l'array 'trusted_domains' dans le fichier config.php.

Ajouter l'ip du reverse proxy dans cet array permet de contourner le problème, mais nextcloud prévoit le cas où il est placé derrière un reverse proxy dans cette partie de la doc.

Dans mon cas, il a simplement fallu ajouter ces 2 lignes avant les derniers symboles “);”

  'trusted_proxies'   => ['192.168.1.42'],
  'overwritehost'     => 'nextcloudtld.com',

Voir ça dans sa globalité:

  'trusted_proxies'   => ['192.168.1.42'],
  'forwarded_for_headers' => array( 0=> 'HTTP_X_FORWARDED_FOR',),
  'overwritehost'     => 'nextcloudtld.com',
  'overwriteprotocol' => 'https',
  'overwritewebroot'  => '',
  'overwrite.cli.url' => 'nextcloudtld.com',

Où 192.168.1.42 est l'adresse IP locale du reverse proxy, et nextcloudtld.com est le nom de domaine qui est demandé par le client (navigateur ou appli) au reverse proxy.

Utiliser les commandes occ sous alpine-linux

Ayant choisit d'installer nextcloud sur alpine linux, j'ai un peu chercher comment utiliser les commandes occ dans ma configuration.

Il faut se placer dans le répertoire d'installation, /usr/share/webapps/nextcloud, si vous avez utilisé les paquets d'alpine-linux edge pour installer nextcloud et les lancer avec l'utilisateur nginx de cette façon:

su - #101 php /usr/share/webapps/nextcloud/occ files:scan tom23

ATTENTION: cette commande provoque des bugs comme des soucis d'accès au stockage.

Utiliser les commandes occ sous debian en root

su - www-data -s /usr/bin/php /var/www/nextcloud/occ files:scan

Copie du fichier de conf nginx sur la machine nextcloud

server {
        #listen       [::]:80; #uncomment for IPv6 support
        listen       80;
	return 301 https://$host$request_uri;
	server_name mysite.mydomain.com;
}
 
server {
        #listen       [::]:443 ssl; #uncomment for IPv6 support
        listen       443 ssl;
        server_name  mysite.mydomain.com;
 
	root /usr/share/webapps/nextcloud;
        index  index.php index.html index.htm;
	disable_symlinks off;
 
        ssl_certificate      /etc/ssl/certs/nginx-selfsigned.crt;
        ssl_certificate_key  /etc/ssl/private/nginx-selfsigned.key;
        ssl_session_timeout  5m;
 
        #Enable Perfect Forward Secrecy and ciphers without known vulnerabilities
        #Beware! It breaks compatibility with older OS and browsers (e.g. Windows XP, Android 2.x, etc.)
	#ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA;
        #ssl_prefer_server_ciphers  on;
 
 
        location / {
            try_files $uri $uri/ /index.html;
        }
 
###########
location ^~ /.well-known {
        # The following 6 rules are borrowed from `.htaccess`
 
        location = /.well-known/carddav     { return 301 /remote.php/dav/; }
        location = /.well-known/caldav      { return 301 /remote.php/dav/; }
        # Anything else is dynamically handled by Nextcloud
        location ^~ /.well-known            { return 301 /index.php$uri; }
 
        try_files $uri $uri/ =404;
    }
##########
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {
                        return 404;
                }
                fastcgi_pass 127.0.0.1:9000;
		#fastcgi_pass unix:/run/php-fpm/socket;
                fastcgi_index index.php;
                include fastcgi.conf;
	}
}
nextcloud.txt · Dernière modification: 2021/04/05 12:16 de tom23