Accès ESP impossible depuis l'équipement

j’utilise ESPEasy depuis la mise à dispo du plugin, et ça fonctionne très bien sur mon Jeedom.

Mais:

j’ai installé ESPEasy sur un autre Jeedom (pas chez moi)

et ça fonctionne (il me semble) sauf que je n’arrive pas à accéder au ESP par l’équipement (en cliquant sur « interface web espeasy ») lorsque je suis connecté en local sur son jeedom, alors que l’ESP est accessible depuis son IP sur le réseau Wifi.

le jeedom est en version 4.3.10

la page santé est OK

le demon espeasy tourne et pas de problème pour activer les esp
mais dans les logs je n’ai pas vraiment la même chose que chez moi !

We have got a request for device=ESP_Sallon&taskid=0&cmd=Temperature&value=18.90 from 192.168.1.90
We have got a request for device=ESP_Sallon&taskid=0&cmd=Humidity&value=96.70 from 192.168.1.90
We have got a request for device=ESP_Easy&taskid=0&cmd=Temperature&value=17.40 from 192.168.1.39
We have got a request for device=ESP_Easy&taskid=0&cmd=Humidity&value=74.80 from 192.168.1.39
We have got a request for device=ESPS20_cuisine&taskid=0&cmd=Temperature&value=19.06 from 192.168.1.64

alors que chez moi, j’ai:

We have got a request for device=ESP_Shelly_02&taskid=0&cmd=Wifi&value=-62.00 from 192.168.31.254
Calling Jeedom http://127.0.0.1:80/plugins/espeasy/core/api/jeeEspeasy.php?apikey=xxxxxxxxxxxxxxxxxxx&device=ESP_Shelly_02&taskid=0&cmd=Wifi&value=-62.00&ip=192.168.31.254

du coup avant de faire une bêtise, si quelqu’un avait une piste ?
Est-ce que c’est une histoire de lien symbolique entre nodesjs et node (mais le demon tourne sur ce jeedom)

bon, ba je me trouve bien seul dans cette galère!
juste pour dire que le premier Jeedom (ou je n’arrive pas a voir l’esp via jeedom) est sur debian 11.3
et que le mien (pas de problème) est sous debian 10.6

mais pour moi ça ne change pas grand chose au problème vu que debian et moi…on est pas copain.

J’imagine qu’on parle de l’interface web d’ESP Easy. Du coup, il faut être connecté en VPN sur le réseau distant.

Il y a aussi l’option « Client IP block level » dans le page de configuration qui peut bloquer un accès quand on est pas en local. Le mieux c’est de le mettre à « Allow All ».

1 « J'aime »

Non, je parle d’accès sur le réseau wifi local.
Jeedom est sur 192.168.1.xx
et dans la config espeasy du plugin.


tu as la possibilité d’avoir « Accès à l’ESP »
mais pas possible ! alors qu’avec son IP j’y accède sur le reseau local (hors jeedom)
et tout est vert sur la page santé

D’accord. Là je ne sais pas trop du coup. J’ai abandonné le plugin depuis longtemps pour passer par du MQTT qui est beaucoup plus pratique.

Hello,

vu que tu es sous bullseye, ça ne serait pas un problème de iframe ?

En tout cas, étant sous bullseye, j’arrive bien à acceder à l’interface ESPeasy quand je clique sur « Interface Web espeasy » dans jeedom en local. Par contre j’ai un warning de Security Policy qui s’affiche en haut à droite (d’où ma suspicion de problème iframe).

Merci pour la suggestion, je vais essayer de comprendre…et d’espérer que sous raspberry pi ça soit similaire.


j’ai essayé de trouver quelque chose, sous les deux raspberry (l’un sous bullseye et l’autre sous la version d’avant)
c’est la même config pour apache et pour apache2 j’ai ce qui est plus haut, mais rien qui correspond a ce que propose Djelau, bon…pas grave.

le fichier que j’ai édité est security.conf dans etc/apache2/conf-enabled/security.conf.

petite question
est-ce que je peux y accéder avec l’éditeur de fichier sur jeedom ? j’y arrive pas !
sur mon jeedom (ou ça fonctionne) j’arrive en SSH


mais sur l’autre je n’ai accès qu’avec le VPN donc je ne peux pas comparer.

Pour lire le fichier, ça doit etre faisable via Reglage->systeme->configuration->OS/DB-> Administration Système : Ouvrir puis taper la commande personnalisée suivante:

more /etc/apache2/conf-enabled/security.conf

Mais pour écrire je ne pense pas que ça soit accessible via jeedom. Il faut absolument un acces en ssh.

Orange Pi ou Raspberry Pi, c’est pareil, c’est du debian derriere.

merci a toi, j’avance mais, ça se complique !

j’ai réussi a récupérer les fichiers
pour celui sous Bullseye
CaptureApache2Alex
si je reprends la ligne dont tu parles

Header set X-Frame-Options: "ALLOW-FROM http://monsite.fr"

ici j’ai header set X-Frame-Options « sameorigine »…donc ça devrait fonctionner mais Non.
et sur le mien sous buster j’ai DENY…donc ça devrait pas marcher et ça marche


bon…ça doit pas être le bon truc !

Moi aussi j’avais X-Frame-Options « sameorigine » sous bullseye et ça ne marchait pas. J’en ai ajouté une avec « monsite » (j’avais jamais fait attention qu’il y avait déjà une ligne « Options »):

GNU nano 5.4         /etc/apache2/conf-enabled/security.conf
<Directory /var/www/html>
Options -Indexes -ExecCGI -FollowSymLinks
AllowOverride All
</Directory>

<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "sameorigin"
Header set X-XSS-Protection "1; mode=block"
Header unset X-Powered-By
Header set Referrer-Policy: strict-origin-when-cross-origin
Header set Permissions-Policy "accelerometer=(),battery=(),fullscreen=(self),ge>
Header set Content-Security-Policy-Report-Only "default-src 'self' file: data: >
Header set X-Frame-Options: "ALLOW-FROM http://monsite.fr"
</IfModule>

Et sous buster (un autre Orange pi que j’ai en backup/test), j’ai:

GNU nano 3.2         /etc/apache2/conf-enabled/security.conf

<Directory /var/www/html>
        Options -Indexes -ExecCGI -FollowSymLinks
        AllowOverride All
</Directory>
ServerTokens Prod
TraceEnable Off

<IfModule mod_headers.c>
# Content Security Policy (CSP)
Header set Content-Security-Policy` "script-src 'self'; object-src 'self'"
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif$
Header unset Content-Security-Policy
</FilesMatch>

# Reducing MIME type security risks
Header set X-Content-Type-Options "nosniff"

# HTTP Strict Transport Security (HSTS)
Header always set Strict-Transport-Security "max-age=16070400; includeSubDomain$

# Clickjacking
Header set X-Frame-Options "DENY"
<FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif$
Header unset X-Frame-Options
</FilesMatch>


# Reflected Cross-Site Scripting (XSS) attacks
Header set X-XSS-Protection "1; mode=block"
 <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gi$
Header unset X-XSS-Protection
</FilesMatch>

# Server software information
ServerSignature Off
Header unset X-Powered-By

# Weak SSL protocols
SSLProtocol  all -SSLv2 -SSLv3 -TLSv1
</IfModule>

ErrorLog /var/www/html/log/http.error

Et comme tu peux le voir, j’ai également DENY et pourtant ça marche aussi chez moi sous Buster

Je ne sais pas mais à config équivalente, on a le même fonctionnement :wink:

Ok, mais je mets quoi ?
si je mets ALLOW-FROM il me faut quelque chose derrière ?

j’ai vu ALLOWALL ? peut être ?

c’est là où je bute un peu car je ne sais pas trop comment ça marche chez toi et comment ça marche avec ton VPN (et je suis pas expert en appache).
Je dirais qu’il faudrait mettre l’adresse externe (ou le nom de domain) du jeedom bullseye. Ou peut etre essayer avec son adresse IP interne vu que c’est un acces via VPN.
(désolé si j’enfonce des portes ouvertes) Par exemple je redirige le port externe 10808 vers le port 80 de mon adresse interne jeedom. Donc si je tape monsite:10808 depuis l’exterieur, je tombe sur mon jeedom. J’ai donc mis « monsite » (sans le port) dans les règles de security.conf.
Le AllowAll est je pense la partie dangeureuse de l’autorisation (éventuellement pour tester mais ça doit ouvrir pas mal de failles).

Ok, ce Jeedom passe par le DNS Jeedom, j’ai donc effectivement une adresse.
Mais je vois pas le rapport entre un accès par le DNS Jeedom et par l’IP local (qui fonctionne pas) mais je testerai quand j’en aurai la possibilité (si je dois être sur place, pas sur que je puisse modifier a distance)
Merci quand même pour ton implication.