HowTo: FHEM - Beveiligde toegang tot de configuratie-interface

Uiterlijk nadat u de eerste configuraties in uw FHEM-interface hebt uitgevoerd, moet u zich ook bezighouden met het veiligheidsprobleem. Het is echt vervelend als je de moeizaam samengestelde en netjes geprogrammeerde functies van je SmartHome-systeem kwijtraakt. Of het nu gaat om gegevensverlies of omdat andere mensen ongeautoriseerde toegang hebben gekregen tot uw systeem.

De potentiële toegang door onbevoegden mag niet worden verwaarloosd. In het ergste geval kun je met deze toegang meer kwaad doen dan alleen maar een lamp aan- en uitzetten.

Hoe u uw FHEM-instantie kunt beveiligen en beschermen tegen gegevensverlies, wordt uitgelegd in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Voordat je aan dit artikel begint, moet je de RaspberryPi zo hebben voorbereid dat deze via het netwerk bereikbaar en via SSH te bedienen is.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH
FHEM - Installatie op de RaspberryPi

Gereedschap nodig:
-Nee-

Benodigde materialen:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Het wijzigen van eventuele bestaande (standaard) toegangswachtwoorden

De belangrijkste – omdat deze het meest wordt uitgebuit – is het wijzigen van bestaande standaardwachtwoorden. Als u bijvoorbeeld een Raspberry Pi als hosthardware voor de FHEM-server gebruikt, is het belangrijk dat u de standaard inloggegevens wijzigt. De standaard inloggegevens “pi” en “raspberry” zijn bekend bij iedereen die ook maar enigszins geïnteresseerd is in technologie. Dus als je zojuist je RaspberryPi-inloggegevens hier hebt gelezen, wordt het hoog tijd om deze te wijzigen.

Hoe je dit verandert, staat in het artikel RaspberryPi – De eerste configuratie! beschreven.


Maak een HTACCESS-gebruikerslogin aan

De volgende veiligheidsmaatregel tegen ongeautoriseerde toegang tot uw FHEM-interface is toegangsbeveiliging via HTACCESS. Zodra dit is ingesteld, wordt u elke keer dat u probeert toegang te krijgen tot uw FHEM-instantie, gevraagd om de relevante inloggegevens in te voeren.

Om deze toegangsbeveiliging in te stellen, moet u eerst uw gebruikersnaam/wachtwoord-combinatie coderen met base64. Dit werkt op Linux met een ingebouwd commando. Om uw combinatie van gebruikersnaam en wachtwoord te coderen, hoeft u alleen maar de volgende opdracht in de console in te voeren. Natuurlijk moet je dat eerst doen geweldige gebruikersnaam met uw gebruikersnaam en geweldig wachtwoord vervang het door uw wachtwoord.

Om uw inloggegevens te coderen, voert u de volgende opdracht in de console van uw Raspberry Pi in.
echo -n greatusername:greatpassword | basis64
U ontvangt dan een reeks van uw inloggegevens gecodeerd in base64. U moet dit kopiëren, zodat u het later kunt gebruiken.

Zonder Linux, een online Base64-encoder zoals www.base64online.com . Voer eenvoudig uw combinatie van gebruikersnaam en wachtwoord in volgens het patroon Gebruikersnaam wachtwoord en klik op coderen (DECODE).

Om de login met de door u ingestelde inloggegevens te activeren, moet u het volgende doen.

Eerst moet u de module “allowedWEB” aanmaken met het volgende commando.
definieer toegestaanWEB toegestaan

Nu moet u uw gekopieerde inloggegevens aan deze module koppelen door een bijbehorend attribuut in te stellen. Dit kan gedaan worden met het volgende commando.

attr toegestaanWEB basicAuth dG9sbGVyQmVudXR6ZXJuYW1lOnRvbGxlc1Bhc3N3b3J0
In de laatste stap moet u configureren op welke login-interfaces de login moet worden aangevraagd. In dit geval activeren we de aanmeldingsvraag voor “WEB”, “WEBPhone” en “WEBtablet” met het volgende commando. Als u voor de inloginterfaces verschillende namen heeft opgegeven, moet dit uiteraard dienovereenkomstig worden aangepast.
attr toegestaanWEB geldigVoor WEB,WEBphone,WEBtablet

Dat is het al. Herstart nu FHEM door de volgende opdracht in te voeren

afsluiten opnieuw opstarten
Nu kunt u de login testen. Om dit te doen, gaat u opnieuw naar de URL van uw FHEM-instantie. Deze keer zou er een inlogvenster moeten verschijnen waarin u wordt gevraagd de juiste inloggegevens in te voeren.
Voer nu de gebruikersnaam en het wachtwoord in die u eerder hebt opgegeven.
Als u de juiste inloggegevens heeft ingevoerd, wordt u doorgestuurd naar de startpagina van uw FHEM-instantie. Uw configuratie-interface is nu beveiligd tegen toegang via gebruikersnaam en wachtwoord.

Versleutel de verbinding met een SSL-certificaat

Nu u de toegang tot uw FHEM-interface hebt beveiligd, is de volgende veiligheidsmaatregel ervoor te zorgen dat uw communicatie ermee niet kan worden onderschept of gemanipuleerd. Voor dit doel is nu SSL-codering van de communicatiegegevens ingesteld. Hiervoor moet eerst een SSL-certificaat worden aangemaakt en vervolgens worden verbonden met FHEM.

