Domoticz - uitsluiten (proxy) IP adressen in Local Networks

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-09 19:17

Matis

Rubber Rocket

Topicstarter
Beste DEDers,

Op dit moment draai ik een aantal jaren naar volle tevredenheid Domoticz. Sinds een aantal weken heb ik mijn thuisnetwerk drastisch vervangen, van allemaal losse fysieke machines/RPi's ben ik naar een ESXi systeem gegaan waar ik diverse (web)services nu in virtuele machines en/of docker draai.

Ook ben ik gebruik gaan maken van treafik als reverse proxy.
Op mijn pfSense (virtuele) machine heb ik een NAT / Port Forward gemaakt voor poort 80 en 443 naar de machine waar traefik op draait. Deze heeft intern IP adres 192.168.1.190.

Bij wijze van test had ik whoami draaien om te kijken of de reverse proxy goed werkte. Dit was het geval, wanneer ik van buiten naar het subdomein van Domoticz browse, krijg ik netjes de volgende informatie van whoami.
Hostname: 7c0665c913d9
IP: 127.0.0.1
IP: 172.17.0.2
RemoteAddr: 192.168.1.190:55408
GET / HTTP/1.1
Host: domoticz.tld.nl
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,nl-NL;q=0.8,nl;q=0.7
Dnt: 1
Upgrade-Insecure-Requests: 1
X-Forwarded-For: A.B.C.D
X-Forwarded-Host: domoticz.tld.nl
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Forwarded-Server: matis-desktop
X-Real-Ip: A.B.C.D

Op A.B.C.D staat het WAN-adres van de machine waarmee ik van buiten mijn eigen netwerk inlog.
Daarna heb ik Domoticz weer aangezet en kon ik, zonder in te hoeven loggen, bij mijn Domoticz omgeving.
Dit schepte mijn verbazing, omdat ik had verwacht dat Domoticz (indien aanwezig) naar de X-Forwarded-For of X-Real-Ip header zou kijken voor het bepalen van het bezoekende IP adres. Dat is dus niet het geval, blijkt uit de logging:
2020-04-18 13:17:18.483 Status: Incoming connection from: 192.168.1.190


Nu ben ik op zoek gegaan hoe Domoticz dit interpreteert, maar kon niet veel vinden.
Wel kon ik op een oude thread van het Domoticz forum de volgende hint vinden hoe een specifiek IP adres uit te sluiten uit de Local Networks:
Try !160.98.20.101
Wanneer ik voor mijn Domoticz-installatie bij Local Networks
127.0.0.*;!192.168.1.190;192.168.1.*
invul, dan wordt 192.168.1.190 nog steeds toegelaten zonder in te hoeven loggen.

Wanneer ik
127.0.0.*;!192.168.1.190
als Local Network invul, moet iedereen inloggen.

In het geval van
127.0.0.*;192.168.1.190
als Local Network invul, hoeft 192.168.1.190 niet in te loggen. De rest van het 192.168.1.* wel.

Het liefste zie ik de volgende oplossing:
Domoticz baseert het remote IP adres op basis van de (indien aanwezig) X-Forwarded-For of X-Real-Ip header.

Als dat niet mogelijk is, dan wil ik graag de volgende oplossing bereiken:
Bezoekers via 192.168.1.190 moeten inloggen, de rest met een 192.168.1.* IP-adres niet.

Wie weet of dit mogelijk is en hoe dit geconfigureerd moet worden.

Alvast bedankt _O_

Matis

Voor de volledigheid hierbij de versie-informatie van Domoticz
Version: 2020.1
Build Hash: 63fa969e4
Compile Date: 2020-03-22 15:16:16
dzVents Version: 3.0.1
Python Version: 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • webfreakz.nl
  • Registratie: November 2003
  • Laatst online: 21-08 15:56

webfreakz.nl

el-nul-zet-é-er

"You smell that, son? What sir? Napalm, I love the smell of napalm in the mornin!" || Children of Bodom fan!


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-09 19:17

Matis

Rubber Rocket

Topicstarter
Ja, dat kan zeker helpen, maar dan moet ik op twee verschillende plekken wachtwoorden voor Domoticz bij gaan houden.

Ik zou het zelf kunnen aanpassen en Domoticz kunnen cross compilen voor de RPi.

Ik had gehoopt dat het "eenvoudig" in Domoticz te configureren zou zijn.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 26-09 18:24
Matis schreef op zaterdag 18 april 2020 @ 13:51:
Als dat niet mogelijk is, dan wil ik graag de volgende oplossing bereiken:
Bezoekers via 192.168.1.190 moeten inloggen, de rest met een 192.168.1.* IP-adres niet.
Heb je dit nog voor elkaar gekregen? Ik heb namelijk hetzelfde probleem.

[ Voor 8% gewijzigd door technorabilia op 09-06-2020 13:14 ]

👉🏻 Blog 👈🏻


Acties:
  • +1 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-09 19:17

Matis

Rubber Rocket

Topicstarter
kraades schreef op dinsdag 9 juni 2020 @ 13:06:
Heb je dit nog voor elkaar gekregen? Ik heb namelijk hetzelfde probleem.
Nee, helaas (nog) niet.
Heb het opgelost door middel van Traefik BasicAuth en daarin dan hetzelfde wachtwoord geconfigureerd als in Domoticz zelve.
Dit zodat m'n wachtwoordmanager het automatisch kan invullen.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 26-09 18:24
@Matis
Ik kan zelf nu even niet proberen maar ik denk dat X-Real-IP $remote_addr mogelijk wel soelaas biedt.
https://www.nginx.com/res...opics/examples/forwarded/

Edit:
Ik krijg het helaas niet werkend en blijft in Domoticz het adres van de reversie proxy server zien. 8)7

Ik heb de basic auth ook maar van Domoticz naar nginx verplaatst:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server {
    listen 80;
    listen [::]:80;

    server_name domoticz.xxxxxxxx.synology.me;

    location / {
        proxy_set_header        Upgrade             $http_upgrade;
        proxy_set_header        Connection          $connection_upgrade;
        proxy_set_header        Host                $host;
        proxy_set_header        X-Real-IP           $remote_addr;
        proxy_set_header        X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto   $scheme;
        proxy_intercept_errors  on;
        proxy_http_version      1.1;

        proxy_pass http://192.168.0.125:8080;

        satisfy any;
        allow  192.168.0.0/24;
        deny   all;
        auth_basic            "Protected site";
        auth_basic_user_file  /volume1/web_passwd/.htpasswd;
    }
}

[ Voor 103% gewijzigd door technorabilia op 09-06-2020 17:46 ]

👉🏻 Blog 👈🏻

Pagina: 1