diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm
index 870b85e1d..64e8cf2be 100755
--- a/fhem/FHEM/01_FHEMWEB.pm
+++ b/fhem/FHEM/01_FHEMWEB.pm
@@ -1260,12 +1260,6 @@ FW_makeTable($$$@)
join(",", map { FW_pH("room=$_",$_,0,"",1,1) } split(",",$val)).
"";
- } elsif ($n eq "webCmd"){
- my $lc = "detail=$name&cmd.$name=set $name";
- FW_pO "
".
- join(":", map {FW_pH("$lc $_",$_,0,"",1,1)} split(":",$val) ).
- " | ";
-
} elsif ($n =~ m/^fp_(.*)/ && $defs{$1}){ #special for Floorplan
FW_pH "detail=$1", $val,1;
diff --git a/fhem/FHEM/98_telnet.pm b/fhem/FHEM/98_telnet.pm
index 9977e5be9..224a7bd58 100644
--- a/fhem/FHEM/98_telnet.pm
+++ b/fhem/FHEM/98_telnet.pm
@@ -513,8 +513,16 @@ telnet_ActivateInform($)
allowfrom
- Regexp of allowed ip-addresses or hostnames. If set,
- only connections from these addresses are allowed.
+ Regexp of allowed ip-addresses or hostnames. If set, only connections
+ from these addresses are allowed.
+ NOTE: if this attribute is not defined and there is no valid allowed
+ device defined for the telnet/FHEMWEB instance and the client tries to
+ connect from a non-local net, then the connection is refused. Following
+ is considered a local net:
+
+ IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16
+ IPV6: ::1, fe80/10
+
@@ -645,7 +653,15 @@ telnet_ActivateInform($)
allowfrom
Regexp der erlaubten IP-Adressen oder Hostnamen. Wenn dieses Attribut
gesetzt wurde, werden ausschließlich Verbindungen von diesen
- Adressen akzeptiert.
+ Adressen akzeptiert.
+ Achtung: falls allowfrom nicht gesetzt ist, und keine gütige
+ allowed Instanz definiert ist, und die Gegenstelle eine nicht lokale
+ Adresse hat, dann wird die Verbindung abgewiesen. Folgende Adressen
+ werden als local betrachtet:
+
+ IPV4: 127/8, 10/8, 192.168/16, 172.16/10, 169.254/16
+ IPV6: ::1, fe80/10
+
diff --git a/fhem/FHEM/TcpServerUtils.pm b/fhem/FHEM/TcpServerUtils.pm
index 6e221911b..6c6171688 100644
--- a/fhem/FHEM/TcpServerUtils.pm
+++ b/fhem/FHEM/TcpServerUtils.pm
@@ -72,6 +72,24 @@ TcpServer_Accept($$)
inet_ntoa($iaddr);
my $af = $attr{$name}{allowfrom};
+ if(!$af) {
+ my $re = "^(127|192.168|172.(1[6-9]|2[0-9]|3[01])|10|169.254)\\.|".
+ "^(fe[89ab]|::1)";
+ if($caddr !~ m/$re/) {
+ my %empty;
+ $hash->{SNAME} = $hash->{NAME};
+ my $auth = Authenticate($hash, \%empty);
+ delete $hash->{SNAME};
+ if($auth == 0) {
+ Log3 $name, 1,
+ "Connection refused from the non-local address $caddr:$port, ".
+ "as there is no working allowed instance defined for it";
+ close($clientinfo[0]);
+ return undef;
+ }
+ }
+ }
+
if($af) {
if($caddr !~ m/$af/) {
my $hostname = gethostbyaddr($iaddr, AF_INET);