Om het SSL-certificaat aan te maken, moet u eerst twee pakketten installeren. Om dit te doen, voert u de volgende opdracht uit.
sudo apt-get install libio-socket-ssl-perl && sudo apt-get install libwww-perl
Tijdens de installatie van de pakketten wordt u mogelijk gevraagd of u ermee akkoord gaat dat de installatie extra geheugen gebruikt. Bevestig dit met een “J” en “Enter”.
Gebruik na het installeren van de pakketten de volgende opdracht om over te schakelen naar de map van uw FHEM-installatie.
cd /opt/fhem
Met het volgende commando wordt de map “certs” aangemaakt, waarin vervolgens de certificaten worden aangemaakt/opgeslagen.
sudo mkdir-certificaten
Ga nu naar de map “certs” die u zojuist hebt gemaakt.
cd /opt/fhem/certs
Om het SSL-certificaat aan te maken, moet u de volgende opdracht uitvoeren.
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
Terwijl het certificaat wordt aangemaakt, wordt u om details voor dit certificaat gevraagd. Eerst vult u hier bijvoorbeeld de landcode in. Deze vermeldingen hoeven niet waar te zijn. Zo kunt u de juiste informatie verstrekken of...
...gebruik drie koppeltekens of andere tekens als tijdelijke aanduidingen, zoals weergegeven.
Met behulp van de volgende opdracht worden het certificaat en...
sudo chmod 644 /opt/fhem/certs/*.pem
... de certificaatmap nog steeds de juiste bestandsrechten heeft.
sudo chmod 711 /opt/fhem/certs
In de laatste twee stappen moet je nu HTTPS activeren voor de WEB-module...
attr WEB HTTPS
...en start FHEM opnieuw op om de wijzigingen door te voeren.
afsluiten opnieuw opstarten

Nadat u uw FHEM-server opnieuw hebt opgestart, heeft u er bijna zoals gewoonlijk toegang toe. Het verschil is dat u nu het adres van uw FHEM-server moet laten voorafgaan door HTTPS.

Omdat u een zelfondertekend certificaat gebruikt, zullen bijna alle browsers u nu waarschuwen en u hierover informeren. In het ‘normale’ internet zou dit een indicatie kunnen zijn van een datalek. In dit geval hoeft u zich daar geen zorgen over te maken. U kunt de waarschuwing dus omzeilen. Om dit te doen, klikt u op “Geavanceerd”…
…klik vervolgens op “Doorgaan naar ….(onveilig)” om de waarschuwing te omzeilen en toegang te krijgen tot uw FHEM-server.
Als u de gebruikerslogin heeft geactiveerd, wordt u nu om de inloggegevens gevraagd.
Zonder gebruikerslogin of als u de inloggegevens correct hebt ingevoerd, komt u zoals gewoonlijk op uw FHEM-homepage terecht.

Stel automatische back-up in voor elke update

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Een andere handige instelling zijn de automatische back-ups vóór elke update van de FHEM-omgeving. Hierdoor bent u ook bij een onjuiste update beschermd en hoeft u niet de gehele configuratie handmatig te herstellen.

Voer hiervoor de volgende opdrachten in de opdrachtregel van uw FHEM-instantie in.
attr globale updateInBackground 1
attr globale backup_before_update 1

Veilige Telnet-toegang

FHEM biedt onder meer de mogelijkheid om opdrachten uit te voeren via Telnet-verbinding. Dit is niet standaard geïnstalleerd/geactiveerd. Als u hiervan gebruik maakt, is het echter belangrijk dat u de toegang beveiligt met een wachtwoord. Dit kan gedaan worden met het volgende commando. Natuurlijk moet je dat deel nog doen geweldig wachtwoord Vervang door het gekozen wachtwoord. Mogelijk moet u hier ook het gedeelte “telnetPort” aanpassen. Dit is de naam van uw geconfigureerde Telnet-module en moet overeenkomen met de naam die u gebruikt.

attr telnetPort-wachtwoord geweldig wachtwoord


FHEM-zekering

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Maar nu moet je je wapenen tegen de grootste vijand: je eigen saaiheid. Zeker als je dingen uitprobeert en uitprobeert, kan het snel gebeuren dat je het systeem dat voorheen goed werkte, verkeerd configureert. Als het systeem echter niet meer start, kan het in het ergste geval snel worden hersteld. Op voorwaarde dat u over een actuele back-up beschikt, idealiter op een extern opslagmedium. U kunt dus zonder problemen de laatst werkende versie herstellen.

definieer regularBackup op *03:00:00 back-up

Met deze instelling wordt er elke dag om 03.00 uur een back-up gemaakt en opgeslagen in de map /opt/fhem/backup. De hier opgeslagen bestanden moeten uiteraard ook met een andere schijf worden gesynchroniseerd. Dit is de enige manier om ze te beschermen in geval van een fout met de schijf of SD-kaart.


Meer informatie

https://de.wikipedia.org/wiki/Base64

https://wiki.fhem.de/wiki/Telnet


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

Een reactie

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.