Accueil
Docs Homeserver-DIY:
Astuces Linux
Pages linux
Coutellerie
Nextcloud
Home Assistant
Accueil
Docs Homeserver-DIY:
Pages linux
Coutellerie
Nextcloud
Home Assistant
Je collecterai ici quelques astuces pour NextCloud dont j’ai pu me servir.
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:
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.
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.
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';
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.
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.
su -u www-data -s /usr/bin/php /var/www/nextcloud/occ files:scan
Si besoin d'utiliser la version de PHP en fonction de celle utilisée par Nextcloud:
sudo -u www-data -s /usr/bin/php8.0 /var/www/nextcloud/occ maintenance:mode --on
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; } }