[AirSonic] Impossible de connecter un client Android (résolu)

Hmmm, c’est étonnant. Quels sont les droits sur ce fichier?

ls -l /etc/yunohost/apps/airsonic/manifest.json

sinon tu peux toujours récupérer le fichier avec cette commande après avoir effacé le fichier corrompu:

sudo wget -P /etc/yunohost/apps/airsonic/ "https://github.com/YunoHost-Apps/airsonic_ynh/blob/master/manifest.json"

puis redonner le bon propriétaire:

sudo chown 1007:1007 /etc/yunohost/apps/airsonic/manifest.json

Je me demande si la carte SD n’aurai pas un problème pour qu’un fichier qui change rarement puisse être corrompu ainsi ??

en effet, je ne comprends pas.
Le propriétaire est airsonic, les droits sont rw r r

Je vais récupérer le fichier comme tu me l’indiques.

J’ai tout mis sur un disque dur. Le RPi boot sur ce disque.
A quoi sert ce fichier ? Sais-tu quand il est modifié ? et pourquoi ?

Gofannon tiens peut-être une piste. Quand tu dis que tu ne peux rien installer/désintaller, tu parles de quoi?

Edit : Tu m’as devancé de quelques secondes :wink:
Cela dit, la question reste entière : Qu’est-ce que tu ne peut pas installer/désinstaller?

Dans l’interface d’administration Yunohost, lorsque je clique sur Applications le message d’erreur apparait : “Fichier JSON corrompu en lecture depuis /etc/yunohost/apps/airsonic/manifest.json (raison : No JSON object could be decoded)
Idem avec Ouilts/Diagnostic ou Outils/Etat du serveur

Edit : le message d’erreur apparait et ça bloque l’action demandée : je ne vois plus la liste des appli, le diagnostic etc…

bilan de la matinée (spoil : ça n’a rien changé !) :
1er essai

  • j’ai remplacé le fichier manifest.json “corrompu” par celui récupéré sur GitHub
  • changé le propriétaire : j’ai mis airsonic:airsonic
  • reboot du Yunohost
    => toujours les même erreurs de lecture du fichier json

2eme essai

  • j’ai remplacé le fichier manifest.json par celui récupéré sur GitHub
  • changé le propriétaire : j’ai mis 1007:1007 (admin:admin)
  • reboot du Yunohost
    => toujours les même erreurs de lecture du fichier json

je constate qu’à la fin de l’essai 2, la taille du fichier manifest.json a changé
je recommence…

3eme essai

  • j’arrête AirSonic depuis l’interface d’admin
  • je remplace le fichier manifest.json par celui récupéré sur GitHub
  • je change le propriétaire : j’ai mis airsonic:airsonic
  • redémarage de AirSonic
    => toujours les même erreurs de lecture du fichier json dans l’interface d’admin de Yunohost

4eme essai

  • j’arrête AirSonic depuis l’interface d’admin

  • je remplace le fichier manifest.json par celui récupéré sur GitHub

  • je change le propriétaire : j’ai mis airsonic:airsonic

  • sur l’interface d’administration Yunohost, j’ai encore les pb de lecture du fichier json

  • je change le propriétaire du fichier manifest.json : 1007:1007

  • sur l’interface d’administration Yunohost, j’ai encore les pb de lecture du fichier json

j’en conclus que le pb ne vient pas du fichier /etc/yunohost/apps/airsonic/manifest.json

J’ai une vieille sauvegarde, je vais restaurer le serveur et re-installer AirSonic.
Merci à tous pour votre aide et vos conseils.

Bah, de rien.
Mais surtout, désolé de pas avoir pu t’aider plus.
Tiens nous au courant…

  1. Est-ce que tu as toujours le fichier manifest.json qui pose soucis? Pourrais-tu l’afficher avec la commande “cat manifest.json”
  2. Je ne connais pas les droits qui doivent être appliqués à ce fichier, je peux regarder ce soir quand je rentre chez moi

Essais de passer sur le “chat” de YunoHost, tu auras peut être une réponse plus rapidement que ici, un sujet dédié à Airsonic mais le sujet est plus large vu que tu n’as plus accès à ton serveur

  1. oui j’ai fait une sauvegarde du fichier d’hier qui posait problème : c’est un fichier binaire, le “cat” donne un résultat illisible. En revanche le fichier qui vient de GitHub récupéré ce matin est un fichier texte.
  2. ok, si tu as l’info, je suis preneur

Comme tu avais les bons droits (rw-r–r--) dans ta réponse précédente je n’ai pas relevé bon de le signaler.

aucun problème :wink:

J’ai vu ton sujet @metyun sur la compromission de serveur (Serveur compromis?), je vais installer logwatch, ça me sera bien utile et aussi parce que j’ai des doutes…

