[gelöst] telnet / allowed kein prohibit von Attr allowedCmds und allowedRegexp

Begonnen von erwin, 29 April 2022, 13:34:05

Vorheriges Thema - Nächstes Thema

erwin

Hallo Rudi!
Die Attribute allowedCmds und allowedRegexp funktionieren nicht so wie erwartet....
die beteiligten devices:
Internals:
   CONNECTS   11882
   DEF        7073 global
   FD         7
   FUUID      61b109aa-f33f-f1ab-4a69-23de9c91abda1b64
   NAME       telnetPortKNX
   NR         15
   PORT       7073
   STATE      Initialized
   TYPE       telnet
   .attraggr:
   .attrminint:
   READINGS:
     2022-04-29 09:42:30   state           Initialized
Attributes:
   allowfrom  (192.168.5|127.0.0.1)
   room       Global

und:
Internals:
   .allowedCommands set,get
   .allowedDevicesRegexp (KNX_|Jalousie).*
   CFGFN     
   DEF       
   FUUID      626a65df-f33f-f1ab-6317-ff12b684d74c204e
   NAME       allowed_telnetPortKNX
   NR         5317
   STATE      validFor:telnetPortKNX
   TYPE       allowed
   .attraggr:
   .attrminint:
   .validFor:
     telnetPortKNX 1
   READINGS:
     2022-04-29 09:40:09   state           validFor:telnetPortKNX
Attributes:
   allowedCommands set,get
   allowedDevicesRegexp (KNX_|Jalousie).*
   room       KNX
   validFor   telnetPortKNX

In diesem Setup funktioniert ein list, ein set eines beliebigen devices, eigentlich jeder command.
Authenticate / Passwort verwende ich hier keines.
Das Problem dürfte in dem Ausdruck (ca. line 100 in allowed.pm):
return 0 if(AttrVal($mName, "allowedIfAuthenticatedByMe",$featurelevel>6.0) &&
              (!$cl->{AuthenticatedBy} ||
                $cl->{AuthenticatedBy} ne $mName));

liegen, wenn ich den auskommentiere funktioniert alles wie erwartet.
Allerdings durchschaue ich diesen Teil des codes absolut nicht  8)
und wenn ich mir was wünschen dürfte..... ein attr allowedType bzw. <devspec> (z.b: 'TYPE=MQTT2_Device') als allowed device argument.
l.g. erwin

PS: Hat damit zwar nicht unmittelbar zu tun, nur als Erklärung was ich damit mache:
Auf einem 2ten FHEM läuft ein FHEM2FHEM RAW device, dass auf diese Telnet Instanz verbindet. Auf diesem FHEM ist dann IO-Device während auf dem 2ten FHEM die logischen devices sind.
Funktioniert bestens, nur wollte ich jetzt die telnet Instanz etwas einschränken....
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

erwin

Hi Rudi,
ich hab ein quick&dirty Trick gefunden, geht so:
attr <alloweddevice> allowedIfAuthenticatedByMe 0
ist zwar nicht intuitiv, funktioniert aber!
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

rudolfkoenig

Zitatist zwar nicht intuitiv, funktioniert aber!
Das mag sein, und die Doku war auch nicht klar, insb. dass sie nach Aenderung der Voreinstellung nicht angepasst wurde.
Ich habe die Doku jetzt angepasst.
Kurz: falls kein Benutzername/Passwort gesetzt ist, muss "attr allowed authenticatedByMe 0" gesetzt sein.

erwin

FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...