J’ai un peu avancé sur le sujet, mais je suis encore bloqué :

  • j’ai restauré une sauvegarde de ma config Yunohost, j’ai donc écrasé ma config précédente (retour en arrière de 2 mois);
  • j’ai réinstallé AirSonic, recréé les users et ajouté logwatch;
  • depuis un navigateur Web, AirSonic fonctionne bien (j’ai juste un pb : lorsque je me connecte avec le user désigné comme administrateur lors de l’installation de AirSonic, je n’ai pas les droits administrateur);
  • avec un client Android, j’ai toujours le même problème (avec Audinaut) :

connection failure. A problem occured communicating with the server.

Ce qui est nouveau :
Lorsque je bloque, dans la config nginx, tout accès depuis l’extérieur (j’autorise uniquement 192.168.x.x/24), si j’essaie de me connecter avec Audinaut (depuis l’extérieur), je vois dans la section httpd de la synthèse logwatch :

403 Forbidden

/airsonic/rest/ping.view?u=username&p=pass … 13.0&c=Audinaut: 1 Time(s)

La bonne nouvelle est qu’il y a bien une tentative de connexion !

Lorsque j’essaie de me connecter depuis 192.168.x.x, en surveillant le log des connexions (tail -f /var/log/nginx/joshua.ynh.fr-access.log) : selon les clients Android utilisés (DSub, Audinaut, UltraSonic), j’observe des comportements différents, mais ça se solde toujours par en échec.
Par exemple avec Audinaut, 2 requêtes (avec login/password en clair !) :

192.168.1.254 - - [13/Apr/2020:15:56:47 +0100] “GET /airsonic/rest/ping.view?u=username&p=password&v=1.13.0&c=Audinaut HTTP/2.0” 302 948 “-” “okhttp/4.3.1”
192.168.1.254 - - [13/Apr/2020:15:56:47 +0100] “GET /yunohost/sso/?r=xxxxxxxxxxxxxxxxxxxxxxxxx HTTP/2.0” 200 3393 “-” “okhttp/4.3.1”

Avec UltraSonic, 2 requêtes :

192.168.1.254 - - [13/Apr/2020:16:04:52 +0100] “GET /airsonic/rest/ping.view?u=username&c=Ultrasonic&f=json&v=1.7.0&p=enc:123456789012345678901234567890 HTTP/2.0” 302 990 “-” “okhttp/3.10.0”
192.168.1.254 - - [13/Apr/2020:16:04:52 +0100] “GET /yunohost/sso/?r=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy HTTP/2.0” 200 3393 “-” “okhttp/3.10.0”

Je suis de nouveau coincé, je ne sais vraiment pas interpréter ces traces…
Quelqu’un aurait-il une idée ?

Bonjour,
Quelle version d’ Android utilises-tu? Une récente ou une ancienne?

Merci pour ton message.
j’ai fait les tests avec Android 6 et 9.

Mauvaise piste,
Je pensais au non support de TLS 1.2 sur les anciennes versions d’Android, inférieures à 4.4 je crois.

Ne seraient-elles pas lié ces 2 erreurs?

Je n’ai pas souvenir d’avoir ajouté les users yunohost dans airsonic, c’est à l’installation qu’on choisit, non? S’il s’agit d’utilisateur sans compte yunohost ajouté par la suite dans airsonic, alors je n’ai pas essayé de me connecter avec un client smartphone et un utilisateur de ce type.

Je me suis mal exprimé :

403 Forbidden

c’est normal car j’avais interdit l’accès depuis l’extérieur, mais ça m’a permis de voir qu’il y avait bien une connexion au serveur malgré les messages d’erreur sur Audinaut indiquant un pb de communication avec le serveur.

j’ai réinstallé AirSonic, recréé les users

J’aurai du écrire plutôt : Après la restauration de ma sauvegarde, j’ai recrée les différents users Yunohost, installé Logwatch pour surveiller les différents Logs, puis installé AirSonic.
(En effet, je n’ai pas créé de users dans AirSonic, tous les utilisateurs Yunohost peuvent se connecter et utiliser AirSonic dans ma config).

  1. Je ne sais pas interpréter ces requêtes…
  • la 1ère : Requête du client Android vers Airsonic (identification/authentification)
  • et la 2ème ?
  1. Quelles sont les réponses à ces requêtes ? comment les retrouver, dans quel log ?
  2. Je n’arrive pas à me connecter en Administrateur sur AirSonic. Est-ce que cela a un lien ? Faut-il déclarer quelque chose en Admin dans AirSonic afin de connecter un client Android ? (je n’ai rien fait et pourtant j’arrive à me connecter avec un navigateur Web).
  3. Est-ce que n’importe quel utilisateur Yunohost peut-être Admin AirSonic ?